Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 7 / 2010 - Design von Button + Popup (https://www.delphipraxis.net/178004-delphi-7-2010-design-von-button-popup.html)

taaktaak 10. Dez 2013 16:43

Delphi 7 / 2010 - Design von Button + Popup
 
Moin, Moin.
Nachdem registrierten Anwendern derzeit "die letzte Chance" auf ein kostengünstiges Upgrade erhalten, habe ich mich endlich einmal mit meinem noch immer ungenutzen Delphi 2010 beschäftigt. Beim ersten "herumspielen" ist mir nun folgendes aufgefallen:

Das Aussehen der Buttons wird unter D2010 nun in den Projektoptionen gesteuert: Ohne Häkchen bei "Laufzeit-Themes aktivieren" erhalten z.B. die Buttons das altehrwürdige Aussehen, mit Häkchen erhalten sie das "moderne" Design. Das entspricht meiner Erwartungshaltung - gleiches wird durch das Einbinden des XP-Manifestes bei D7 erreicht. Dies gilt aber offenbar nicht für die IDE, hier werden die Buttons immer "modern" dargestellt.

Frage 1: Ist das gewollt, oder kann man einstellen, dass die Buttons auch in der IDE den gewählten Projektoptionen entsprechend dargestellt werden?

Die Darstellung der Popup-Menüs wird offenbar nicht durch die Projektoptionen gesteuert, die haben (zur Laufzeit, unter Win7) immer das moderne Design. Gleiches gilt übrigens auch für das alte D7. Aber das wird offenbar nicht durch Win7 erzwungen, denn in einigen "alten" Programmen erscheinen trotzdem die "alten Popup-Menüs" - und da sind aktive/inaktive Menüeinträge sehr viel besser unterscheidbar.

Frage 2: Gibt es für D7 und D2010 eine Möglichkeit auch unter Win7 die Optik der Popup-Menüs zu steuern?

Uwe Raabe 10. Dez 2013 17:16

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Zitat:

Zitat von taaktaak (Beitrag 1239321)
Frage 1: Ist das gewollt, oder kann man einstellen, dass die Buttons auch in der IDE den gewählten Projektoptionen entsprechend dargestellt werden?

Wie du schon treffend bemerkst, wird das durch das eingebundene Manifest bestimmt. Da zur Designzeit die IDE das ausführende Programm ist, gilt auch das dort eingebundene Manifest.

Zitat:

Zitat von taaktaak (Beitrag 1239321)
Aber das wird offenbar nicht durch Win7 erzwungen, denn in einigen "alten" Programmen erscheinen trotzdem die "alten Popup-Menüs" - und da sind aktive/inaktive Menüeinträge sehr viel besser unterscheidbar.

Frage 2: Gibt es für D7 und D2010 eine Möglichkeit auch unter Win7 die Optik der Popup-Menüs zu steuern?

Das könnte über ein OwnerDraw = true und entsprechende Event-Handler gelöst werden.

taaktaak 10. Dez 2013 18:48

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Vielen Dank für die Antworten...

Zitat:

wird das durch das eingebundene Manifest bestimmt
... und da während der Laufzeit ein Manifest nicht deaktiviert/aktiviert werden kann, muss man damit also leben. Na ja, es gibt schlimmeres.

Zitat:

ein OwnerDraw = true
Nun gut, selber zeichnen geht ja (fast) immer. Finde es nur unlogisch, dass mit dem Manifest das Aussehen vieler Controls gesteuert wird, aber nicht das Aussehen der Menüs.

Bernhard Geyer 10. Dez 2013 18:59

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Zitat:

Zitat von taaktaak (Beitrag 1239341)
Nun gut, selber zeichnen geht ja (fast) immer. Finde es nur unlogisch, dass mit dem Manifest das Aussehen vieler Controls gesteuert wird, aber nicht das Aussehen der Menüs.

Wird es doch. Schau dir das Menü von notepad.exe an. Das ist das Design das die "XP"-Themes vorgeben.
Will man was anders haben (so wie Office2003 oder ander MS-Apps die hier was anderes einführen/definieren) so braucht man 3th-Party-Kompos.

taaktaak 10. Dez 2013 19:09

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Ich habe mich da offenbar etwas unklar ausgedrückt; tatsächlich verwirrt mich das ganze etwas!

Aber nach meiner Beobachtung ist das Aussehen der Memüs unabhängig davon, ob ein Manifest verwendet wird oder nicht. Das steht im Gegensatz zu anderen Controls, deren Gestaltung davon abhängig ist, ob ein Manifest eingebunden wurde oder nicht. Und das empfinde ich als unlogisch ...

himitsu 10. Dez 2013 19:34

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Über das Manifest wird nur die Verwendung der CommonControls geregelt, also Version davon verwendet wird.
Und dann kommt es darauf an, was zu den CommonControls gehört und ob die sich vielleicht selber Zeichnen (eigener Skin verwendet).

Aber nein, man kann auch irgendwie für einzelne Controls den neuen Style abschalten.

taaktaak 10. Feb 2014 19:17

AW: Delphi 7 / 2010 - Design von Button + Popup
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, Moin.
Das Thema hat mich dann doch nicht ruhen lassen. Im Internet findet man ja einiges zum Popup-Ownerdraw. Allerdings habe ich zunächst nichts gefunden, um den äußeren Rand des Popups zu beeinflussen, alle Lösungen sehen daher ziemlich :cyclops: aus. Dann stieß ich auf zwei über zehn Jahre alte Beiträge im Entwickler-Forum und der DelphiPraxis, die genau dieses Problem behandelten. Die Lösung (Hook) von Hagen Reddmann habe ich ein wenig adaptiert - im Anhang eine experimentelle Hook-Klasse "MenuHook.pas" und eine winzige Beispiel-App "test11". Die Links zu den vorgenannten (interessanten) Beiträgen sind im Kopf der Unit "MenuHook" zu finden.
Funktioniert unter Xp und Win7.
Gruß
Ralph


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 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