Autor Beitrag
derwanderer
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.04.07 17:17 
moin

ich habe mir heute eine Art Prüfbogen angefertigt. Dort sollen in 10 Formularen je 4Fragen mit Antowrtmöglichkeiten stehen. Das erste Formular habe ich soweit fertig, auch dass die Fehlerzahl in das Hauptformular übertragen wird.
Aber: Ich habe keine Lust, jedes des 9 weiteren Forms wieder zu designen. Ich würde gerne einfach diese Unit (in meinem Fall Unit2) duplizieren und dann die Fragen (Label) und die Antworten (Checkboxen) ändern. Ich hab versucht die Unit-Dateien im Explorer zu duplizieren und habe auch die *.dfm und die *.pas-Dateien im Quellcode soweit aktualisiert, dass sich die Zahlen (Form2, Unit2) nicht beißen, aber Delphi gibt trotsdem eine Fehlermeldung.
Gibt es ne Alternative, Google hat mir nicht wirklich geholfen :(

Schon einmal im Voraus vielen Dank

derwanderer
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 06.04.07 17:36 
Nun ja, 9 mal die gleiche Form wird eine ganze Menge Resourcen unnötig verbrauchen aber wie auch immer.

Wie man die Form (+Unit) kopiert weiss ich nicht, aber ich würde es so machen:

1.) Mach ein neues Formular
2.) Passe dort Hintergrund und Grösse an
3.) Kopiere alle Komponenten (du kannst die Komponenten wie Dateien auf dem Desktop markieren) auf dem Vorlagenformular und Kopiere sie mit STRG+C und STRG+V rüber auf das neue Formular.
Dabei werden auch die richtigen Positionen übernommen!

4.) Dann markierst du die gesamte Unit des Vorlagenformulars und ersetzt die Unit des neuen Formulars mit dem kompletten Unittext.

5.) Dann nimmst du den Search...Replace Dialog um Deklarationen anzupassen. Wenn der Formname deiner Vorlage also z.B. Fragenfenster1 war und der Name des neuen Formulars Fragenfenster2 ist dann ersetzt du alle FragenFenster1 durch Fragenfenster2.

Ist nicht sonderlich schön, aber so funktionierts wenigstens! Und bei nur 9 weiteren Formularen brauchst du dafür vielleicht 10 Minuten.
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Fr 06.04.07 18:23 
warum benutzt man nicht einfach Vererbung ?

leite einfach von TForm2 ab, dann hast schon alles drauf, änderst halt nur die Beschriftungen.

Ableiten von einem Form geht übrigends über Datei-Neu-Vererben und dann das Ursprungs-Formular wählen

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 06.04.07 18:29 
Wie wäre es denn, wenn man die Controls auf der Form (Edits, Label, Checkboxen,..) zur Laufzeit ändert? Man kann ja in ein Label eine Frage reinschreiben (Label1.Caption := ...), und die anderen Sachen ebenso anpassen.

Was du vorhast, wäre ungefähr genauso sinnig wie für jede Webseite nen eigenen Browser zu schreiben...

_________________
We are, we were and will not be.
derwanderer
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.04.07 19:13 
super. Ich habs jetzt mit der Vererbung gemacht. Hat alles prima geklappt. Mit den anderen Möglichkeiten werd ich mich die Tage beschäftigen
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 06.04.07 19:30 
Wo macht ihr das?

Datei - Neu - Vererbung?

Kanns sein das es das in D6 noch nicht (in der Form) gibt? Oder find ichs nur nicht? :gruebel:

EDIT: Alles klar, habs gefunden (D6 ist bei mir leider nur in Engl.):

File - New - Other - Project1 - inherited