AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI Child Public Variable

Ein Thema von albertMichel · begonnen am 17. Mär 2018 · letzter Beitrag vom 19. Mär 2018
Antwort Antwort
albertMichel

Registriert seit: 17. Mär 2018
Ort: Karlsruhe
6 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

MDI Child Public Variable

  Alt 17. Mär 2018, 17:30
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
Albert
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#2

AW: MDI Child Public Variable

  Alt 17. Mär 2018, 21:11
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 Delphi-Referenz durchsuchenTForm.Create sondern mit Delphi-Referenz durchsuchenApplication.CreateForm.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
albertMichel

Registriert seit: 17. Mär 2018
Ort: Karlsruhe
6 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: MDI Child Public Variable

  Alt 18. Mär 2018, 03:49
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;
Albert
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#4

AW: MDI Child Public Variable

  Alt 18. Mär 2018, 11:38
So ist es richtig, ja.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
albertMichel

Registriert seit: 17. Mär 2018
Ort: Karlsruhe
6 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: MDI Child Public Variable

  Alt 18. Mär 2018, 13:46
Danke
Albert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#6

AW: MDI Child Public Variable

  Alt 18. Mär 2018, 14:13
Forms erstellt man übrigens nicht mit Delphi-Referenz durchsuchenTForm.Create sondern mit Delphi-Referenz durchsuchenApplication.CreateForm.
Falsch, bzw. nein, dass muss man nicht.

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Mär 2018 um 14:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: MDI Child Public Variable

  Alt 18. Mär 2018, 14:29
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: MDI Child Public Variable

  Alt 19. Mär 2018, 07:01
Was würde gegen diesen Aufruf hier sprechen?
Da spricht überhaupt nichts dagegen. Im Gegenteil, genau so muss es aussehen.
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: MDI Child Public Variable

  Alt 19. Mär 2018, 10:17
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz