Danke nuclearping,
für die ausführliche Antwort. Ich hatte meinem ehemaligen Kollegen auch eine E-Mail geschickt, woraufhin er nur antwortete, dass er nicht über das Kreuzchen schließen lassen will, da "man bei dieser Art des Schließens oft nicht weiß ob der Nutzer getätigte Änderungen übernehmen will oder eben nicht. Daher ist das meist nur über "OK" oder "Abbrechen" möglich." ...
Naja, ich bin halt anderer Meinung und habe Probleme damit in desen Verlaufsweg gezwungen zu werden. Ich möchte auch während einer Messung mal Parameter anschauen können ... vielleicht nochmal Diagrammeinstellungen ändern und dann wieder zu Parametern zurückkehren ... vielleicht war es auch nur der mangelnden Zeit geschuldet...
Ich werde das mit dem ShowModal mal probieren, ob ich das an diesen Stellen als bedienerfreundlich empfinde.
Also wenn ich es jetzt so Mache ist das OK?
Delphi-Quellcode:
procedure TfrmStartseite.MomentanwerteButtonClick(Sender: TObject);
begin
if not Assigned(frmMomentanwerte) then begin
Application.CreateForm(TfrmMomentanwerte,frmMomentanwerte);
end;
frmMomentanwerte.show;
frmMomentanwerte.Button2Click(Self); //aktualisiert die Daten
end;
______
procedure TfrmMomentanwerte.Button1Click(Sender: TObject);
begin
close; //Button "zur Startseite"
end;
procedure TfrmMomentanwerte.FormDestroy(Sender: TObject; //oder kann ich mir das sparen
var CanClose: Boolean);
begin
frmMomentanwerte := nil;
end;
______
procedure TfrmStartseite.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
...
if Assigned(frmMomentanwerte) then begin
frmMomentanwerte.Close; //statt Release ... besser als Release?
//und anschließend noch "frmMomentanwerte := nil;" wenn es dort nicht in der FormDestroy steht?
//oder doch lieber immer ein FormDestroy mit nil?
if Assigned(frmKundeneinstellungen) then frmKundeneinstellungen.Release;
...
//für alle dynamischen Forms
//falls noch was offen ist, wenn das Programm beendet wird
...
//andere Variablen wieder freigeben
//Messung ist bereits beendet
CanClose := true;
end;
Ich will einfach nur, dass meine Resourcen nach dem "Programm schließen" wieder sauber freigegeben werden. Die Forms sind halt dynamisch gedacht und wenn was nicht benutzt wird, muss es ja auch keinen Speicher/Arbeitsspeicher belegen. Ich hab mich mit der Resourcenverwaltung noch nicht weiter beschäftigt. Ich bin meist froh, wenn das Programm macht was es soll. Aber wenigstens die Forms sollten sauber erzeugt und geschlossen werden.
Grüße
die Suchende