![]() |
MDI Child Public Variable
Ich verstehe nicht warum ich einer Public Variable in einem fsMDIChild nichts zuweisen kann.
procedure TMainForm.mnu_Child1Click(Sender: TObject); begin // FormStyle = fsMDIChild frm_Child := Tfrm_Child.create(Self); frm_Child.sText := 'Hallo Welt'; frm_Child.Show; end; procedure TMainForm.nmu_Form1Click(Sender: TObject); begin // FormStyle = fsNormal frm_Normal := Tfrm_Normal.create(nil); frm_Normal.sText := 'Hallo Welt'; frm_Normal.Show; end; In beiden Formulare gibt es eine Public-Deklarationen sText: String; In beiden Forms wird im .FormShow die edt1.Text := sText; //Public-Deklarationen übergeben. Doch nur in frm_Normal hat die "sText" den übergebenen Wert. Was macht das fsMDIChild anders das die sText; //Public-Deklarationen keinen Wert übernimmt? Danke Albert |
AW: MDI Child Public Variable
Tfrm_Child.Visible ist True, damit wird dein OnShow-Event entweder zu früh oder überhaupt nicht ausgelöst. Es hat an der Stelle eigentlich auch nichts zu suchen sondern gehört in eine eigene Methode, die man nach der Erstellung aufruft. Anders ausgedrückt, die letzte Zeile in deiner Methode mnu_Child1Click hat keinerlei Funktion.
Forms erstellt man übrigens nicht mit ![]() ![]() |
AW: MDI Child Public Variable
Aha
Ist das dann so richtig? Zumindest erhalte ich im Child nun die übergebene Werte. procedure TMainForm.mnu_Child1Click(Sender: TObject); begin // FormStyle = fsMDIChild; // frm_Child: Tfrm_Child; //fr_Child Application.CreateForm(Tfrm_Child, frm_Child); frm_Child.Set_Var('Hallo Welt'); end; |
AW: MDI Child Public Variable
So ist es richtig, ja.
|
AW: MDI Child Public Variable
Danke
|
AW: MDI Child Public Variable
Zitat:
Dass Einzige, was CreateForm macht, ist die hässliche globale Variable vor dem Ausführen von Constructor und OnCreate zu setzen. Und gerade wenn man Forms dynamisch/manuell erstellt, würde ich auch von der Verwendung dieser globalen Variable abraten. |
AW: MDI Child Public Variable
Was würde gegen diesen Aufruf hier sprechen?
Delphi-Quellcode:
procedure TMainForm.AboutMenuClick(Sender: TObject);
var Form : TAboutForm; begin Form := TAboutForm.Create(Self); Try Form.ShowModal; Finally Form.Free; End; end; |
AW: MDI Child Public Variable
Zitat:
|
AW: MDI Child Public Variable
Ralf, Danke für die Bestätigung, ich war ehrlich gesagt eher auf eine Antwort von Redeemer aus bzw gespannt was er/sie dazu sagt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 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 by Thomas Breitkreuz