![]() |
Restart eines Delphi Frames oder Formulars
Hallo zusammen!
Ich habe folgendes Problem, bei dem ich nicht weiterkomme: Ich habe ein Delphi-Frame, das mehrmals benutzt werden soll. Zur Laufzeit soll es jedoch neugestartet werden, also auf die Anfangswerte zurückgesetzt werden. Bis jetzt habe ich dazu keine Methode gefunden, die so etwas ermöglicht. Vielleicht kann mir jemand von euch helfen? Heinz |
Re: Restart eines Delphi Frames oder Formulars
Kannst du den vielleicht noch mal neu Createn? DAnn müsste er zurückgesetzt werden.
So mache ich das zumindest bei normalen Forms. |
Re: Restart eines Delphi Frames oder Formulars
Das ist mir nicht klar... wie kann ich genau ein Formular neustarten bzw. alle Variablen per Reset wieder auf die Ausgangswerte stellen?
|
Re: Restart eines Delphi Frames oder Formulars
Moin Heinz,
Zitat:
Meist wird ein Formular ja im OnCreate oder OnShow Event initialisiert, so dass dieses bei jedem Erzeugen neu geschieht. |
Re: Restart eines Delphi Frames oder Formulars
Danke für deine Antwort!
Aber wenn ich die Methode Create nutzen soll, muss ich einen Besitzer angeben. Beispielsweise Form1.Create(Besitzer); Welches Formular oder welchen Programmteil muss ich dort als Besitzer eintragen? |
Re: Restart eines Delphi Frames oder Formulars
Zitat:
In Deinem Beispiel also höchstens
Code:
Der Eigentümer ist für die Freigabe des Formulars verantwortlich.
Form1 := TForm1.Create(nil);
Wenn da kein logischer Eigentümer ist nimm nil ( entspricht NULL/ nothing in anderen Sprachen) oder Application bzw. Application.MainForm Für das Hauptformular solltest Du das aber nicht tun :) Bernd |
Re: Restart eines Delphi Frames oder Formulars
Hallo Bernd!
Danke für deine Antwort! Für die "weniger wichtigen" Formulare ist das sicherlich eine gute Möglichkeit. Aber leider suche ich nach einem Weg, das Hauptformular neuzustarten und bin da ein wenig ratlos, da ich mich in diesem Bereich nicht so gut auskenne. |
Re: Restart eines Delphi Frames oder Formulars
Also so ganz schlau bin ich noch nicht geworden was du eigentlich willst. :gruebel:
Du hast ein Formular erstellt, das während der Laufzeit gleich bleibt (nur Listen oder sonstige Elemente bzw. Einträge ändern sich) - sehe ich das richtig? :?: Dann solltest du einfach einen Button erstellen und wenn der gedrückt(geklickt) wird, dann setzt du alle nötigen Properties auf Standard-Werte. Evtl. macht es Sinn die einfach einmal festzulegen und dann halt einmal bei Programm-Start und halt beim drücken des Buttons wieder darauf zu setzen. (eigene procedure) Gib mal ein Beispiel was du genau erreichen willst, dann ist es sicher einfacher den richtigen Tip zu geben. :thuimb: mfg, :coder: bjk. |
Re: Restart eines Delphi Frames oder Formulars
Folgendes möchte ich konkret:
Ich habe ein Delphiformular, dass vom Nutzer benutzt wird. Der Nutzer verändert zum Beispiel Listen und daraus folgenden Änderungen in den Labelfeldern und ähnlichem. Wenn sich der Nutzer nun entscheidet, dass Programm noch einmal mit neuen Werten zu nutzen, sollen alle Labelfelder und alle anderen benutzten Objekte auf ihre Anfangswerte gestellt werden, wenn der Benutzer auf einen Button drückt. Man könnte jetzt natürlich jedem einzelnen Objekt die Startwerte zuweisen, beispielsweise Label1.Caption:=''; Für etwa 50 Labelfelder mit unterschiedlichen Namen, zahlreiche Listen und ähnlichem ist das aber relativ aufwändig. Daher meine Frage: Gibt es da eine elegantere und vor allem weniger programmieraufwändige Möglichkeit? |
Re: Restart eines Delphi Frames oder Formulars
Zitat:
die Antwort lautet JAEIN. Du musst deine Variablen, und Objekteigenschaften schon selber wieder auf ihre Startwerte setzen. Wenn Du mehrere Objekte vom selben Typ hast versuche es mal mit FindComponent
Delphi-Quellcode:
Dieser Code setzt zum Beispiel die Eigenschaft Text von Edit1 bis Edit10 auf '';
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; begin for i := 1 to 10 do begin TEdit(FindComponent('Edit' + IntToStr(i))).Text := ''; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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