![]() |
Erstellen einer MDI Anwendung
Hallo , ich möchte eine MDI Anwendung erstellen
(Also ein Hauptformular mit Menü und Toolbar und dann dadrin Fenster) Wenn ich auf der Toolbar einen Punkt auswähle soll sich das entsprechende Fenster öffnen , und wenn ich das Fenster schließe soll es nicht mehr sichtbar sein... Nur leider geht diese Visible=false eigenschaft bei MDI-Child fenstern ja nicht... Wie macht man sowas denn vernünftig? Hab mir nur mal sone professionelle MDIapplication angeguckt und da is viel mit Vererbung hantiert worden , sah für mich auf den ersten blick etwas komplexer aus , aber geht anscheinend nur so.. vielleicht kann mir ja mal jemand kurz erklären wie man die MDIchild fenster denn professionell erscheinen und verschwinden lässt :freak: Wäre cool :nerd: |
Vielleicht mit
Delphi-Quellcode:
und
MDIChild.Create;
Delphi-Quellcode:
Oder so ähnlich... :roll:
MDIChild.Close;
MDIChild.Destroy; MfG Florian :hi: |
So ähnlich eher..... Ne in die Richtung hatte ich auch gedacht.
Aber was du da sagst funktioniert SO bestimmt nich... Hm kann mir denn da keiner helfen? Naja vielleicht morgen. :roll: |
Naja war auch geraten... :roll:
Mein (schlaues) Delphi-Buch meint folgendes: Zitat:
Da stehen noch ein paar andere Befehle drin. Kann ich dir ja vielleicht morgen oder so per PN schicken wenn es dir hilft. MfG Florian :hi: |
Hallo,
Zitat:
Wiedem auch sei, beim Create, Destroy usw., brauchst Du einen Index! MDIChildren[0].Create(); Zudem hast Du das Show vergessen, nur Createn wird Dir nichts bringen. MDIChildren[0].Show; Grüsse, Daniel :hi: |
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
MfG Florian :hi: |
Zum schließen mußt Du im MDI-Kindfenster die Action-Eigenschaft des OnClose-Ereignisses setzen.
Delphi-Quellcode:
procedure TFormMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin { Action := caNone; Das Formular darf nicht geschlossen werden, daher geschieht nichts. Action := caHide; Das Formular wird nicht geschlossen, sondern lediglich verborgen. Die Anwendung kann nach wie vor auf das Formular zugreifen. Action := caFree; Das Formular wird geschlossen und sein Speicher freigegeben. Action := caMinimize; Das Formular wird nicht geschlossen, sondern als Symbol angezeigt. } Action := caFree; end; |
Ihr habt mir schon beachtlich weitergeholfen. :lol:
Mit dem .Hide geht das aber trotzdem nich , dann kommt die Fehlermeldung , dass man MDIKindformulare nicht verstecken kann. Habe dennoch nochmal eine Frage: Wie mache ich dass denn jetzt dass ich am Anfang , also quasi beim FormCreate des Hauptformulars das MDIKindFenster gar nicht sehe.. Weil das ist ja automatisch beim Start sichtbar... ? :| |
und noch was...
und noch was...
Der Befehl :
Delphi-Quellcode:
funktioniert so nicht , der erwartet da mehr Paramter , aber was soll ich denn da übergeben? Habs schon mit Application probiert aber das wird nur Mist... :angle:
MDIChildren[0].Create;
|
Mit Self funktioniert das.
Aber wie kann ich das denn machen dass ich jedes Formular nur einmal erzeugen kann? Das is doch total der Schwachsinn eigentlich dass man ein Formular beliebig oft mal öffnen kann.(zumindest bei den meisten Anwendungen) ? Also ich find diese mdi anwendungen irgendwie ziemlich umständlich :freak: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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-2025 by Thomas Breitkreuz