home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 1995 May
/
pcw-0595.bin
/
demos
/
databeck
/
wsounds
/
setup.dir
/
wswsrc.exe
/
SAVEDLG.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-11-02
|
3KB
|
101 lines
Unit SaveDlg;
INTERFACE
uses WinTypes, WinProcs, WinDos, WObjects, Strings, MMSystem,
DataObj, RiffComm, EventDlg;
const
dn_SaveDlg = 'SaveDlg';
id_StartSV = 395;
type
PSaveDlg = ^TSaveDlg;
TSaveDlg = object(TDialog)
CurrCollect : PWaveCollection;
SaveFlag : Integer;
constructor Init(AParent: PWindowsObject;AName: PChar; AFlag: Integer);
procedure SetupWindow; virtual;
Procedure HandleStartSave(VAR Msg : TMessage);virtual id_First + id_StartSV;
end;
PROCEDURE WD_Check4SAve2Wave(DataSource : PWaveCollection);
implementation
PROCEDURE WD_Check4SAve2Wave(DataSource : PWaveCollection);
{
*** Input : Pointer to source collection
*** Output : None
*** Remarks : Checks whether comment has been written to WAV file
}
PROCEDURE Check_One(Item : PWaveData); FAR;
VAR
Message : Integer;
BEGIN
Item^.GetData(WaveDummy);
IF (WaveDummy.Save2Wave = C2W_Save) THEN BEGIN
PutRIFFComment(WaveDummy, Message);
CASE Message of
MMWriteOK : BEGIN
WaveDummy.Save2Wave := C2W_IsSaved
END;
MMWriteCancel : BEGIN
WaveDummy.Save2Wave := C2W_DontSave;
END;
ELSE WaveDummy.Save2Wave := C2W_DontSave;
END;
END;
Move(WaveDummy,Item^.WD,SizeOf(WaveDummy));
END;
BEGIN
WaveCollect^.ForEach(@Check_One);
END;
constructor TSaveDlg.Init(AParent: PWindowsObject;AName: PChar; AFlag: Integer);
begin
TDialog.Init(AParent, AName);
SaveFlag := AFlag;
end;
procedure TSaveDlg.SetupWindow;
VAR
Msg : TMessage;
begin
TDialog.SetupWindow;
TWindowsObject.Show(sw_Show);
{WD_Check4Save2Wave(WaveCollect);}
HandleStartSave(Msg);
{PostMessage(HWindow, wm_Command, id_StartSV, 0);}
end;
Procedure TSaveDlg.HandleStartSave(VAR Msg : TMessage);
BEGIN
{
SetDlgItemText(HWindow,396,'Save');
SetDlgItemText(HWindow,397,'Database');
}
UpdateWindow(HWindow);
IF SaveFlag = 1 THEN BEGIN
SetDlgItemText(HWindow,397,'Database');
WaveStream := New ( PBufStream, Init(WF_TMP, stCreate, 512));
WaveStream^.Put(WaveCollect);
Dispose(WaveStream,Done);
WD_TMP2DAT;
END
ELSE
IF SaveFlag = 2 THEN BEGIN
SetDlgItemText(HWindow,397,'Program list');
WaveStream := New ( PBufStream, Init(WF_CAS, stCreate, 512));
WaveStream^.Put(WavePlayColl);
Dispose(WaveStream,Done);
{WD_TMP2DAT;}
END;
LoadEvents;
TDialog.OK(Msg);
end;
BEGIN
END.