AGB  ·  Datenschutz  ·  Impressum  







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

Erstellen einer MDI Anwendung

Ein Thema von DBman · begonnen am 1. Jul 2003 · letzter Beitrag vom 2. Jul 2003
Antwort Antwort
Seite 1 von 3  1 23      
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#1

Erstellen einer MDI Anwendung

  Alt 1. Jul 2003, 22:03
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
Wäre cool
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#2
  Alt 1. Jul 2003, 22:06
Vielleicht mit
MDIChild.Create; und
Delphi-Quellcode:
MDIChild.Close;
MDIChild.Destroy;
Oder so ähnlich...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#3
  Alt 1. Jul 2003, 22:30
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.
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#4
  Alt 1. Jul 2003, 22:39
Naja war auch geraten...

Mein (schlaues) Delphi-Buch meint folgendes:
Zitat:
Create - ...erzeugt eine Formularinstanz (Konstruktor) und löst OnCreate Ereignis aus.

Destroy - ...entfernt die Formularinstanz (Destruktor) und löst OnDestroy Ereignis aus.

Close - ...ruft CloseQuery auf und schließt das Formular, wobei OnClose Ereignis ausgelöst wird.
Aus: Delphi 6 Grundlagen und Profiwissen

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
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 1. Jul 2003, 22:43
Hallo,
Zitat von flomei:
Naja war auch geraten...
Mein (schlaues) Delphi-Buch meint folgendes:
Da stehen noch ein paar andere Befehle drin. Kann ich dir ja vielleicht morgen oder so per PN schicken wenn es dir hilft.
Ich hab Dir von anfang an gesagt, mit dem Buch kommst Du nicht weiter! *kopfschüttel*
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
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6
  Alt 1. Jul 2003, 22:52
Zitat von Daniel B:
Ich hab Dir von anfang an gesagt, mit dem Buch kommst Du nicht weiter! *kopfschüttel*
Ist manchmal aber doch ganz praktisch...

Zitat von Daniel B:
Wiedem auch sei, beim Create, Destroy usw., brauchst Du einen Index!
MDIChildren[0].Create();
MDIChildren[0].Show;
Hab ich wohl überblättert.

Zitat von Daniel B:
Zudem hast Du das Show vergessen, nur Createn wird Dir nichts bringen.
Darauf hätte man vielleicht auch so noch kommen können

Zitat von DBMan:
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...
Aus meinem absolut nutzlosen Delphi-Buch:
Zitat:
Hide - ...versteckt das Formular (Visible = False).
Show - ...setzt Visible = True und zeigt das Formular im Vordergrund an.
Daniel vielleicht doch nicht ganz so schlecht...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#7
  Alt 1. Jul 2003, 22:55
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;
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#8
  Alt 2. Jul 2003, 10:43
Ihr habt mir schon beachtlich weitergeholfen.
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...
?

Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#9

und noch was...

  Alt 2. Jul 2003, 10:44
und noch was...
Der Befehl :

MDIChildren[0].Create; 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...
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#10
  Alt 2. Jul 2003, 11:28
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
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:12 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