Hallo,
ich habe folgendes Problem:
Ich öffne über einen Button ein neues Formular mit 2 ListBoxen. Deren Inhalt möchte ich bei OnShow in einer Variable zwischenspeichern um diese in OnCloseQuery wiederherstellen zu können falls der Benutzer seine Änderung verwerfen möchte. Dazu habe ich folgenden Aufbau:
tempListShow und tempListHide sind vom Typ TStrings.
Delphi-Quellcode:
procedure TfrmBuchungscodes.FormShow(Sender: TObject);
begin
tempListShow := listboxShow.Items;
tempListHide := listboxHide.Items;
end;
Delphi-Quellcode:
procedure TfrmBuchungscodes.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var
mb_erg: Integer;
begin
if buttonClose = false then
begin
mb_erg := MessageBox(Application.Handle,pchar('Sollen die Änderungen übernommen werden?'), pchar('Änderungen übernehmen?'), MB_YESNOCANCEL + MB_ICONQUESTION);
if mb_erg = ID_YES then
CanClose := true
else if mb_erg = ID_NO then
begin
listboxShow.Items := tempListShow;
listboxHide.Items := tempListHide;
CanClose := true;
end
else if mb_erg = ID_CANCEL then
CanClose := false;
end;
end;
Schließe ich das Formular nun mit "OK", übernehme also die Änderungen so ist der Inhalt beim nächsten Öffnen genau so wie ich es geändert habe.
Verlasse ich das Formular aber mit "Abbrechen" um die Änderungen zu verwerfen finde ich beim nächsten Öffnen des Formulars 2 leere ListBoxen vor.
Kann mir jemand sagen wo hier mein (Denk)fehler liegt?