AGB  ·  Datenschutz  ·  Impressum  







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

MDI-Child restlos minimieren

Ein Thema von HappyJoe · begonnen am 14. Nov 2006 · letzter Beitrag vom 15. Nov 2006
Antwort Antwort
HappyJoe

Registriert seit: 14. Nov 2006
37 Beiträge
 
Delphi XE2 Professional
 
#1

MDI-Child restlos minimieren

  Alt 14. Nov 2006, 16:57
Hallo Leute,

hab mal ne komplexe Frage:

Ich soll mit einem Freund ein kleines Verkaufsprog schreiben mit Stammdaten (Kunden, Artikel) und einer Rechnungsmaske, evtl. später auch einige statistische Auswertungen. Ich hatte mir gedacht, MDI zu verwenden, damit man auch beim Rechnungsschreiben einen fehlenden Artikel erfassen kann. Allerdings gefällt mir da nicht, dass für minimierte MDI-Children noch die Kopfzeile angezeigt wird. Lieber würde ich diese unterdrücken und die Children selbst z.B. in einem Menü verwalten. Daher

Frage 1: Wie kann ich auf die Anzeige der Kopfzeile beim Minimieren der MDI-Children verzichten bzw. sie unterdrücken?

Zweiter Punkt: Mein Freund und ich sind räumlich getrennt. Ich werde daher nicht immer aktuelle Sourcecodes von ihm haben. Deshalb habe ich gedacht, dass jeder seine ProgBereiche (MDI-Child) in eine DLL speichert. Im MainForm müssten ich dann nur mit Create das MDI-ChildForm erzeugen.

Frage 2: Wäre das so mit DLLs machbar oder habt ihr noch eine andere Idee?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: MDI-Child restlos minimieren

  Alt 14. Nov 2006, 18:44
Zitat von HappyJoe:
Frage 1: Wie kann ich auf die Anzeige der Kopfzeile beim Minimieren der MDI-Children verzichten bzw. sie unterdrücken?
property Visible der MDI-Children auf False setzen.

Zitat von HappyJoe:
Zweiter Punkt: Mein Freund und ich sind räumlich getrennt. Ich werde daher nicht immer aktuelle Sourcecodes von ihm haben. Deshalb habe ich gedacht, dass jeder seine ProgBereiche (MDI-Child) in eine DLL speichert. Im MainForm müssten ich dann nur mit Create das MDI-ChildForm erzeugen.
Frage 2: Wäre das so mit DLLs machbar oder habt ihr noch eine andere Idee?
Das Verwenden von gewöhnlichen DLLs macht garantiert Probleme, weil dann sämtliche Objektorientierung in der Schnittstelle verloren geht.
Mit Packages kann dies vermieden werden.
Aber auch Packages machen u.U. Schwierigkeiten. Vorallem dann, wenn sich in einer Unit im Packages im Abschnitt Interface etwas ändert muss die Anwendung neu kompiliert werden.
Mit einer Versionsverwaltung ( http://de.wikipedia.org/wiki/Versionsverwaltung ) könnt ihr beide gemeinsam an dem Projekt arbeiten.
Andreas
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#3

Re: MDI-Child restlos minimieren

  Alt 14. Nov 2006, 21:43
Zitat von HappyJoe:
Frage 1: Wie kann ich auf die Anzeige der Kopfzeile beim Minimieren der MDI-Children verzichten bzw. sie unterdrücken?
Nach meiner Kenntnis geht das nicht; es ist zwar 'ärgerlich' und sieht nicht unbedingt gut aus, wenn sich die minimierten MDI-Fenster am unteren Bildschirmrand tummeln, aber m.W. ist das so vom OS 'vorgesehen'...
Zitat von shmia:
property Visible der MDI-Children auf False setzen.
DAS geht nicht -> 'Ein Kindfenster kann nicht verborgen werden...'bekommt der USer dann auf den Bildschirm geklatscht. Das gleiche gilt auch für die Property .Hide
  Mit Zitat antworten Zitat
HappyJoe

Registriert seit: 14. Nov 2006
37 Beiträge
 
Delphi XE2 Professional
 
#4

Wirklich keine Möglichkeit?

  Alt 15. Nov 2006, 10:49
Tja, also visible geht nicht, DLLs und packages sind auch nicht vorteilhaft. Sieht wie ein unlösbares Problem aus . Nur wie machen das die professionellen Entwickler bei großen Progs? Die haben doch auch nicht 1000 Fenster offen.

Wäre es evtl. möglich WM_NCHITTEST abzufangen, auf Minimieren zu prüfen und mittels SetWindowPos das Fenster verschwinden zu lassen?
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#5

Re: MDI-Child restlos minimieren

  Alt 15. Nov 2006, 11:27
Das geht, indem das MDI-Child zerstört wird (Close) Allerdings musst Du in der CloseQuery die Action manuell auf caFree stellen, da bei MDI-Children grundsätzlich caMinimize reingeschrieben wird.
Beim Menüaufruf des entsprechenden Childs musst Du dann immer ein neues erstellen. Dabei aber darauf achten, daß nur eine Instanz generiert wird (im Handler vom Menüpunkt schauen, ob das entsprechende Child schon in der MDI-Children Liste enthalten ist und wenn ja nur ein Show machen).

Zum Thema Quellen: Schau Dir mal die GExperts an, die haben ein, wenn auch rudimentäres, Versionsverwaltungsprogramm dabei.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  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 16:44 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