![]() |
Komplette Form und deren Inhalte speichern
Hallo,
wir haben ein relativ einfaches Problem: Es existieren x Forms, in diesen Forms werden Editfelder (als Bsp) usw verändert. Was wir suchen ist eine einfache Möglichkeit die Inhalte der Form vor dem Bearbeiten zu sichern und sie eventuell (Abbruch Button) wieder herzustellen. Es gibt im Forum mehrere Ansätze wie man das machen kann. Wir nutzen jedoch sehr viele Forms, sodass es sich anbietet eine Prozedur zum laden und sichern zu erstellen die sich auf verschiedene Forms anwenden lässt. Hat jemand eine Ahnung wie man so etwas möglichst allgemeingültig realisieren kann? Grüsse Rainer |
Re: Komplette Form und deren Inhalte speichern
würde das per RTTI machen
irgendwo eine Liste der Componenten/Properties, die gespeichert werden soll und dann alle Forms/Komponenten durchgehen |
Re: Komplette Form und deren Inhalte speichern
Ich würd auch durch die Conrol-Collections durchgehen und je nach Typ dann einen Datensatz z.B. in nem XML File ablegen. Funktionioert aber nur, wenn die tatsächlich die Werte (Text / Checked Eigenschaften) langen und du nicht abhängig vom Inhalt irgendwelche Dictionarys oder sonstige Sachen laden musst. Dann dürfte es mit einer generischen Lösung eher schwierig werden
|
Re: Komplette Form und deren Inhalte speichern
Hallo,
versteh ich im Moment noch nicht. Kann mir das jemand noch mal genauer beschreiben. Grüsse Rainer |
Re: Komplette Form und deren Inhalte speichern
|
Re: Komplette Form und deren Inhalte speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sharky, hallo DP'ler,
wir bzw ich habe eine Lösung, basierend auf dem Vorschlag von Sharky, gefunden. Mein Beispielcode besteht aus 2 Forms. Auf der ersten Form sind die Sicherungsroutinen untergbracht, die 2. wird gesichert. Achtung auf der zweiten Form dürfen nur Komponenten vorkommen die ein Property "Text" besitzen. (Ist ein Fehler der noch beseitigt wird). Als Stack wird eine Tstringlist verwendet. Zum Beispielcode: PUSH - Sichern der Form (Inhalte)
Delphi-Quellcode:
POP - Rückholen der Form (Inhalte)
procedure TForm1.Button1Click(Sender: TObject);
begin if s=nil then s:=tstringlist.create; Push(s,form2); end;
Delphi-Quellcode:
Die Stringlist "s" muss natürlich noch mit create erzeugt werden. Das gleiche gilt für das verlassen des Programms mit free.
procedure TForm1.Button3Click(Sender: TObject);
begin Pop(s,form2); s.clear; end; Endgültiges Ziel meiner Arbeit ist es eine fertige Komponente zu erstellen und diese dann hier zu veröffentlichen. Grüsse Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz