Flons Geschrieben 13. Februar 2006 Teilen Geschrieben 13. Februar 2006 Hallo zusammen, ich habe folgendes Problem: Ich habe unter Delphi 2006 ein Formular (Form) erzeugt, auf dem verschiedene Aktionen ablaufen. Nun möchte ich per ButtonClick, also per Knopfdruck, das Formular in seine Ausgangsposition bringen. Ich möchte quasi das fenster neu aufrufen oder erzeugen lassen. Kann mir vielleicht mal jemand auf die Sprünge helfen? Vielen Dank im Voraus. Gruß Florian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 13. Februar 2006 Teilen Geschrieben 13. Februar 2006 Sobald ich halbwegs verstanden habe, wo dein Problem liegt, werd ich versuchen konstruktiv zu antworten. - Was verstehst du unter "verschiedene Aktionen" ? - Was verstehst du unter "Ausgangsposition" ? Neu aufrufen und erzeugen geht am einfachsten, wenn man das Fenster einfach schließt und neu erzeugt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Flons Geschrieben 14. Februar 2006 Autor Teilen Geschrieben 14. Februar 2006 Hallo! Danke erst einmal für Deine Antwort. Ich werde versuchen, mich jetzt etwas verständlicher Auszudrücken: Also, ich habe (m)ein Startformular. Auf dem werden mit TQuerys, TDataSources und TDataGrids Informationen aus einer DB ausgegeben. Nach einem CellKlick auf das DBGrid wird dann ein neues DBGrid mit neuen, anderen Informationen aus der DB angezeigt. So, nach einem Klick auf einen Button möchte ich nun zurück zur Ausgangsposition, d.h. ich möchte das Formular quasi im "Urzustand" aufrufen. Das heißt, ich möchte das 2 DBGrid wieder schließen und die 1 TQuery erneut starten lassen und das 1. DBGrid neu füllen lassen, also so, als wenn man die Form neu aufrufen würde. Allerdings befürchte ich, daß dies so nicht möglich sein wird, oder? Und schließen und neu aufrufen kann ich das Formular doch nicht, oder? Schließlich handelt es sich um ein Formular, in dem die gesamten Aktionen ablaufen. Dennoch danke für Tipps jeder Art. Gruß Florian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 14. Februar 2006 Teilen Geschrieben 14. Februar 2006 Ich würde jetzt einfach das 2. Grid schließen und dein Query schließen und erneut öffnen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 14. Februar 2006 Teilen Geschrieben 14. Februar 2006 Das heißt, ich möchte das 2 DBGrid wieder schließen und die 1 TQuery erneut starten lassen und das 1. DBGrid neu füllen lassen, also so, als wenn man die Form neu aufrufen würde. Allerdings befürchte ich, daß dies so nicht möglich sein wird, oder? Natürlich ist das möglich, kommt nur auf dein Programm an Wenn du z.B. alles im FormCreate machst: nimm es da raus! Bzw. lager alles in eine Prozedur aus. ... procedure TForm1.Init; begin Query1.close; FreeAndNil(Form2); // Form2 später selber erzeugen, wenn gebraucht! // Weiteres, was du brauchst Query1.SQL.Text:= 'Irgend ein SQL'; Query1.Open; end; ... procedure TForm1.Create(sender: TObject); begin Init; end; so z.B. Und später brauchst du zum "zurücksetzen" nur die Prozedur Init aufrufen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Flons Geschrieben 14. Februar 2006 Autor Teilen Geschrieben 14. Februar 2006 Hallo nochmals.... Natürlich ist das möglich, kommt nur auf dein Programm an Wenn du z.B. alles im FormCreate machst: nimm es da raus! Bzw. lager alles in eine Prozedur aus. ... procedure TForm1.Init; begin Query1.close; FreeAndNil(Form2); // Form2 später selber erzeugen, wenn gebraucht! // Weiteres, was du brauchst Query1.SQL.Text:= 'Irgend ein SQL'; Query1.Open; end; ... procedure TForm1.Create(sender: TObject); begin Init; end; so z.B. Und später brauchst du zum "zurücksetzen" nur die Prozedur Init aufrufen. :uli Danke für den Vorschlag. So werde ich das machen/probieren. Danke nochmals. Gruß Florian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Strahl Geschrieben 20. Februar 2006 Teilen Geschrieben 20. Februar 2006 eine einfache Lösung wäre, das du einfach das Programm neustartest. Also das Programm startet das Programm nochmal mit einem Parameter, der Parameter bewirkt das das zu erst geöffnete Program geschlossen wird, ist nicht schön aber so kannste dir sicher sein das alles zurückgesetz ist. Anderes kannste es nur so machen, indem du alle Variablen neu initialiesierst und du Eingabefelder nullst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.