Autor Beitrag
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 19.04.06 16:45 
Also ich stelle die Frage hier rein, denn eigentlich ist es keine Frage die sich mit einem Stück Code beschäftigt, sondern nur mit der Planung eines Programms. Falls es eine Rubrik dafür gibt, dann bitte verschieben.

Also eines vorweg, das was ich hier am planen bin ist ein professionelles Programm. Es ist kein Hobbyprojekt, so daß Kompromisse möglich wären. Hier muß Projekt sauber programmiert werden und spätere Änderungen sind schwer möglich. Das ist auch der Grund wieso ich nicht direkt drauf losprogrammiere, sondern erst plane.

Ein wichtiger Teil des Projekts (ich wiederhole: Teil) ist eine Art Menü das die Steuerung eines anderen Programms über OLE-Automation übernimmt. Die Möglichkeiten ein Menü in dem anderen Programm zu erstellen ist so kompliziert und man ist so festgelegt, daß es nicht selten Tage dauert ein Menü zu erstellen oder ein größeres Menü neu zu konfigurieren. Und eine Firma kostet sowas viel Geld. Deshalb ein externes Menü das das Programm über OLE-Automation steuert und schneller anzulegen ist.

Also ich hab da einige Ideen gehabt und letztendlich bieten eine Treeview und PopUp Menü die besten Möglichkeiten. Auch wenn ich ein Treeview-Menü im Hinterkopf behalte, so hab ich mich für eine Art PopUp Menü entschieden. Es soll am besten genau so aussehen wie das Programme Menü von WindowsXP, daß über den Startbutton zu erreichen ist. Jeder der Windows kennt wird sich sofort auskennen, während ein Treeview bei zu vielen geöffneten Zweigen schnell unübersichtlich werden könnte.

Nun stellt sich die Frage wie ich das Windows Startmenü nachprogrammiere. Unter Berücksichtigung der Probleme die sich ergeben könnten, stellt sich die Frage wie es Microsoft gemacht hat. Die einfachste Möglichkeit wäre ein PopUp Menü mit Daten und Werten füllen und auch Untermenüs sofort mit Daten und Werten zu füllen. Nur gibt es ein Problem - das Menü muß zum Teil flexibel sein und zum Anderen gibt es Bereiche die über OLE-Automation aus dem Programm eingelesen werden müssen. Und das jedes mal aktuell. Das Einlesen dauerst seine paar Sekunden und es können unterschiedliche Bereiche eingelesen werden, die zusammen durchaus eine halbe Minute ergeben könnte. Würde ich also bei jedem Klick auf Start erst das ganze Menü generieren, so könnte jeder Klick auf Start eine halbe Minute dauern. Also müssen die Untermenüs etwas flexibler und erst bei Bedarf generiert werden. Eventuell ist auch eine Mischung möglich, d.h. der feste Teil kann komplett generiert werden, während PopUps die aktuelle Daten enthalten bei Bedarf eingelesen werden.

Also stelle ich mir die Frage wie ich es am besten machen sollte. Die eine Möglichkeit wäre, daß ich alle Möglichkeiten eines PopUp Menüs nutze, wie z.B. die Untermenüs, oder nur die einfachen Menüs und die Untermenüs werden aus neu PopUp Menüs erstellt. Es sieht dann wie ein Untermenü aus, es ist aber ein neues PopUp Menü. Die zweite Methode würde mir die nötige Freiheit lassen, aber ich müßte eine Verwaltung der Menüs programmieren, d.h. ich klappe etwas auf, es öffnen sich fünf Untermenüs, ich wechsle schnell wieder zum ersten Menü und die Verwaltung schließt nicht mehr benötigte Untermenüs. Hier müßte man vieles berücksichtigen und es wäre ein zusätzlicher Aufwand.

Also was meint ihr? Wie sollte man das Startmenü nachprogrammieren? An für sich wird es feste Menüs geben die nicht aktualisiert werden müssen, aber gelegentlich zum Schluss als letztes Untermenü auch ein PopUp Menü das aktuell gehalten werden muß. Außerdem soll es auch alle Möglichkeiten geben die auch das Windows Start/Programme Menü bietet, d.h. umbenennen, verschieben, usw. Also gäbe es nicht die Teile die jedes mal aktualisiert werden müßten, wäre die Antwort klar. Aber ich weiß nicht ob es möglich ist ein PopUp Menü normal zu generieren, aber Teile des Menüs zurückzuhalten und erst bei Bedarf füllen. Mir geht es hier also weniger um das Programmieren, als um die Frage was besser wäre und eventuell neue Ideen. Aus Erfahrung weiß ich, daß sich auf solche Fragen kaum einer meldet, aber ich frag mal trotzdem. Vielleicht kriege ich hier neue Impulse.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Mi 19.04.06 17:44 
Hallo..ich werd mal die Tradition brechen :lol:
Vielleicht gibt es ja ne fertige Komponente :!:
Jedis sollen ja recht vielfältig sein..habe selbst noch nicht nachgeschaut.
Gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]