{ der Dialog trägt sich selbständig in die Fensterliste ein;
MainWindow zeigt immer auf das erste installierte TWindow-Objekt
(in diesem Fall auf einen Nachfahren);
dem Konstruktor wird das Parent-Objekt (in diesem Fall nil, es
existiert also kein Parent), der Fenstertitel und der Index des
Dialogbaums übergeben }
if (MainWindow=nil) or (ChkError<em_OK) then Status:=em_InvalidMainWindow
{ irgendwas ist schiefgelaufen => nicht initialisieren;
ObjectGEM prüft dann, wie und ob (ACCs!) das Programm
verlassen wird }
else
begin
{ p zeigt auf den Dialog; nun werden die Schnittstellen-
objekte initialisiert; diese tragen sich in die Liste
der TControl-Objekte im Dialog-Objekt ein und werden
dadurch beim freigeben des Dialogs automatisch mitge-
löscht }
{ die Rückgabe-Pointer werden gespeichert, um später die
Objekte mit ihren eigenen Methoden zu modifizieren! }
p^.st1:=new(PStatic,Init(p,MFMINDT,0,false,'Gibt an, wieviel TT-RAM (Alternate|RAM) dem Programm genügt, wenn mehr|ST-RAM als TT-RAM vorhanden ist.'));
p^.st2:=new(PStatic,Init(p,MFAMOUNT,8,false,'Gibt an, wieviel TT-RAM (Alternate|RAM) dem Programm genügt, wenn mehr|ST-RAM als TT-RAM vorhanden ist.'));
p^.st2^.Style:=p^.st2^.Style and not(sts_Fill);
{ einfacher Text, übergeben wird u.a. die max. Länge des Textes+1
(Nullbyte), einen boolean-Wert, der angibt, ob der Text unter-
strichen wird, und der String für BubbleHelp (!);
bringen Sie den Mauscursor doch mal über einen Button und
drücken Sie dann <Help> ...!?!!! }
{ p^.st3:=new(PStatic,Init(p,MFVER,39,false,'ObjectGEM MakeFast ist Freeware,|d.h. Sie dürfen das Programm|kostenlos kopieren und benutzen.|Änderungen am Programm sind|nicht erlaubt!')); ... }
p^.st3:=new(PStatic,Init(p,MFVER,39,false,'ObjectGEM MakeFast ist Freeware, d.h. Sie dürfen das Programm kostenlos kopieren und benutzen. Änderungen am Programm sind nicht erlaubt!'));
p^.cb1:=new(PCheckBox,Init(p,MFFAST,true,'Bestimmt das FastLoad-Flag.|Ist es gesetzt, wird beim Programm-|start nur die BSS gelöscht. Das|Flag sollte bei mindestens je einem|Auto-Ordner-Programm und Accessory|NICHT gesetzt sein!'));
{ ankreuzbare Box; der boolean-Wert gibt an, ob die CheckBox
im "neuen" Stil gezeichnet wird; ist in der Resource das
CROSSED-Attribut gesetzt, wird statt des Häkchens ein
Kreuzchen verwendet }
p^.cb2:=new(PCheckBox,Init(p,MFPROG,true,'Das Programm darf in das (schnelle)|TT-RAM geladen werden. Vorsicht, wenn|das Programm z.B. den Bildschirm-|speicher verschiebt!'));
p^.cb3:=new(PCheckBox,Init(p,MFMEM,true,'Malloc()-Anforderungen des Programms|dürfen aus dem TT-RAM bedient werden.|Vorsicht bei Programmen, die z.B. den|Bildschirmspeicher verschieben!'));
p^.pb1:=new(PButton,Init(p,MFDATEI,id_No,true,'Wählt ein neues Programm|zum Bearbeiten aus.'));
{ ein PushButton }
p^.pb2:=new(PButton,Init(p,MFMAKE,id_No,true,'Schreibt die neuen Werte in|das ausgewählte Programm.'));
MFDATEI: { neue Datei auswählen, laden und anzeigen... }
if FileSelect(@self,'PRG,ACC,TOS ETC. AUSWÄHLEN','',pfad,datei,true) then Load;
MFMAKE: begin
with phrec do
begin
ph_prgflags:=ph_prgflags and $0ffffff8;
{ FastLoad-Flags zunächst ausmaskieren (löschen)... }
if cb1^.GetCheck=bf_Checked then
ph_prgflags:=ph_prgflags or PH_FASTLOAD;
if cb2^.GetCheck=bf_Checked then
ph_prgflags:=ph_prgflags or PH_LOADALT;
if cb3^.GetCheck=bf_Checked then
ph_prgflags:=ph_prgflags or PH_MALLOCALT;
PByte(@ph_prgflags)^:=PByte(@ph_prgflags)^ or (ttmem shl 4)
{ ... und dann evtl. wieder setzen }
end;
reset(f);
write(f,phrec);
close(f);
{ Datei aktualisieren }
DisableAll
{ nun ist keine Datei mehr aktiv }
end
end;
ExitDlg:=false
{ Dialog NICHT verlassen }
end;
function TMFDialog.OK: boolean;
begin
Application^.Quit;
{ Anwendung beenden (sobald der aktuelle Message-Loop
beendet ist)... }
OK:=true
{ ... und vorher den Dialog verlassen }
end;
function TMFDialog.Help: boolean;
begin
Application^.Alert(@self,1,NOTE,'Bringen Sie den Mauscursor über das gewünschte Dialogelement und drücken Sie die <Help>-Taste (oder die rechte Maustaste...).',' &OK ');