Autor Beitrag
Ringelnatz
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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 user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 17.10.2005 um 21:57
Tobias1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: So 25.09.05 16:26 

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
mustermannxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

WinXP prof
Delphi 2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

WinXP prof
Delphi 2005 Pers
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

WinXP prof
Delphi 2005 Pers
BeitragVerfasst: 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 :D
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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

WinXP prof
Delphi 2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78


D6 prof., Delphi 10.2 Tokyo
BeitragVerfasst: Mo 17.10.05 20:55 
wenn es nur Checkboxen sind, würde ich es so machen.
Du kannst es natürlich beliebig erweitern

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Di 18.10.05 09:28 
user profile iconhallo hat folgendes geschrieben:
Du musst zuerst Form3.destroy machen und danach gleich wieder form3.create

Also wenn überhaupt dann Form3.Free; und nicht Destroy! :mahn:
mustermannxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20

WinXP prof
Delphi 2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Sa 29.10.05 23:51 
also ne form createt man so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var form2:tform;

{...}

form2:=tform.create(form1);

//und freigeben wieder mit 
form2.free;


oder muss man es als tform1 deklarieren ? :gruebel:
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