AGB  ·  Datenschutz  ·  Impressum  







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

Delphi-Menu-Klasse + ModifyMenu

Ein Thema von Motzi · begonnen am 30. Mär 2006 · letzter Beitrag vom 2. Apr 2006
Antwort Antwort
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1

Delphi-Menu-Klasse + ModifyMenu

  Alt 30. Mär 2006, 17:17
Hi,

ich möchte in einem Menü (egal ob MainMenu oder PopupMenu - bei beiden ist dasselbe Problem) einen einzigen Menüpunkt selbst zeichnen (ein kleines Logo), alle anderen Menüpunkte sollen aber normal bleiben. Wenn ich die Eigenschaft "Ownerdraw" auf true setze kann ich den einen Menüpunkt selbst zeichen und die Menüpunkte ohne zugewiesenes OnDraw-Event sollten normal gezeichnet werden. Leider werden dann aber bei den normalen Menüpunkte keine Haken (checked/unchecked) mehr angezeigt.
Daher hab ich mir gedacht ich mach es "zu Fuß" per ModifyMenu-API. Gesagt getan, aber es kommen weder WM_MEASUREITEM noch WM_DRAWITEM Nachrichten an. Hab mal gesucht und hab auch in einem Buch (Win32-Lösungen) und im Internet (ältere) Beispiel-Codes gefunden die im Prinzip genauso aussehen wie meiner - diese funktionieren aber auch nicht.

Der Code aus dem Buch ist für Delphi3, ich verwende Delphi6. Wurde die VCL dazwischen derartig geändert? Hat jemand ähnliche Erfahrungen und vielleicht eine Idee wie man das Problem lösen kann?

Gruß, Motzi
Manuel Pöter
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 30. Mär 2006, 20:00
Hallo Manuel,

setze OwnerDraw des Menu auf false, verbinde die Menu Komponente mit einer ImageList - falls du das nicht sowieso schon getan hast - und pinsele dein Logo im Ereignis OnAdvancedDrawItem().

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 31. Mär 2006, 10:35
Hm.. wäre eine Möglichkeit.. das Logo ist allerdings ein bisschen höher als die normalen Menüpunkte, ich bräuchte also auch WM_MEASUREITEM bzw. OnMeasureItem...
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 2. Apr 2006, 01:00
*push* kann nicht glauben dass da niemandem was dazu einfällt!
Manuel Pöter
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 2. Apr 2006, 01:19
Hi,

wenn Du dem OwnerDraw-Menü eine ImageList zuordnest (die auch leer sein darf), werden die Haken wieder gezeichnet!
Frage mich bitte nicht, warum das so ist...

Gruß Hawkeye
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 2. Apr 2006, 03:24
Na super - sowas erfährt man jetzt - und ich habe mir die ganze Mühe gemacht und male alle Einträge selber...
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Delphi-Menu-Klasse + ModifyMenu

  Alt 2. Apr 2006, 12:24
Zitat von Muetze1:
Na super - sowas erfährt man jetzt - und ich habe mir die ganze Mühe gemacht und male alle Einträge selber...
Deswegen frag ich lieber vorher mal hier..!
Außerdem - bevor ich mir da alle Einträge selber zeichne mach ich das lieber per nonVCL - Menü-Resource anlegen, per LoadMenu laden und die entsprechenden WM_COMMAND-Messages zu behandeln ist da sicher weniger Arbeit..!

Edit: @Hawkeye219: grad ausprobiert - funktioniert wunderbar! Danke!
Manuel Pöter
  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 19:14 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