Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Von einem Child-Fenster auf Prozedur im anderen Child-Fenste
Gagga - Di 02.02.21 15:56
Titel: Von einem Child-Fenster auf Prozedur im anderen Child-Fenste
Hallo!
Ich stelle eine meiner Anwendungen auf den MDI-Aufbau um. Dabei habe ich so meine Probleme.
Beispiel:
Ich kreiere zusätzlich zur Hauptform zwei Child-Fenster. Sie werden angezeigt - wunderbar. Was nicht klappt, ist der Aufruf einer Prozedur in Child-2 aus Child-1. Zumindest nicht so, wie es problemlos in der Nicht-MDI-Anwendung geklappt hat. Oder muss ich die Prozeduren mit übergreifendem Zugriff ausnahmslos in "zentrale units" packen?
Wer kann helfen?
Danke sagt Gagga
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Do 04.02.2021 um 17:14
jaenicke - Di 02.02.21 20:02
Gagga hat folgendes geschrieben : |
Ich stelle eine meiner Anwendungen auf den MDI-Aufbau um. |
Man sollte dabei nicht vergessen, dass MDI in der Windows 3.x Zeit vor über 30 Jahren eingeführt wurde, als es den Desktop, wie wir ihn heute kennen, noch nicht gab. Damals hatte das daher seinen Sinn.
Heute kann ein Programm problemlos in der Taskleiste auch mehrere Einträge erzeugen und darüber mehrere Dokumente verwalten und die Anordnungsfunktionen wie "zwei Fenster nebeneinander" kann Windows schon global.
Deshalb hat Microsoft schon vor vielen Jahren MDI abgekündigt und veröffentlicht dafür keine Bugfixes mehr. Es kann also sein, dass es irgendwann in neueren Windowsversionen nicht mehr richtig funktioniert. Und ein paar Bugs sind ja auch bekannt.
Deshalb macht es wenig Sinn heute ein Programm auf eine so stark veraltete Technologie umzustellen. Da macht es eher Sinn das ganze moderner zu gestalten...
Gagga hat folgendes geschrieben : |
Was nicht klappt, ist der Aufruf einer Prozedur in Child-2 aus Child-1. Zumindest nicht so, wie es problemlos in der Nicht-MDI-Anwendung geklappt hat. Oder muss ich die Prozeduren mit übergreifendem Zugriff ausnahmslos in "zentrale units" packen? |
Es macht schon Sinn das in separate Units zu packen um keine Kreuzbeziehungen usw. zu bekommen. Aber prinzipiell kann man auch gut zwischen den Fenstern direkt kommunizieren.
Ohne genauere Informationen zum konkreten Problem lässt sich dazu wenig sagen. Sprich was hast du versucht (Quelltext?) und was ist passiert (Compilerfehler, ...)?
Gagga - Di 02.02.21 21:21
jaenicke hat folgendes geschrieben : |
Gagga hat folgendes geschrieben : | Ich stelle eine meiner Anwendungen auf den MDI-Aufbau um. | Man sollte dabei nicht vergessen, dass MDI in der Windows 3.x Zeit vor über 30 Jahren eingeführt wurde, als es den Desktop, wie wir ihn heute kennen, noch nicht gab. Damals hatte das daher seinen Sinn.
Heute kann ein Programm problemlos in der Taskleiste auch mehrere Einträge erzeugen und darüber mehrere Dokumente verwalten und die Anordnungsfunktionen wie "zwei Fenster nebeneinander" kann Windows schon global.
Deshalb hat Microsoft schon vor vielen Jahren MDI abgekündigt und veröffentlicht dafür keine Bugfixes mehr. ... |
Danke Sebastian!
Damit hat sich die Sache schon erledigt. Ich werde die Übersichtlichkeit der Fenster anders regeln.
Gruß
Gagga
jaenicke - Mi 03.02.21 01:10
Eine Möglichkeit dafür sind Reiter wie sie in Delphi oder Notepad++ ganz ohne MDI verwendet werden. Was dabei sinnvoll ist, kommt ganz auf das Programm an.
Ich persönlich finde z.B. die Chrome-Tabs von der Usability und auch vom Aussehen her sehr schön. Damit kann man einen Reiter als eigenes Fenster herausziehen oder wieder eingliedern usw., so dass man viel freier ist als bei MDI. Für Delphi gibt es davon eine sehr gute und aktuelle Implementierung:
https://github.com/norgepaul/TChromeTabs
Gagga - Mi 03.02.21 01:41
jaenicke hat folgendes geschrieben : |
Eine Möglichkeit dafür sind Reiter wie sie in Delphi oder Notepad++ ganz ohne MDI verwendet werden. Was dabei sinnvoll ist, kommt ganz auf das Programm an.
Ich persönlich finde z.B. die Chrome-Tabs von der Usability und auch vom Aussehen her sehr schön. Damit kann man einen Reiter als eigenes Fenster herausziehen oder wieder eingliedern usw., so dass man viel freier ist als bei MDI. Für Delphi gibt es davon eine sehr gute und aktuelle Implementierung:
https://github.com/norgepaul/TChromeTabs |
Ich werde vermutlich mit einer großdimensionierten Menüleiste operieren, die ich an einer Bildschirmkante andocke.
Nochmals herzlichen Dank!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!