Zum Inhalt springen

Form zurücksetzen (Delphi 2006)


Flons

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...