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

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