home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / PROG / PASCAL / SPEED2 / SRC / RESEDIT / RESDLG.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-09-29  |  29.3 KB  |  1,090 lines

  1. UNIT ResDlg;
  2.  
  3. INTERFACE
  4.  
  5. USES PmDialog,PmObject,PmTypes;
  6.  
  7. CONST
  8.     {Basic styles}
  9.     NO_STYLE=0;
  10.     {WS_...}
  11.     FS_ICON=$00000001;
  12.     FS_ACCELTABLE=$00000002;
  13.     FS_SHELLPOSITION=$00000004;
  14.     FS_TASKLIST=$00000008;
  15.     FS_NOBYTEALIGN=$00000010;
  16.     FS_NOMOVEWITHOWNER=$00000020;
  17.     FS_SYSMODAL=$00000040;
  18.     FS_DLGBORDER=$00000080;
  19.     FS_BORDER=$00000100;
  20.     FS_WINDOWALIGN=0;
  21.     FS_SCREENALIGN=$00000200;
  22.     FS_MOUSEALIGN=$00000400;
  23.     FS_SIZEBORDER=$00000800;
  24.     FS_AUTOICON=$00001000;
  25.     FS_DBE_APPSTAT=$00008000;
  26.     FS_STANDARD=$0000000F;
  27.     BS_BITMAP=$40;
  28.     BS_ICON=$80;
  29.     WS_NOTHING=0;
  30.     WS_NORMAL=$80010000;    {WS_GROUP|WS_VISIBLE}
  31.     CBS_SIMPLE=$0001;
  32.     CBS_DROPDOWN=$0002;
  33.     CBS_DROPDOWNLIST=$0004;
  34.     ES_LEFT=$00000000;
  35.     ES_CENTER=$00000001;
  36.     ES_RIGHT=$00000002;
  37.     ES_AUTOSCROLL=$00000004;
  38.     ES_MARGIN=$00000008;
  39.     ES_AUTOTAB=$00000010;
  40.     ES_READONLY=$00000020;
  41.     ES_COMMAND=$00000040;
  42.     ES_UNREADABLE=$00000080;
  43.     ES_AUTOSIZE=$00000200;
  44.     MLS_WORDWRAP=$00000001;
  45.     MLS_BORDER=$00000002;
  46.     MLS_VSCROLL=$00000004;
  47.     MLS_HSCROLL=$00000008;
  48.     MLS_READONLY=$00000010;
  49.     MLS_IGNORETAB=$00000020;
  50.     MLS_DISABLEUNDO=$00000040;
  51.  
  52.     {Flags}
  53.     NO_FLAGS=0;
  54.     {FCF...}
  55.     SPBS_ALLCHARACTERS=$00000000;
  56.     SPBS_NUMERICONLY=$00000001;
  57.     SPBS_READONLY=$00000002;
  58.     SPBS_MASTER=$00000010;
  59.     SPBS_SERVANT=$00000000;
  60.     SPBS_JUSTDEFAULT=$00000000;
  61.     SPBS_JUSTLEFT=$00000008;
  62.     SPBS_JUSTRIGHT=$00000004;
  63.     SPBS_JUSTCENTER=$0000000C;
  64.     SPBS_NOBORDER=$00000020;
  65.     SPBS_FASTSPIN=$00000100;
  66.     SPBS_PADWITHZEROS=$00000080;
  67.     SLS_HORIZONTAL=$00000000;
  68.     SLS_VERTICAL=$00000001;
  69.     SLS_CENTER=$00000000;
  70.     SLS_BOTTOM=$00000002;
  71.     SLS_TOP=$00000004;
  72.     SLS_LEFT=$00000002;
  73.     SLS_RIGHT=$00000004;
  74.     SLS_SNAPTOINCREMENT=$00000008;
  75.     SLS_BUTTONSBOTTOM=$00000010;
  76.     SLS_BUTTONSTOP=$00000020;
  77.     SLS_BUTTONSLEFT=$00000010;
  78.     SLS_BUTTONSRIGHT=$00000020;
  79.     SLS_OWNERDRAW=$00000040;
  80.     SLS_READONLY=$00000080;
  81.     SLS_RIBBONSTRIP=$00000100;
  82.     SLS_HOMEBOTTOM=$00000000;
  83.     SLS_HOMETOP=$00000200;
  84.     SLS_HOMELEFT=$00000000;
  85.     SLS_HOMERIGHT=$00000200;
  86.     SLS_PRIMARYSCALE1=$00000000;
  87.     SLS_PRIMARYSCALE2=$00000400;
  88.     VS_BITMAP=$0001;
  89.     VS_ICON=$0002;
  90.     VS_TEXT=$0004;
  91.     VS_RGB=$0008;
  92.     VS_COLORINDEX=$0010;
  93.     VS_BORDER=$0020;
  94.     VS_ITEMBORDER=$0040;
  95.     VS_SCALEBITMAPS=$0080;
  96.     VS_RIGHTTOLEFT=$0100;
  97.     VS_OWNERDRAW=$0200;
  98.     SS_TEXT=$0001;
  99.     SS_GROUPBOX=$0002;
  100.     SS_ICON=$0003;
  101.     SS_BITMAP=$0004;
  102.     SS_FGNDRECT=$0005;
  103.     SS_HALFTONERECT=$0006;
  104.     SS_BKGNDRECT=$0007;
  105.     SS_FGNDFRAME=$0008;
  106.     SS_HALFTONEFRAME=$0009;
  107.     SS_BKGNDFRAME=$000a;
  108.     SS_SYSICON=$000b;
  109.     SS_AUTOSIZE=$0040;
  110.     LS_MULTIPLESEL=$00000001;
  111.     LS_OWNERDRAW=$00000002;
  112.     LS_NOADJUSTPOS=$00000004;
  113.     LS_HORZSCROLL=$00000008;
  114.     LS_EXTENDEDSEL=$00000010;
  115.  
  116.     TYPE TButtonDialog=OBJECT(TDIALOG)
  117.                       FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  118.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  119.                                         LONGWORD:VIRTUAL;
  120.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  121.                                         pCreateParams:Pointer);
  122.                        DESTRUCTOR Done;
  123.                 END;
  124.  
  125.      TCheckBoxDialog=OBJECT(TDIALOG)
  126.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  127.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  128.                                         LONGWORD:VIRTUAL;
  129.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  130.                                         pCreateParams:Pointer);
  131.                        DESTRUCTOR Done;
  132.                 END;
  133.  
  134.     TRadioBoxDialog=OBJECT(TDIALOG)
  135.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  136.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  137.                                         LONGWORD:VIRTUAL;
  138.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  139.                                         pCreateParams:Pointer);
  140.                        DESTRUCTOR Done;
  141.                 END;
  142.  
  143.     TGroupBoxDialog=OBJECT(TDIALOG)
  144.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  145.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  146.                                         LONGWORD:VIRTUAL;
  147.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  148.                                         pCreateParams:Pointer);
  149.                        DESTRUCTOR Done;
  150.                 END;
  151.  
  152.     TDialogDialog=OBJECT(TDIALOG)
  153.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  154.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  155.                                         LONGWORD:VIRTUAL;
  156.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  157.                                         pCreateParams:Pointer);
  158.                        DESTRUCTOR Done;
  159.                 END;
  160.  
  161.     TOptionsDialog=OBJECT(TDIALOG)
  162.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  163.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  164.                                         LONGWORD:VIRTUAL;
  165.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  166.                                         pCreateParams:Pointer);
  167.                        DESTRUCTOR Done;
  168.                 END;
  169.  
  170.     TTextDialog=OBJECT(TDIALOG)
  171.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  172.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  173.                                         LONGWORD:VIRTUAL;
  174.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  175.                                         pCreateParams:Pointer);
  176.                        DESTRUCTOR Done;
  177.                 END;
  178.  
  179.     TEntryDialog=OBJECT(TDIALOG)
  180.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  181.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  182.                                         LONGWORD:VIRTUAL;
  183.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  184.                                         pCreateParams:Pointer);
  185.                        DESTRUCTOR Done;
  186.                 END;
  187.  
  188.     TListBoxDialog=OBJECT(TDIALOG)
  189.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  190.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  191.                                         LONGWORD:VIRTUAL;
  192.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  193.                                         pCreateParams:Pointer);
  194.                        DESTRUCTOR Done;
  195.                 END;
  196.  
  197.     TNewResDialog=OBJECT(TDIALOG)
  198.                        FUNCTION DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  199.                                         Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):
  200.                                         LONGWORD:VIRTUAL;
  201.                        CONSTRUCTOR Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  202.                                         pCreateParams:Pointer);
  203.                        DESTRUCTOR Done;
  204.                 END;
  205.  
  206. VAR restext:STRING;
  207.     reslong:LONGWORD;
  208.  
  209. CONST
  210.      R_DIALOG       =1;
  211.      R_MENU         =2;
  212.      R_ACCEL        =3;
  213.      R_ICON         =4;
  214.      R_BITMAP       =5;
  215.  
  216.  
  217.  
  218. PROCEDURE ButtonDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  219. PROCEDURE CheckBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  220. PROCEDURE RadioBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  221. PROCEDURE GroupBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  222. PROCEDURE DialogDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  223. PROCEDURE TextDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  224. PROCEDURE EntryDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  225. PROCEDURE ListBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  226. PROCEDURE OptionsDlg(VAR Grid:BYTE;Options:LONGWORD);
  227.  
  228.  
  229. PROCEDURE CalcBasicStyles(Flags:LONGWORD;VAR s:STRING);
  230. PROCEDURE CalcEditStyles(Flags:LONGWORD;VAR s:STRING);
  231. FUNCTION NewResDlg:BYTE;
  232.  
  233. IMPLEMENTATION
  234.  
  235. IMPORTS {Private}
  236.        PROCEDURE WinDisMissDlg(result:LONGWORD;Dlg:HWND):    PMWIN index 729;
  237. END;
  238.  
  239. PROCEDURE CalcBasicStyles(Flags:LONGWORD;VAR s:STRING);
  240. VAR t:LONGWORD;
  241. BEGIN
  242.      ASM
  243.         MOVD $t,$80000000
  244.      END;
  245.      IF Flags AND t=t THEN s:=s+'WS_VISIBLE';
  246.      IF Flags AND WS_DISABLED=WS_DISABLED THEN
  247.      BEGIN
  248.           IF s<>'' THEN s:=s+'|';
  249.           s:=s+'WS_DISABLED';
  250.      END;
  251.      IF Flags AND WS_TABSTOP=WS_TABSTOP THEN
  252.      BEGIN
  253.           IF s<>'' THEN s:=s+'|';
  254.           s:=s+'WS_TABSTOP';
  255.      END;
  256.      IF Flags AND WS_GROUP=WS_GROUP THEN
  257.      BEGIN
  258.           IF s<>'' THEN s:=s+'|';
  259.           s:=s+'WS_GROUP';
  260.      END;
  261. END;
  262.  
  263. PROCEDURE CalcEditStyles(Flags:LONGWORD;VAR s:STRING);
  264. BEGIN
  265.      IF Flags AND ES_MARGIN=ES_MARGIN THEN
  266.      BEGIN
  267.           IF s<>'' THEN s:=s+'|';
  268.           s:=s+'ES_MARGIN';
  269.      END;
  270.      IF Flags AND ES_LEFT=ES_LEFT THEN
  271.      BEGIN
  272.           {ES_LEFT=0}
  273.           {IF s<>'' THEN s:=s+'|';
  274.           s:=s+'ES_LEFT';}
  275.      END;
  276.      IF Flags AND ES_CENTER=ES_CENTER THEN
  277.      BEGIN
  278.           IF s<>'' THEN s:=s+'|';
  279.           s:=s+'ES_CENTER';
  280.      END;
  281.      IF Flags AND ES_RIGHT=ES_RIGHT THEN
  282.      BEGIN
  283.           IF s<>'' THEN s:=s+'|';
  284.           s:=s+'ES_RIGHT';
  285.      END;
  286.      IF Flags AND ES_AUTOSCROLL=ES_AUTOSCROLL THEN
  287.      BEGIN
  288.           IF s<>'' THEN s:=s+'|';
  289.           s:=s+'ES_AUTOSCROLL';
  290.      END;
  291.      IF Flags AND ES_AUTOTAB=ES_AUTOTAB THEN
  292.      BEGIN
  293.           IF s<>'' THEN s:=s+'|';
  294.           s:=s+'ES_AUTOTAB';
  295.      END;
  296.      IF Flags AND ES_READONLY=ES_READONLY THEN
  297.      BEGIN
  298.           IF s<>'' THEN s:=s+'|';
  299.           s:=s+'ES_READONLY';
  300.      END;
  301.      IF Flags AND ES_COMMAND=ES_COMMAND THEN
  302.      BEGIN
  303.           IF s<>'' THEN s:=s+'|';
  304.           s:=s+'ES_COMMAND';
  305.      END;
  306.      IF Flags AND ES_UNREADABLE=ES_UNREADABLE THEN
  307.      BEGIN
  308.           IF s<>'' THEN s:=s+'|';
  309.           s:=s+'ES_UNREADABLE';
  310.      END;
  311.      IF Flags AND ES_AUTOSIZE=ES_AUTOSIZE THEN
  312.      BEGIN
  313.           IF s<>'' THEN s:=s+'|';
  314.           s:=s+'ES_AUTOSIZE';
  315.      END;
  316. END;
  317.  
  318. FUNCTION TButtonDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  319.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  320. VAR r:LONGWORD;
  321.     H:BOOLEAN;
  322.     help:LONGWORD;
  323.     Command,Control:WORD;
  324. BEGIN
  325.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  326.      H:=TRUE;
  327.      CASE msg OF
  328.          WM_INITDLG:
  329.          BEGIN
  330.               SetCheckBoxState(Dlg,103,1);
  331.               SettextLimit(Dlg,100,128);  {Text}
  332.               SettextLimit(Dlg,201,32);   {ConstName}
  333.               DialogSetText(Dlg,100,restext);
  334.          END;
  335.          WM_COMMAND:
  336.          BEGIN
  337.               command:=WORD(para1);
  338.               CASE command oF
  339.                 110:
  340.                 BEGIN
  341.                      DialogGetText(Dlg,100,restext,250);
  342.  
  343.                      ResLong:=0;
  344.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  345.                        ResLong:=ResLong OR 1;
  346.                 END;
  347.               END; {case}
  348.               H:=FALSE; {Handled by Pm}
  349.          END;
  350.          ELSE H:=FALSE;
  351.      END; {case}
  352.  
  353.      Handled:=H;
  354.      DialogHandleEvent:=r;
  355. END;
  356.  
  357. CONSTRUCTOR TButtonDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  358.                  pCreateParams:Pointer);
  359. BEGIN
  360.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  361. END;
  362.  
  363. DESTRUCTOR TButtonDialog.Done;
  364. BEGIN
  365. END;
  366.  
  367.  
  368. PROCEDURE ButtonDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  369. VAR Dlg:TButtonDialog;
  370.     r:LONGWORD;
  371. BEGIN
  372.      restext:=text;
  373.      Dlg.Init(1,AppWinFrameHandle,0,1000,NIL);
  374.      Dlg.ExecDialog(r);
  375.      IF r=110 THEN
  376.      BEGIN
  377.           Text:=restext;
  378.           {Style:=resLong;}
  379.      END;
  380.      Dlg.Done;
  381. END;
  382.  
  383. FUNCTION TCheckBoxDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  384.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  385. VAR r:LONGWORD;
  386.     H:BOOLEAN;
  387.     help:LONGWORD;
  388.     Command,Control:WORD;
  389. BEGIN
  390.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  391.      H:=TRUE;
  392.      CASE msg OF
  393.          WM_INITDLG:
  394.          BEGIN
  395.               SetCheckBoxState(Dlg,103,1);
  396.               SettextLimit(Dlg,100,128);  {Text}
  397.               SettextLimit(Dlg,201,32);   {ConstName}
  398.               DialogSetText(Dlg,100,restext);
  399.          END;
  400.          WM_COMMAND:
  401.          BEGIN
  402.               command:=WORD(para1);
  403.               CASE command oF
  404.                 110:
  405.                 BEGIN
  406.                      DialogGetText(Dlg,100,restext,250);
  407.  
  408.                      ResLong:=0;
  409.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  410.                        ResLong:=ResLong OR 1;
  411.                 END;
  412.               END; {case}
  413.               H:=FALSE; {Handled by Pm}
  414.          END;
  415.          ELSE H:=FALSE;
  416.      END; {case}
  417.  
  418.      Handled:=H;
  419.      DialogHandleEvent:=r;
  420. END;
  421.  
  422. CONSTRUCTOR TCheckBoxDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  423.                  pCreateParams:Pointer);
  424. BEGIN
  425.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  426. END;
  427.  
  428. DESTRUCTOR TCheckBoxDialog.Done;
  429. BEGIN
  430. END;
  431.  
  432.  
  433. PROCEDURE CheckBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  434. VAR Dlg:TCheckBoxDialog;
  435.     r:LONGWORD;
  436. BEGIN
  437.      restext:=text;
  438.      Dlg.Init(1,AppWinFrameHandle,0,1001,NIL);
  439.      Dlg.ExecDialog(r);
  440.      IF r=110 THEN
  441.      BEGIN
  442.           Text:=restext;
  443.           {Style:=resLong;}
  444.      END;
  445.      Dlg.Done;
  446. END;
  447.  
  448. FUNCTION TRadioBoxDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  449.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  450. VAR r:LONGWORD;
  451.     H:BOOLEAN;
  452.     help:LONGWORD;
  453.     Command,Control:WORD;
  454. BEGIN
  455.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  456.      H:=TRUE;
  457.      CASE msg OF
  458.          WM_INITDLG:
  459.          BEGIN
  460.               SetCheckBoxState(Dlg,103,1);
  461.               SettextLimit(Dlg,100,128);  {Text}
  462.               SettextLimit(Dlg,201,32);   {ConstName}
  463.               DialogSetText(Dlg,100,restext);
  464.          END;
  465.          WM_COMMAND:
  466.          BEGIN
  467.               command:=WORD(para1);
  468.               CASE command oF
  469.                 110:
  470.                 BEGIN
  471.                      DialogGetText(Dlg,100,restext,250);
  472.  
  473.                      ResLong:=0;
  474.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  475.                        ResLong:=ResLong OR 1;
  476.                 END;
  477.               END; {case}
  478.               H:=FALSE; {Handled by Pm}
  479.          END;
  480.          ELSE H:=FALSE;
  481.      END; {case}
  482.  
  483.      Handled:=H;
  484.      DialogHandleEvent:=r;
  485. END;
  486.  
  487. CONSTRUCTOR TRadioBoxDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  488.                  pCreateParams:Pointer);
  489. BEGIN
  490.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  491. END;
  492.  
  493. DESTRUCTOR TRadioBoxDialog.Done;
  494. BEGIN
  495. END;
  496.  
  497.  
  498. PROCEDURE RadioBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  499. VAR Dlg:TCheckBoxDialog;
  500.     r:LONGWORD;
  501. BEGIN
  502.      restext:=text;
  503.      Dlg.Init(1,AppWinFrameHandle,0,1002,NIL);
  504.      Dlg.ExecDialog(r);
  505.      IF r=110 THEN
  506.      BEGIN
  507.           Text:=restext;
  508.           {Style:=resLong;}
  509.      END;
  510.      Dlg.Done;
  511. END;
  512.  
  513. FUNCTION TGroupBoxDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  514.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  515. VAR r:LONGWORD;
  516.     H:BOOLEAN;
  517.     help:LONGWORD;
  518.     Command,Control:WORD;
  519. BEGIN
  520.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  521.      H:=TRUE;
  522.      CASE msg OF
  523.          WM_INITDLG:
  524.          BEGIN
  525.               SetCheckBoxState(Dlg,103,1);
  526.               SettextLimit(Dlg,100,128);  {Text}
  527.               SettextLimit(Dlg,201,32);   {ConstName}
  528.               DialogSetText(Dlg,100,restext);
  529.          END;
  530.          WM_COMMAND:
  531.          BEGIN
  532.               command:=WORD(para1);
  533.               CASE command oF
  534.                 110:
  535.                 BEGIN
  536.                      DialogGetText(Dlg,100,restext,250);
  537.  
  538.                      ResLong:=0;
  539.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  540.                        ResLong:=ResLong OR 1;
  541.                 END;
  542.               END; {case}
  543.               H:=FALSE; {Handled by Pm}
  544.          END;
  545.          ELSE H:=FALSE;
  546.      END; {case}
  547.  
  548.      Handled:=H;
  549.      DialogHandleEvent:=r;
  550. END;
  551.  
  552. CONSTRUCTOR TGroupBoxDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  553.                  pCreateParams:Pointer);
  554. BEGIN
  555.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  556. END;
  557.  
  558. DESTRUCTOR TGroupBoxDialog.Done;
  559. BEGIN
  560. END;
  561.  
  562.  
  563. PROCEDURE GroupBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  564. VAR Dlg:TCheckBoxDialog;
  565.     r:LONGWORD;
  566. BEGIN
  567.      restext:=text;
  568.      Dlg.Init(1,AppWinFrameHandle,0,1003,NIL);
  569.      Dlg.ExecDialog(r);
  570.      IF r=110 THEN
  571.      BEGIN
  572.           Text:=restext;
  573.           {Style:=resLong;}
  574.      END;
  575.      Dlg.Done;
  576. END;
  577.  
  578. FUNCTION TDialogDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  579.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  580. VAR r:LONGWORD;
  581.     H:BOOLEAN;
  582.     help:LONGWORD;
  583.     Command,Control:WORD;
  584. BEGIN
  585.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  586.      H:=TRUE;
  587.      CASE msg OF
  588.          WM_INITDLG:
  589.          BEGIN
  590.               SetCheckBoxState(Dlg,103,1);
  591.               SetRadioButtonState(Dlg,109,1);
  592.               SettextLimit(Dlg,100,128);  {Text}
  593.               SettextLimit(Dlg,201,32);   {ConstName}
  594.               DialogSetText(Dlg,100,restext);
  595.          END;
  596.          WM_COMMAND:
  597.          BEGIN
  598.               command:=WORD(para1);
  599.               CASE command oF
  600.                 110:
  601.                 BEGIN
  602.                      DialogGetText(Dlg,100,restext,250);
  603.  
  604.                      ResLong:=0;
  605.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  606.                        ResLong:=ResLong OR 1;
  607.                 END;
  608.               END; {case}
  609.               H:=FALSE; {Handled by Pm}
  610.          END;
  611.          ELSE H:=FALSE;
  612.      END; {case}
  613.  
  614.      Handled:=H;
  615.      DialogHandleEvent:=r;
  616. END;
  617.  
  618. CONSTRUCTOR TDialogDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  619.                  pCreateParams:Pointer);
  620. BEGIN
  621.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  622. END;
  623.  
  624. DESTRUCTOR TDialogDialog.Done;
  625. BEGIN
  626. END;
  627.  
  628.  
  629. PROCEDURE DialogDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  630. VAR Dlg:TDialogDialog;
  631.     r:LONGWORD;
  632. BEGIN
  633.      restext:=text;
  634.      Dlg.Init(1,AppWinFrameHandle,0,1004,NIL);
  635.      Dlg.ExecDialog(r);
  636.      IF r=110 THEN
  637.      BEGIN
  638.           Text:=restext;
  639.           {Style:=resLong;}
  640.      END;
  641.      Dlg.Done;
  642. END;
  643.  
  644. FUNCTION TOptionsDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  645.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  646. VAR r:LONGWORD;
  647.     H:BOOLEAN;
  648.     help:LONGWORD;
  649.     Command,Control:WORD;
  650. BEGIN
  651.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  652.      H:=TRUE;
  653.      CASE msg OF
  654.          WM_INITDLG:
  655.          BEGIN
  656.               SetCheckBoxState(Dlg,103,1);
  657.               SetRadioButtonState(Dlg,109,1);
  658.               SettextLimit(Dlg,100,128);  {Text}
  659.               SettextLimit(Dlg,201,32);   {ConstName}
  660.               DialogSetText(Dlg,100,restext);
  661.          END;
  662.          WM_COMMAND:
  663.          BEGIN
  664.               command:=WORD(para1);
  665.               CASE command oF
  666.                 110:
  667.                 BEGIN
  668.                      DialogGetText(Dlg,100,restext,250);
  669.  
  670.                      ResLong:=0;
  671.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  672.                        ResLong:=ResLong OR 1;
  673.                 END;
  674.               END; {case}
  675.               H:=FALSE; {Handled by Pm}
  676.          END;
  677.          ELSE H:=FALSE;
  678.      END; {case}
  679.  
  680.      Handled:=H;
  681.      DialogHandleEvent:=r;
  682. END;
  683.  
  684. CONSTRUCTOR TOptionsDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  685.                  pCreateParams:Pointer);
  686. BEGIN
  687.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  688. END;
  689.  
  690. DESTRUCTOR TOptionsDialog.Done;
  691. BEGIN
  692. END;
  693.  
  694.  
  695. PROCEDURE OptionsDlg(VAR Grid:BYTE;VAR Options:LONGWORD);
  696. VAR Dlg:TOptionsDialog;
  697.     r:LONGWORD;
  698.     b:LONGINT;
  699.     c:INTEGER;
  700. BEGIN
  701.      restext:=tostr(grid);
  702.      Dlg.Init(1,AppWinFrameHandle,0,1005,NIL);
  703.      Dlg.ExecDialog(r);
  704.      IF r=110 THEN
  705.      BEGIN
  706.           VAL(restext,b,c);
  707.           IF c=0 THEN Grid:=b;
  708.           Options:=resLong;
  709.      END;
  710.      Dlg.Done;
  711. END;
  712.  
  713. FUNCTION TTextDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  714.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  715. VAR r:LONGWORD;
  716.     H:BOOLEAN;
  717.     help:LONGWORD;
  718.     Command,Control:WORD;
  719. BEGIN
  720.  
  721.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  722.      H:=TRUE;
  723.      CASE msg OF
  724.          WM_INITDLG:
  725.          BEGIN
  726.               SetCheckBoxState(Dlg,120,1);
  727.               SetRadioButtonState(Dlg,103,1);
  728.               SettextLimit(Dlg,100,128);  {Text}
  729.               SettextLimit(Dlg,201,32);   {ConstName}
  730.               DialogSetText(Dlg,100,restext);
  731.          END;
  732.          WM_COMMAND:
  733.          BEGIN
  734.               command:=WORD(para1);
  735.               CASE command oF
  736.                 110:
  737.                 BEGIN
  738.                      DialogGetText(Dlg,100,restext,250);
  739.  
  740.                      ResLong:=0;
  741.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  742.                        ResLong:=ResLong OR 1;
  743.                 END;
  744.               END; {case}
  745.               H:=FALSE; {Handled by Pm}
  746.          END;
  747.          ELSE H:=FALSE;
  748.      END; {case}
  749.  
  750.      Handled:=H;
  751.      DialogHandleEvent:=r;
  752. END;
  753.  
  754. CONSTRUCTOR TTextDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  755.                  pCreateParams:Pointer);
  756. BEGIN
  757.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  758. END;
  759.  
  760. DESTRUCTOR TTextDialog.Done;
  761. BEGIN
  762. END;
  763.  
  764. PROCEDURE TextDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  765. VAR Dlg:TTextDialog;
  766.     r:LONGWORD;
  767.     b,c:BYTE;
  768. BEGIN
  769.      restext:=text;
  770.      Dlg.Init(1,AppWinFrameHandle,0,1006,NIL);
  771.      Dlg.ExecDialog(r);
  772.      IF r=110 THEN
  773.      BEGIN
  774.           Text:=restext;
  775.           {Style:=reslong;}
  776.      END;
  777.      Dlg.Done;
  778. END;
  779.  
  780. FUNCTION TEntryDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  781.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  782. VAR r:LONGWORD;
  783.     H:BOOLEAN;
  784.     help:LONGWORD;
  785.     Command,Control:WORD;
  786. BEGIN
  787.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  788.      H:=TRUE;
  789.      CASE msg OF
  790.          WM_INITDLG:
  791.          BEGIN
  792.               SetCheckBoxState(Dlg,120,1);
  793.               SetRadioButtonState(Dlg,103,1);
  794.               SettextLimit(Dlg,100,128);  {Text}
  795.               SettextLimit(Dlg,201,32);   {ConstName}
  796.               DialogSetText(Dlg,100,restext);
  797.          END;
  798.          WM_COMMAND:
  799.          BEGIN
  800.               command:=WORD(para1);
  801.               CASE command oF
  802.                 110:
  803.                 BEGIN
  804.                      DialogGetText(Dlg,100,restext,250);
  805.  
  806.                      ResLong:=0;
  807.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  808.                        ResLong:=ResLong OR 1;
  809.                 END;
  810.               END; {case}
  811.               H:=FALSE; {Handled by Pm}
  812.          END;
  813.          ELSE H:=FALSE;
  814.      END; {case}
  815.  
  816.      Handled:=H;
  817.      DialogHandleEvent:=r;
  818. END;
  819.  
  820. CONSTRUCTOR TEntryDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  821.                  pCreateParams:Pointer);
  822. BEGIN
  823.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  824. END;
  825.  
  826. DESTRUCTOR TEntryDialog.Done;
  827. BEGIN
  828. END;
  829.  
  830. PROCEDURE EntryDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  831. VAR Dlg:TEntryDialog;
  832.     r:LONGWORD;
  833.     b,c:BYTE;
  834. BEGIN
  835.      restext:=text;
  836.      Dlg.Init(1,AppWinFrameHandle,0,1007,NIL);
  837.      Dlg.ExecDialog(r);
  838.      IF r=110 THEN
  839.      BEGIN
  840.           Text:=restext;
  841.           {Style:=reslong;}
  842.      END;
  843.      Dlg.Done;
  844. END;
  845.  
  846. FUNCTION TListBoxDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  847.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  848. VAR r:LONGWORD;
  849.     H:BOOLEAN;
  850.     help:LONGWORD;
  851.     Command,Control:WORD;
  852. BEGIN
  853.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  854.      H:=TRUE;
  855.      CASE msg OF
  856.          WM_INITDLG:
  857.          BEGIN
  858.               SetCheckBoxState(Dlg,120,1);
  859.               SetRadioButtonState(Dlg,103,1);
  860.               SettextLimit(Dlg,100,128);  {Text}
  861.               SettextLimit(Dlg,201,32);   {ConstName}
  862.               DialogSetText(Dlg,100,restext);
  863.          END;
  864.          WM_COMMAND:
  865.          BEGIN
  866.               command:=WORD(para1);
  867.               CASE command oF
  868.                 110:
  869.                 BEGIN
  870.                      DialogGetText(Dlg,100,restext,250);
  871.  
  872.                      ResLong:=0;
  873.                      IF GetCheckBoxState(Dlg,101)<>0 THEN
  874.                        ResLong:=ResLong OR 1;
  875.                 END;
  876.               END; {case}
  877.               H:=FALSE; {Handled by Pm}
  878.          END;
  879.          ELSE H:=FALSE;
  880.      END; {case}
  881.  
  882.      Handled:=H;
  883.      DialogHandleEvent:=r;
  884. END;
  885.  
  886. CONSTRUCTOR TListBoxDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  887.                  pCreateParams:Pointer);
  888. BEGIN
  889.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  890. END;
  891.  
  892. DESTRUCTOR TListBoxDialog.Done;
  893. BEGIN
  894. END;
  895.  
  896. PROCEDURE ListBoxDlg(VAR Text,idConstName:STRING;VAR Style,id:LONGWORD);
  897. VAR Dlg:TEntryDialog;
  898.     r:LONGWORD;
  899.     b,c:BYTE;
  900. BEGIN
  901.      restext:=text;
  902.      Dlg.Init(1,AppWinFrameHandle,0,1008,NIL);
  903.      Dlg.ExecDialog(r);
  904.      IF r=110 THEN
  905.      BEGIN
  906.           Text:=restext;
  907.           {Style:=reslong;}
  908.      END;
  909.      Dlg.Done;
  910. END;
  911.  
  912. VAR AvailResList:PListBoxItems;
  913.  
  914. FUNCTION TNewResDialog.DialogHandleEvent(Dlg:HWND;msg:LONGWORD;
  915.                        Para1,Para2:LONGWORD;VAR Handled:BOOLEAN):LONGWORD;
  916. VAR r:LONGWORD;
  917.     H:BOOLEAN;
  918.     help:LONGWORD;
  919.     Command,Control:WORD;
  920.     pb:^Byte;
  921.     s:STRING;
  922.     res:TListBoxItems;
  923. BEGIN
  924.      r:=Inherited.DialogHandleEvent(Dlg,msg,para1,para2,Handled);
  925.      H:=TRUE;
  926.      CASE msg OF
  927.          WM_INITDLG:
  928.          BEGIN
  929.               AvailResList:=NIL;
  930.  
  931.               s:='Dialog Template';
  932.               getmem(pb,1);
  933.               pb^:=R_DIALOG;
  934.               NewListBoxItem(AvailResList,s,pb,1,FALSE);
  935.  
  936.               s:='Menu Template';
  937.               getmem(pb,1);
  938.               pb^:=R_MENU;
  939.               NewListBoxItem(AvailResList,s,pb,1,FALSE);
  940.  
  941.               s:='Accelerator table';
  942.               getmem(pb,1);
  943.               pb^:=R_ACCEL;
  944.               NewListBoxItem(AvailResList,s,pb,1,FALSE);
  945.  
  946.               s:='Icon';
  947.               getmem(pb,1);
  948.               pb^:=R_ICON;
  949.               NewListBoxItem(AvailResList,s,pb,1,FALSE);
  950.  
  951.               s:='Bitmap';
  952.               getmem(pb,1);
  953.               pb^:=R_BITMAP;
  954.               NewListBoxItem(AvailResList,s,pb,1,FALSE);
  955.  
  956.               FillListBox(Dlg,100,AvailResList);
  957.          END;
  958.          WM_CONTROL:
  959.          BEGIN
  960.               help:=LONGWORD(Para1);
  961.               Control:=Hi(help);
  962.               CASE Control OF
  963.                 LN_ENTER:
  964.                 BEGIN
  965.                      ListBoxGetSelItem(Dlg,100,Res,AvailResList,TRUE);
  966.                      IF res._index=65535 THEN ResLong:=0 {No item selected}
  967.                      ELSE
  968.                      BEGIN
  969.                           pb:=res.data;
  970.                           ResLong:=pb^;
  971.                      END;
  972.                      WinDismissDlg(110,Dlg);
  973.                 END;
  974.               END; {Case}
  975.               H:=FALSE;
  976.          END;
  977.          WM_COMMAND:
  978.          BEGIN
  979.               command:=WORD(para1);
  980.               CASE command oF
  981.                 110:
  982.                 BEGIN
  983.                      ListBoxGetSelItem(Dlg,100,res,AvailResList,TRUE);
  984.                      IF res._index=65535 THEN ResLong:=0 {No item selected}
  985.                      ELSE
  986.                      BEGIN
  987.                           pb:=res.data;
  988.                           ResLong:=pb^;
  989.                      END;
  990.                 END;
  991.               END; {case}
  992.               H:=FALSE; {Handled by Pm}
  993.          END;
  994.          ELSE H:=FALSE;
  995.      END; {case}
  996.  
  997.      Handled:=H;
  998.      DialogHandleEvent:=r;
  999. END;
  1000.  
  1001. CONSTRUCTOR TNewResDialog.Init(Parent,Owner:HWND;hmod:HModule;idDlg:LONGWORD;
  1002.                  pCreateParams:Pointer);
  1003. BEGIN
  1004.      Inherited.Init(Parent,Owner,hmod,idDlg,pCreateParams);
  1005. END;
  1006.  
  1007. DESTRUCTOR TNewResDialog.Done;
  1008. BEGIN
  1009. END;
  1010.  
  1011. FUNCTION NewResDlg:BYTE;
  1012. VAR Dlg:TNewResDialog;
  1013.     r:LONGWORD;
  1014.     b,c:BYTE;
  1015. Label l;
  1016. BEGIN
  1017. l:
  1018.      Dlg.Init(1,AppWinFrameHandle,0,501,NIL);
  1019.      Dlg.ExecDialog(r);
  1020.      Dlg.Done;
  1021.      IF r=110 THEN
  1022.      BEGIN
  1023.           IF reslong=0 THEN
  1024.           BEGIN
  1025.                ErrorBox(MB_WARNING,'You must specify a resource !');
  1026.                goto l;
  1027.           END;
  1028.           NewResDlg:=reslong
  1029.      END;
  1030.      ELSE NewResDlg:=0;
  1031. END;
  1032.  
  1033.  
  1034. BEGIN
  1035. END.
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.