![]() |
AW: Definierte Zugriffstasten werden nicht unterstrichen angezeigt
Ich habe dieses
![]()
Delphi-Quellcode:
Ob der Code in der Form funktioniert, weiß ich nicht, weil ich das jetzt aus dem Projekt aus dem verlinkten Thread zusammenkopiert habe. Das Grundprinzip ist aber recht einfach: bei jedem Popup wird der Status der Einstellung ermittelt und in einer globalen Variable gespeichert. Ja, ich weiß, is böse :stupid:, geht aber an der Stelle nicht anders, weil 2 Klassen auf diese Variable zugreifen können müssen, es sei denn, man manscht das alles zu einer Klasse zusammen, aber man kann's auch übertreiben. Beim Zeichnen eines MenuItems wird der entsprechende Status der Einstellung mit berücksichtigt, weil die VCL das nicht tut.
type TMyMenuItem = class(TMenuItem)
protected procedure AdvancedDrawItem(ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState; TopLevel: Boolean); override; end; type TMainForm = class(TForm) procedure popupMenuMainPopup(Sender: TObject); end; var ShowAccel : BOOL; procedure TMyMenuItem.AdvancedDrawItem(ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState; TopLevel: Boolean); begin if ShowAccel AND Assigned(Self.GetParentMenu.Images) then State:= State - [odNoAccel]; inherited; end; procedure TMainForm.popupMenuMainPopup(Sender: TObject); begin SystemParametersInfo(SPI_GETMENUUNDERLINES, 0, @ShowAccel, 0); end; procedure TMainForm.FormShow(Sender: TObject); begin if Assigned(Self.PopupMenu) then begin for i:=0 to 8 do Self.PopupMenu.Items.Add(TMyMenuItem.Create(Self)); end; end; procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Self.PopupMenu.Items.Clear; end; MfG Dalai |
AW: Definierte Zugriffstasten werden nicht unterstrichen angezeigt
Erst mal vielen Dank - ich werd mir das mal in Ruhe anschauen und versuchen das nachzubauen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz