Einzelnen Beitrag anzeigen

Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#1

TStrings zwischenspeichern und wieder herstellen

  Alt 18. Feb 2013, 13:50
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?
  Mit Zitat antworten Zitat