| Autor |
Beitrag |
Ringelnatz
Hält's aus hier
Beiträge: 3
|
Verfasst: So 25.09.05 16:16
Hallo Experten,
wie kann ich ein Form auf den Urzustand zurücksetzen? D. h. es soll durch einen Klick o.ä. so erscheinen wie nach dem Start des Programms. Alle Komponenten sollen auf die Standard-Einstellung zurückgesetzt werden.
Danke
R. Moderiert von Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 17.10.2005 um 21:57
|
|
Tobias1
      
Beiträge: 454
Win 98, XP Prof
D3 Prof, D2005 Prof
|
Verfasst: So 25.09.05 16:26
_________________ Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
|
|
mustermannxx
      
Beiträge: 20
WinXP prof
Delphi 2005 Pers
|
Verfasst: Mo 17.10.05 16:29
hi,
hab so ein ähnlihes problem, finde dafür aber kein lösung unter resetten. ich will ein form (nicht form1) wieder auf den anfangsstand zurücksetzen, nachdem sie geschloßen wurde (oder beim öffnen). wie geh ich da am besten vor?
mfg mustermannxx
|
|
hallo
      
Beiträge: 450
WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
|
Verfasst: Mo 17.10.05 16:36
Also wennn du nicht die Mainform schließt, dann bleibt das Programm aktiv und so auch der Inhalt gleich.
Dann einfach bei OnShow beim Form die neuen (bzw. Standart) werte einstellen: z.B. edit1.text:='';
Am besten wäre warscheinlich ein array mit den Standartwerten und dann per FindComponent die einzelnen Sachen reseten!
_________________ Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
|
|
mustermannxx
      
Beiträge: 20
WinXP prof
Delphi 2005 Pers
|
Verfasst: Mo 17.10.05 16:53
das müsste doch einfacher gehen, oder? ich meine mal irgendwo hier was gelesen zu haben, dass man etwas in diesem bereich ändern kann um das ergebnis zu erzielen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| begin Application.Initialize; Application.CreateForm(TForm1, Form1); ... Application.CreateForm(TForm3, Form3); ... Application.Run; end. |
also nehmen wir die form3 als beispiel.
ich will das ich sie nachdem ich sie das erstemal geöffnet haben und einige sachen geändert hab (checkboxes, etc.), dass die form nachdem schließen und wiederholtem aufrufen, wieder zurückgesetzt ist ,also wie beim ersten aufruf als ich noch nichts verändert hatte.
mfg mustermannxx
|
|
hallo
      
Beiträge: 450
WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
|
Verfasst: Mo 17.10.05 16:55
Also:
Du musst zuerst Form3.destroy machen und danach gleich wieder form3.create
Das würde ich aber nicht machen, da es zu CPU etc. braucht!
_________________ Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
|
|
mustermannxx
      
Beiträge: 20
WinXP prof
Delphi 2005 Pers
|
Verfasst: Mo 17.10.05 17:14
das ist eine recht kleine form, die halt nur viele checkboxes und solche sachen hat und die alle zurückzusetzen und dann darf man auch nit einen vergessen. und meine cpu überlebt die kleine form auch noch
ich tu mich nur grade bissel schwer mit Form3.Create das will bei mir nit so wirklich. wo stell ich das am besten hin?
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mo 17.10.05 17:51
ich würde in einer eigenen prozedur die startwerte einstellen und dann diese prozedur als reset prozedur aufrufen...
nen anderen weg dem destroy und anschließendem create zu entrinnen gibts wohl nicht...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
mustermannxx
      
Beiträge: 20
WinXP prof
Delphi 2005 Pers
|
Verfasst: Mo 17.10.05 19:35
ich will dem destroy und create nit entrinnen, ich wills ja machen  ich weiß nur nit so 100%ig wie. wenn ich form3.create mache erwartet der noch ne tcomponente.
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mo 17.10.05 19:42
gibst du den owner an?
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Lake
      
Beiträge: 78
D6 prof., Delphi 10.2 Tokyo
|
Verfasst: Mo 17.10.05 20:55
wenn es nur Checkboxen sind, würde ich es so machen.
Du kannst es natürlich beliebig erweitern
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| for i := Form1.ComponentCount - 1 downto 0 do begin FoundComponent := Form1.Components[i]; if FoundComponent.ClassName = 'TCheckBox' then (FoundComponent as TCheckBox).checked := false; end; |
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Di 18.10.05 09:28
hallo hat folgendes geschrieben: | | Du musst zuerst Form3.destroy machen und danach gleich wieder form3.create |
Also wenn überhaupt dann Form3.Free; und nicht Destroy! 
|
|
mustermannxx
      
Beiträge: 20
WinXP prof
Delphi 2005 Pers
|
Verfasst: Sa 29.10.05 16:02
so gabel das thema hier nochmal auf, war jetzt längere zeit weg, und konnte deswegen nix mehr machen. was ist der owner oder ein owner überhaupt? was müsst ich den da jetzt z.b. bei der form3 angeben?
mfg mustermannxx
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Sa 29.10.05 23:51
also ne form createt man so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var form2:tform;
form2:=tform.create(form1);
form2.free; |
oder muss man es als tform1 deklarieren ?
ansonsten gibts noch die methode von application createform (oder so). kannst auch danach ma in der delphi hilfe suchen
hab grad kein delphi zum testen installiert aber sollte so funktionieren. ansonsten verbessert es dir sicher jemand anders oder du postest falls nen fehler kommt. dabei ist die komponenten in klammern hinter create der owner. d.h. wenn du form1 closed wird free aufgerufen und dann destroy und wenn form1 destroyed wird wird durch den owner auch form2 destroyed. (owner=besitzer). hoffe das war jetzt wenigstens halbwegs richtig...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|