home *** CD-ROM | disk | FTP | other *** search
- PROGRAM doc1;
- (*****************************************************************************
- Name: DOC1
- Version: 1.0
- Edit Datum: 1. April 1992
- Autor: Andreas Schumm
- Kurzbeschreibung: Beispieldialog aus der Dokumentation
- *****************************************************************************)
-
- USES Kernel, API, Dialogs, DOS;
-
- CONST ProjektName = 'doc1'; { so heissen alle Dateien }
- Maske = '*.*' ;
-
- VAR LaunchResult : integer;
- MyEvent : EventTyp; { eine Botschaft }
- StillRunning : boolean;
- MyRec : SearchRec; { für GetFirst/GetNext }
- HiddenToo : boolean;
-
-
- Procedure GetNextFile(Var Item: ListString; Var eol: boolean); far;
- var dir: dirstr;
- name: namestr;
- ext : extstr;
- begin
- FindNext(MyRec);
- If DosError = 0 then eol := false
- else eol := true;
- Item := MyRec.name;
- if not eol then fsplit(Item, dir, name, ext);
- end;
-
-
- Procedure GetFirstFile(Var Item: ListString; Var eol: boolean); far;
- var dir : dirstr;
- name: namestr;
- ext : extstr;
- attr: word;
- begin
- MyRec.Name := '';
- attr := AnyFile - Directory - Hidden - VolumeID; { nur normale Dateien }
- if HiddenToo then attr := attr + Hidden; { ggf. auch versteckte }
- FindFirst(Maske, attr, MyRec);
- If DosError <> 0 then
- eol := true
- else
- begin
- eol := false;
- Item := MyRec.name;
- fsplit(Item, dir, name, ext);
- end;
- end;
-
-
- procedure MyFirstEventProc(TheEvent: EventTyp); far;
- var MyCheckBox : PCheckBox;
- MyEditor : PEditField;
- MyListBox : PListBox;
- MyDLG : PDialog;
- begin
- MyDLG := TheEvent.DlgAdr; { Adresse des Dialoges }
- if TheEvent.Class = DialogEvent then With TheEvent Do
- Case Msg of
- DLG_OK : begin
- MyEditor := MyDLG^.FindDlgItem(2); { Adresse ermitteln }
- if MyEditor^.GetString <> '' then
- MyDLG^.DestroyDialog { falls mit Inhalt, beenden }
- else MyDLG^.SetTheFocus(2); { sonst fokussieren }
- end;
- DLG_CANCEL : begin
- MyDLG^.Flags := MyDLG^.Flags or MF_CANCELLED; { Cancel-Flag setzen }
- MyDLG^.DestroyDialog;
- end;
- DLG_LISTSELECT : begin
- MyListBox := MyDLG^.FindDlgItem(3);
- MyEditor := MyDLG^.FindDlgItem(2);
- MyEditor^.SetString(MyListBox^.GetSelected);
- end;
- DLG_CHECKED,
- DLG_UNCHECKED : begin
- MyCheckBox := MyDLG^.FindDlgItem(6);
- MyListBox := MyDLG^.FindDlgItem(3);
- HiddenToo := MyCheckBox^.IsChecked;
- MyListBox^.Update;
- end;
- end;
- end;
-
-
- procedure Beispiel1;
- var MyDialog : Dialog;
- MyButton : PButton;
- MyLabel : PLabelText;
- MyEditor : PEditField;
- MyListBox : PListBox;
- MyCheckBox: PCheckBox;
- begin
- MyDialog.Init(35*FontX, 13*FontY, MF_NOCAPTION, MyFirstEventProc);
- MyDialog.SetTopic('Beispiel');
-
- new(MyLabel, Init(FontX,FontY, 1, 'Dateiname:'));
- MyDialog.AddItem(MyLabel);
-
- new(MyEditor, Init(FontX, 2*FontY+4, 13, 12, 2, ''));
- MyDialog.AddItem(MyEditor);
-
- new(MyListBox, Init(FontX, 4*FontY, 12, 8, 3, GetFirstFile, GetNextFile));
- MyDialog.AddItem(MyListBox);
-
- new(MyCheckBox, Init(20*FontX,11*FontY, 6, 'auch HIDDEN'));
- MyDialog.AddItem(MyCheckBox);
- if HiddenToo then MyCheckbox^.Check;
-
- new(MyButton, Init(25*FontX, FontY, 9*FontX, 2*FontY, 4, 'Ok'));
- MyDialog.AddItem(MyButton);
- MyButton^.MakeDefaultItem;
-
- new(MyButton, Init(25*FontX, 4*FontY, 9*FontX, 2*FontY, 5, 'Abbruch'));
- MyDialog.AddItem(MyButton);
- MyButton^.MakeCancelItem;
-
- MyDialog.Show;
- MyDialog.DoDialog;
- if MyDialog.WasNotCancelled then
- begin
- MyEditor := MyDialog.FindDlgItem(2);
- ErrWindow(100,100,MyEditor^.GetString);
- end;
- MyDialog.Done;
- end;
-
-
- Procedure HandleMsg(MyMessage: EventTyp); far;
- { Hier werden die Botschaften behandelt. }
- Begin
- With MyMessage Do
- Case Class Of
- Menu : begin
- Case MenuItemID of
- 0 : StillRunning := false; { Ende }
- 101 : Beispiel1;
- end;
- end;
- end; { Case Class }
- End;
-
-
- Begin
- StillRunning := true;
- HiddenToo := false;
- LaunchResult := OpenMainApplication(HandleMsg,
- APP_NOFONT+APP_NOHELP,
- ProjektName);
-
- If LaunchResult = 0 then { erfolgreich gestartet }
- begin
- while StillRunning Do
- begin
- GetEvent(MyEvent);
- DispatchMessage(MyEvent);
- end;
- CloseMainApplication;
- end
- Else
- Writeln('Programm kann nicht gestartet werden. Fehler: ',LaunchResult);
- End.
-
-