Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MDI Child zur laufzeit erzeugen ? (https://www.delphipraxis.net/26219-mdi-child-zur-laufzeit-erzeugen.html)

Pseudemys Nelsoni 20. Jul 2004 14:21


MDI Child zur laufzeit erzeugen ?
 
hi,

wie kann ich ein MDI-Forumular zur laufzeit erzeugen UND direkt nachdem start meines programms anzeigen lassen?

wenn ich es so versuche:

Delphi-Quellcode:
procedure CreateStatusWnd;
var
  form: TForm;
begin
  form.Create(nil);
  form.FormStyle := fsMDIChild;
  form.Parent := Form1;
  form.WindowState := wsMaximized;
  form.Show;
end;
kann ich es in KEINEM event (oncreate, onactivate, onshow) aufrufen....immer fehler wie "MDIMainForm" nicht aktiv usw...

hat da jemand eine lösung?

Muetze1 20. Jul 2004 14:32

Re: MDI Child zur laufzeit erzeugen ?
 
Moin!

Ist denn auch eine Form aktiv zu dem Zeitpunkt mit der FormStyle fsMDIForm ? Du musst ja eine Hauptform haben damit du deren Kinder erstellen kannst...

MfG
Muetze1

Pseudemys Nelsoni 20. Jul 2004 14:38

Re: MDI Child zur laufzeit erzeugen ?
 
jo klar, Form1 ist ist das MDI Hauptfenster

Stevie 20. Jul 2004 14:43

Re: MDI Child zur laufzeit erzeugen ?
 
Ist es auch das Hauptfenster der Applikation?

Pseudemys Nelsoni 20. Jul 2004 15:19

Re: MDI Child zur laufzeit erzeugen ?
 
ja...........................

bigg 20. Jul 2004 15:28

Re: MDI Child zur laufzeit erzeugen ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
hi,

warum erstellst du dir keine Klasse alias TChild.
Die Klasse kannst du dann im Hauptformular erstellen.
Ich habe dazu ein Beispiel erstellt.

Guck dir dazu auch die *.dpr an, denn da wird die Klasse
nicht automatisch beim Starten deines Programms erstellt.

Pseudemys Nelsoni 20. Jul 2004 18:23

Re: MDI Child zur laufzeit erzeugen ?
 
hallo big, dein beispiel klappt perfekt! danke schonmal.

leider bekomm ich das irgendwie nicht in mein prog...

Mein erstes prob... ich habe ein MDIChild erstellt (designzeit), es heisst "Form3" und stammt von "TForm3" wie bennene ich das dann in "TChild" um? irgendwie gibt delphi mir fehler wenn ich den namen einfach so ändere.
Das zweite... wie hast du es gemacht das das zur designzeit erstelle fenster zur laufzeit nicht erscheint?
und das dritte... wieso haben alle neu erstellten childs die komponenten bereits da wo sie hinsollen, ich sehe nirgends das sie dort positioniert werden. ist das so weil das zur designzeit erstelle form bereits so aussieht?

bigg 20. Jul 2004 18:42

Re: MDI Child zur laufzeit erzeugen ?
 
hi,

ändere einfach den Namen im Formular von Form3 nach Child.
Deine Klasse heißt nun TChild. Aber nicht Tchild eingeben.

Ansonsten poste mal Code.

Muetze1 20. Jul 2004 19:28

Re: MDI Child zur laufzeit erzeugen ?
 
Moin!

2.: Projekt->Optionen->Formulare die Formulare von AutoCreate nach rechts bewegen.
3.: Hey, du hast das Wunder von Klassen entdeckt: einmal schreiben und x mal anlegen mit gleichem Verhalten, obwohl nur einmal Code geschrieben wurde. Die Klasse TChild legt aussehen und Verhalten fest - und das kannst du dir dann so oft anlegen bzw nutzen wie du willst.

MfG
Muetze1

Pseudemys Nelsoni 20. Jul 2004 21:44

Re: MDI Child zur laufzeit erzeugen ?
 
hallo an alle und danke 8)

Zitat:

Hey, du hast das Wunder von Klassen entdeckt: einmal schreiben und x mal anlegen mit gleichem Verhalten, obwohl nur einmal Code geschrieben wurde. Die Klasse TChild legt aussehen und Verhalten fest - und das kannst du dir dann so oft anlegen bzw nutzen wie du willst.
eigentlich weiss ich schon wie klassen funktionieren, nur ich sehe in der TChild unit keine definition der postion der komponenten wo steht die?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz