AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komplettes Formular speichern/laden

Ein Thema von Cind12 · begonnen am 30. Mai 2012 · letzter Beitrag vom 30. Mai 2012
Antwort Antwort
Seite 2 von 2     12   
Popov
(Gast)

n/a Beiträge
 
#1

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 14:09
Die Idee an sich ist nicht schlecht, aber wie du schon sagst nicht intelligent.

Wenn eine Komponente existiert und diese über den Namen identifiziert wird, ist eine zweite Komponente mit dem Namen keine gute Idee. Hast du versucht die alte Komponente vorher einfach freizugeben und sie neu zu erstellen?

Ich hab vor Jahren aus Faulheit eine ähnliche Idee gehabt, bin aber der Meinung das Problem etwas eleganter gelöst zu haben. Ich las ähnlich wie du alle Komponenten eines Formulars, speicherte aber nur die Werte. Beim zurücklesen ersetzte ich nur die Werte, aber nicht die Komponente.
  Mit Zitat antworten Zitat
Cind12

Registriert seit: 30. Mai 2012
5 Beiträge
 
#2

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 14:14
@Popov
Ja, ich habe versucht sie freizugeben, zu zerstören zu schließen... danach habe ich versucht sie aus dem Stream zu erschaffen:

Form1 := TForm1.Create(Stream.ReadComponent(Form1) as TForm1);

Oder sie aus sich neu zu erschaffen und dann anzupassen:

Form1 := TForm1.Create(Form1);
Form1.Assign(Stream.ReadComponent(Form1) as TForm1);

Das Assign hatte ich auch schon versucht ohne Form1 freizugeben und wieder zu erschaffen.

Ich bekam abwechselnd den Fehler den ich bereits kannte und verschiedene Acess Violations.

mit freundlichen Grüßen

Cind12

Geändert von Cind12 (30. Mai 2012 um 14:24 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 15:58
Ich will von fast jedem dieser Objekte mehrere Eigenschaften in eine Datei speichern.
Dann würde ich versuchen eine Liste von Komponenten- und Propertynamen zu erstellen:
Code:
'TEdit', 'Text'
'TEdit', 'Hint'
'TEdit', 'ShowHint'
'TComboBox', 'Text'
'TComboBox', 'ItemIndex' ...
Dann werden in einer Schleife alle Komponenten (oder Controls) des Formular durchgefräst und die Daten in einer Ini-Datei gespeichert:
Code:
Edit1.Text=Test
EditEMail.Text=invalid@invalid.com
ComboBox42.ItemIndex=1
Andreas
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 18:27
Ich habe ein Formular Form1, das in einem PageControl mit 11 Seiten über hundert Objekte besitzt.
Alleine das ist schon ein Design Flaw, aber ein ganz gewaltiger.

Die paar Objekte / Eingabefelder kann man doch in 5 Minuten mal eben sichern bzw. befüllen. Dafür eignen sich DTO bzw. Records doch ganz prächtig. Mir ist es wurscht, wie viele Daten in einem Objekt sind, das ich speichern will, die paar Zeilen Code (oder eine Iteration per RTTI) machen den Kohl doch nicht fett.

In der Zeit, wo Du deinen Beitrag geschrieben hast, hättest Du die Hälfte des Codes schon fertig.

Aber unabhängig davon ist ein Formular mit 11 Seiten und über 100 Daten schon ziemlicher Quatsch.

Ich würde die Daten thematische gliedern und jeweils auf ein einzelnes Frame packen. Jedes Frame besitzt eine Load und Save Methode (natürlich vererbt). Dann baue ich mir einen Dialog, wobei ich links in einer Baumstruktur meine 11 Seiten hübsch strukturiert darstelle und beim Klick auf einen Knoten blende ich rechts das Frame ein.
Zum Laden und Speichern rufe ich für alle Frames deren Load/Save-Methode auf.

Das ist übersichtlich, erweiterbar und sieht auch noch nach was aus.

11 Seiten in einem TPageControl...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 18:41
11 Seiten in einem TPageControl...
Haha, kennst du die Optionen von Microsoft Word 2003?
Angehängte Grafiken
Dateityp: gif Ms_Word2003.gif (20,7 KB, 36x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 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-2025 by Thomas Breitkreuz