Hallo zusammen,
habe folgendes Problem. Hab ne Maske mit nem TDBGrid und möchte in einem zusätzlichen Dialog die Anzeige der Spalten konfigurieren. Hierzu übergebe ich die Collection TDBGridColumns (TDBGrid.Columns) an meine TForm-Instanz und kann die dann dort bearbeiten (Anzuzeigende Spalten, Spaltebreite u. Spaltentitel). Funktioniert alles prächtig!
Jetzt das Problem: Den Dialog kann man mit einer "Abbrechen"-Schaltfläche beenden, d.h. das die Änderungen nicht übernommen werden sollen. Hierzu hab ich meine TDBGridColumns vor dem Öffnen des Dialogs in einem TMemoryStream gespeichert, die bei "Abbrechen" wieder hergestellt werden sollen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| vStream := TMemoryStream.Create; FGridColumns.SaveToStream (vStream);
with TfrmConfigUserView.Create (nil, FGridColumns) do try if ShowModal = mrCancel then begin FGridColumns.Clear; FGridColumns.LoadFromStream (vStream); end; finally Free; vStream.Free; end; |
Das führt beim "LoadFromStream" aber zu einem Stream-Lesefehler. Leider kenn ich mich zu wenig mit Streams aus, ist vielleicht der MemoryStream nicht geeignet?