home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 1995 May / pcw-0595.bin / demos / databeck / wsounds / setup.dir / wswsrc.exe / SRCHDLG.PAS < prev    next >
Pascal/Delphi Source File  |  1992-11-06  |  3KB  |  102 lines

  1. Unit SrchDlg;
  2.  
  3. INTERFACE
  4. uses WinTypes, WinProcs, WinDos, WObjects, Strings, MMSystem,
  5.      DataObj, BWCC;
  6.  
  7. const
  8.   dn_SrchDlg = 'SrchDlg';
  9.  
  10.   id_FileS = 1300;
  11.   id_Comm  = 1301;
  12.   id_StartS= 1302;
  13.   id_Found = 1303;
  14.   id_FileC = 1304;
  15.   id_CommC = 1305;
  16.   id_FounC = 1306;
  17.  
  18. VAR
  19.    SrchBack : Integer;
  20. type
  21.   PSrchDlg = ^TSrchDlg;
  22.   TSrchDlg = object(TDialog)
  23.     CurrCollect : PWaveCollection;
  24.     InfoFlag : Byte;
  25.     CurrNr : Integer;
  26.     constructor Init(AParent: PWindowsObject;AName: PChar; ACollect : PWaveCollection;
  27.                      AInfo : Byte; ACurr : Integer);
  28.     procedure SetupWindow; virtual;
  29.     Procedure HandleStartSrch(VAR Msg : TMessage);virtual id_First + id_Starts;
  30.   end;
  31.  
  32. implementation
  33.  
  34. constructor TSrchDlg.Init(AParent: PWindowsObject;
  35.   AName: PChar; ACollect : PWaveCollection;AInfo : Byte; ACurr : Integer);
  36. begin
  37.   TDialog.Init(AParent, AName);
  38.   CurrCollect := ACollect;
  39.   InfoFlag := AInfo;
  40.   CurrNr := ACurr;
  41.   SrchBack := 0;
  42. end;
  43.  
  44. procedure TSrchDlg.SetupWindow;
  45. VAR
  46.    ACount : Word;
  47.    Out    : Array [0..6] of char;
  48.    Msg : TMessage;
  49. begin
  50.   TDialog.SetupWindow;
  51.   TWindowsObject.Show(sw_Show);
  52.   HandleStartSrch(Msg);
  53. end;
  54.  
  55. Procedure TSrchDlg.HandleStartSrch(VAR Msg : TMessage);
  56. VAR
  57.    Counter : Integer;
  58.    PasS : String[10];
  59.    TDummy : ARRAY[0..128] OF CHar;
  60.    MDummy : Array[0..11] OF Char;
  61.    Count : Integer;
  62.    PWTest : PWaveData;
  63. BEGIN
  64.    SetDlgItemText(HWindow, id_FileC, 'File  :');
  65.    SetDlgItemText(HWindow, id_CommC, 'Comment  :');
  66.    SetDlgItemText(HWindow, id_FounC, 'Found    :');
  67.    SetDlgItemText(HWindow, id_FileS, 'Database');
  68.    SetDlgItemText(HWindow, id_Comm, 'Selection');
  69.    SetDlgItemText(HWindow, id_Found, '0');
  70.    IF InfoFlag = 1 THEN BEGIN
  71.       WD_SearchAll(HWindow,CurrCollect, WavePlayColl, WaveDCrit, Counter);
  72.       Str(Counter:5,PasS);
  73.       StrCopy(TDummy,' There were ');
  74.       StrCat(TDummy,StrPCopy(MDummy,PasS));
  75.       StrCat(TDummy, ' elements');
  76.       StrCat(TDummy, #10#13);
  77.       StrCat(TDummy, 'taken from the database');
  78.       BWCCMessageBox(HWindow, TDummy, 'Wicked Sounds for Windows: Note',mb_Ok+mb_IconInformation);
  79.       END;
  80.    IF InfoFlag = 0 THEN BEGIN
  81.      SrchBack := CurrNr;
  82.      Count := CurrNr+1;
  83.      While (Count <= (WaveCollect^.Count-1)) DO BEGIN
  84.         PWTest := WaveCollect^.At(Count);
  85.         IF (WD_SearchNext(HWindow,Count, PWTest, WaveDCrit) = Count) THEN BEGIN
  86.            CurrNr := Count;
  87.            SrchBack := CurrNr;
  88.            Count:= WaveCollect^.Count+2;
  89.            END;
  90.         Inc(Count);
  91.         END;
  92.      IF (Count = WaveCollect^.Count) THEN BEGIN
  93.         StrCopy(ShortMain,'No more data records found');
  94.         BWCCMessageBox(HWindow,ShortMain, 'Wicked Sounds for Windows: Note',MB_Ok+MB_IconInformation);
  95.         END
  96.      END;
  97.    OK(Msg);
  98.    end;
  99.  
  100. BEGIN
  101.    END.
  102.