TForms

Rund um die LCL und andere Komponenten
Antworten
Zet_Bonton
Beiträge: 39
Registriert: Di 7. Apr 2009, 17:11

TForms

Beitrag von Zet_Bonton »

hallo leute,

und zwar hab ich wieder so ein kleines Problemchen.
ich versuchs mal darzustellen. ich habe vier Formulare. Form1, Form2, Form3 und Form4
Form1-->druchbuttonclick--->Form2---durchbuttonclick--->Form3----durchbuttonclick--->Form4-----durchbuttonclick---->Form3

In Form 3 hab ich eine Sql-Anweisung die aus einer Datenbank Werte rausliest und in ein DBGrid wiedergibt, das Problem hierbei ist, wenn ich ein datensatz aus dem DBGrid verändern möchte, und zwar wird der datensatz in Form 4 verändert, erscheinen die Veränderungen, nachdem ich in Form4 auf buttonclick gedrückt habe, nicht in Form3. D.h. Formshow von form3 wird erst garnicht durchlaufen.
Wo liegt das problem? kann mir jemand weiterhelfen..

Danke

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: TForms

Beitrag von monta »

Ich vermute mal, der Button auf Form4 schließt dieses nur. Dadurch kommt natürlich wieder Form3 nach oben, es wird aber nicht neu gezeigt, da du es ja schon mit dem Button von Form2 aufgerufen wird, und dort onShow anfällt.

Du kannst bspw. von Form4 ja direkt das entsprechende Event von Form3 aufrufen, wenn Form4 geschlossen wird. Alternativ, wenn du Form3 explizit mit Form3.Hide; versteckst, wenn Form 4 geöffnet wird, sollte ein erneutes Form3.Show auch wieder das OnShow-Event von Form3 aufrufen.

Setz bspw. in den button von Form3 etwas in der Art:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form3.Hide;
  Form4.ShowModal;
  Form3.Show;
end;
Dann wird das OnShow aufgerufen.
Johannes

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: TForms

Beitrag von _X_ »

FormShow wird nur nach dem Create() ausgeführt, sonst nicht.
Schreib dir ne eigene Procedure oder Function die das macht was du willst.

mfg _X_

edit:// zu langsam :mrgreen:

Zet_Bonton
Beiträge: 39
Registriert: Di 7. Apr 2009, 17:11

Re: TForms

Beitrag von Zet_Bonton »

Mit Form3.hide hat es funktioniert.
Echt super..Vielen Dank

Grüße Zet

Antworten