home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 1995 May / pcw-0595.bin / demos / databeck / wsounds / setup.dir / wswsrc.exe / RECDLG.PAS < prev    next >
Pascal/Delphi Source File  |  1992-12-02  |  7KB  |  231 lines

  1. UNIT RecDlg;
  2.  
  3. interface
  4.  
  5. (* Add Units *)
  6. USES WObjects,WinTypes,WinProcs,WinDos,Strings,WinCrt,MMSystem,
  7.      DataObj, SrchDlg;
  8.  
  9.  
  10. (* Define constants and other STUFF *)
  11.  
  12. const
  13.       DN_RecDlg = 'SELECTED';
  14.  
  15.       Selected   = 1;
  16.  
  17.       lAND       = 1;
  18.       lOR        = 2;
  19.       lNOT       = 3;
  20.       EXACTLY    = 1;
  21.       LATER      = 2;
  22.       EARLIER    = 3;
  23.  
  24. (* SELECTED dialog *)
  25.  
  26. const ID_Name    = 100;
  27.       ID_Exact   = 103;
  28.       ID_Younger = 104;
  29.       ID_Older   = 105;
  30.       ID_Srch1   = 106;
  31.       ID_And1    = 107;
  32.       ID_Or1     = 108;
  33.       ID_ButNot1 = 109;
  34.       ID_Srch2   = 110;
  35.       ID_And2    = 111;
  36.       ID_Or2     = 112;
  37.       ID_ButNot2 = 113;
  38.       ID_Srch3   = 114;
  39.       ID_Day     = 115;
  40.       ID_Mon     = 116;
  41.       ID_Year    = 117;
  42.  
  43. { Declare application object and its methods }
  44.  
  45. TYPE
  46.      PRecDlg = ^TRecDlg;
  47.      TRecDlg = OBJECT (TDialog)
  48.        OutBuf : PChar;
  49.        DateState : Byte;
  50.        CheckState1 : Byte;
  51.        CheckState2 : Byte;
  52.        CONSTRUCTOR Init (AParent : PWindowsObject; AName: PChar; Puffer: PChar);
  53.        PROCEDURE SetupWindow; virtual;
  54.        PROCEDURE Ok (VAR Msg: TMessage); virtual ID_First + ID_OK;
  55.        PROCEDURE Cancel (VAR Msg: TMessage);virtual ID_First + ID_CANCEL;
  56.        PROCEDURE Exact (var Msg: TMessage); virtual ID_First + ID_Exact;
  57.        PROCEDURE Younger (Var Msg: TMessage);virtual ID_First + ID_Younger;
  58.        PROCEDURE Older (Var Msg: TMessage); virtual ID_First + ID_Older;
  59.        PROCEDURE And1 (Var Msg: TMessage); virtual ID_First + ID_And1;
  60.        PROCEDURE Oder1 (Var Msg: TMessage); virtual ID_First + ID_Or1;
  61.        PROCEDURE ButNot1 (Var Msg: TMessage); virtual ID_First + ID_ButNot1;
  62.        PROCEDURE And2 (Var Msg: TMessage);   virtual ID_First + ID_And2;
  63.        PROCEDURE Oder2 (Var Msg: TMessage); virtual ID_First + ID_Or2;
  64.        PROCEDURE ButNot2 (Var Msg: TMessage); virtual ID_First + ID_ButNot2;
  65.      END;
  66.  
  67.  
  68. IMPLEMENTATION
  69.  
  70. { Initialize dialog box }
  71. CONSTRUCTOR TRecDlg.Init (AParent : PWindowsObject; AName: PChar; Puffer:PChar);
  72. BEGIN
  73.   TDialog.Init(AParent,Aname);
  74.   datestate := EXACTLY;
  75.   CheckState1 := 0;
  76.   CheckState2 := 0;
  77.  END;
  78.  
  79. PROCEDURE TRecDlg.Exact (var Msg:TMessage);
  80. Begin
  81.    CheckRadioButton(HWindow, id_Exact, id_Older, id_Exact);
  82.    datestate := EXACTLY;
  83. End;
  84.  
  85. PROCEDURE TRecDlg.Younger (var Msg:TMessage);
  86. Begin
  87.   CheckRadioButton(HWindow, id_Exact, id_Older, id_Younger);
  88.   datestate := LATER;
  89. End;
  90.  
  91. PROCEDURE TRecDlg.Older (var Msg:TMessage);
  92. Begin
  93.   CheckRadioButton(HWindow, id_Exact, id_Older, id_Older);
  94.   datestate := EARLIER;
  95. End;
  96.  
  97. procedure TRecDlg.And1(var Msg: TMessage);
  98. BEGIN
  99.    CheckRadioButton(HWindow, id_And1, id_ButNot1, id_And1);
  100.    CheckState1 := 0;
  101.    END;
  102.  
  103. procedure TRecDlg.ButNot1(var Msg: TMessage);
  104. BEGIN
  105.    CheckRadioButton(HWindow, id_And1, id_ButNot1, id_ButNot1);
  106.    CheckState1 := 2;
  107.    END;
  108.  
  109. procedure TRecDlg.Oder1(var Msg: TMessage);
  110. BEGIN
  111.    CheckRadioButton(HWindow, id_And1, id_ButNot1, id_Or1);
  112.    CheckState1 := 1;
  113.    END;
  114.  
  115. procedure TRecDlg.And2(var Msg: TMessage);
  116. BEGIN
  117.    CheckRadioButton(HWindow, id_And2, id_ButNot2, id_And2);
  118.    CheckState2 := 0;
  119.    END;
  120.  
  121. procedure TRecDlg.ButNot2(var Msg: TMessage);
  122. BEGIN
  123.    CheckRadioButton(HWindow, id_And2, id_ButNot2, id_ButNot2);
  124.    CheckState2 := 2;
  125.    END;
  126.  
  127. procedure TRecDlg.Oder2(var Msg: TMessage);
  128. BEGIN
  129.    CheckRadioButton(HWindow, id_And2, id_ButNot2, id_Or2);
  130.    CheckState2 := 1;
  131.    END;
  132.  
  133. { Create dialog box }
  134. PROCEDURE TRecDlg.SetupWindow;
  135. BEGIN
  136.  TDialog.SetupWindow;
  137.  CheckRadioButton(HWindow, id_And1, id_ButNot1, id_And1);
  138.  CheckRadioButton(HWindow, id_And2, id_ButNot2, id_And2);
  139.  CheckRadioButton(HWindow, id_Exact, id_Older, id_Exact);
  140.  SendDlgItemMessage(HWindow, id_Name, em_LimitText, 8, 0);
  141.  SendDlgItemMessage(HWindow, id_Srch1, em_LimitText, 62, 0);
  142.  SendDlgItemMessage(HWindow, id_Srch2, em_LimitText, 62, 0);
  143.  SendDlgItemMessage(HWindow, id_Srch3, em_LimitText, 62, 0);
  144.  SendDlgItemMessage(HWindow, id_Day, em_LimitText, 2, 0);
  145.  SendDlgItemMessage(HWindow, id_Mon, em_LimitText, 2, 0);
  146.  SendDlgItemMessage(HWindow, id_Year, em_LimitText, 4, 0);
  147. END;
  148.  
  149. { OK button was clicked }
  150. PROCEDURE TRecDlg.OK (VAR Msg: TMessage);
  151. VAR
  152.    LDialog : PSrchDlg;
  153.    Ch      : Char;
  154.    CCount  : Integer;
  155. BEGIN
  156.  
  157.   With WaveDCrit DO BEGIN
  158.      WName[0] := #0;
  159.      WLim1[0] := #0;
  160.      WLim2[0] := #0;
  161.      WDay [0] := #0;
  162.      WMon [0] := #0;
  163.      WYear[0] := #0;
  164.      END;
  165.  
  166.   GetDlgItemText (HWindow, ID_Name, WaveDCrit.WName,9);
  167.   GetDlgItemText (HWindow, ID_Srch1, WaveDCrit.WBase,63);
  168.   GetDlgItemText (HWindow, ID_Srch2, WaveDCrit.WLim1,63);
  169.   GetDlgItemText (HWindow, ID_Srch3, WaveDCrit.WLim2,63);
  170.   WaveDCrit.WCon1 := CheckState1;
  171.   WaveDCrit.WCon2 := CheckState2;
  172.   GetDlgItemText (HWindow, ID_Mon, WaveDCrit.WMon,3);
  173.   if (StrLen(WaveDCrit.WMon) = 1) THEN BEGIN
  174.      Ch := WaveDCrit.WMon[0];
  175.      WaveDCrit.WMon[0] := '0';
  176.      WaveDCrit.WMon[1] := Ch;
  177.      WaveDCrit.WMon[2] := #0;
  178.      END;
  179.   IF (StrLen(WaveDCrit.WMon) = 2) THEN BEGIN
  180.      Ch := WaveDCrit.WMon[0];
  181.      IF ((Ch < '0') or (Ch > '9')) THEN WaveDCrit.WMon[0] := '0';
  182.      Ch := WaveDCrit.WMon[1];
  183.      IF ((Ch < '0') or (Ch > '9')) THEN WaveDCrit.WMon[1] := '0';
  184.      END;
  185.   GetDlgItemText (HWindow, ID_Day, WaveDCrit.WDay,3);
  186.   if (StrLen(WaveDCrit.WDay) = 1) THEN BEGIN
  187.      Ch := WaveDCrit.WDay[0];
  188.      WaveDCrit.WDay[0] := '0';
  189.      WaveDCrit.WDay[1] := Ch;
  190.      WaveDCrit.WDay[2] := #0;
  191.      END;
  192.   IF (StrLen(WaveDCrit.WDay) = 2) THEN BEGIN
  193.      Ch := WaveDCrit.WDay[0];
  194.      IF ((Ch < '0') or (Ch > '9')) THEN WaveDCrit.WDay[0] := '0';
  195.      Ch := WaveDCrit.WDay[1];
  196.      IF ((Ch < '0') or (Ch > '9')) THEN WaveDCrit.WDay[1] := '0';
  197.      END;
  198.   GetDlgItemText (HWindow, ID_Year, WaveDCrit.WYear,5);
  199.   FOR CCount := 0 to StrLen(WaveDCrit.WYear)-1 DO BEGIN
  200.      Ch := WaveDCrit.WYear[CCount];
  201.      IF ((Ch < '0') or (Ch > '9')) THEN WaveDCrit.WYear[CCount] := '0';
  202.      END;
  203.   WaveDCrit.WDat := DateState;
  204.  
  205. {
  206.   WriteLn('Name : ',WaveDCrit.WName,' -> ', StrLen(WaveDCrit.WName));
  207.   WriteLn('Basis: ',WaveDCrit.WBase);
  208.   WriteLn('WLim1: ',WaveDCrit.WLim1,' -> ',StrLen(WaveDCrit.WLim1));
  209.   WriteLn('WCon1: ',WaveDCrit.WCon1);
  210.   WriteLn('WLim2: ',WaveDCrit.WLim2);
  211.   WriteLn('WCon2: ',WaveDCrit.WCon2);
  212.   WriteLn('WDay : ',WaveDCrit.WDay,' -> ',StrLen(WaveDCrit.WDay));
  213.   WriteLn('WMon : ',WaveDCrit.WMon,' -> ',StrLen(WaveDCrit.WMon));
  214.   WriteLn('WYear: ',WaveDCrit.WYear,' -> ',StrLen(WaveDCrit.WYear));
  215.   WriteLn('WDat : ',WaveDCrit.WDat);
  216. }
  217.   LDialog := New(PSrchDlg, Init(@self, dn_SrchDlg,WaveCollect,1,0));
  218.   IF Application^.ExecDialog(LDialog) = ID_OK THEN
  219.       BEGIN END;
  220.   TDialog.OK (Msg);
  221. END;
  222.  
  223. { CANCEL button clicked }
  224. PROCEDURE TRecDlg.CANCEL (VAR Msg: TMessage);
  225. BEGIN
  226.  TDialog.CANCEL (Msg);
  227. END;
  228.  
  229. BEGIN
  230. END.
  231.