AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Definierte Zugriffstasten werden nicht unterstrichen angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Definierte Zugriffstasten werden nicht unterstrichen angezeigt

Ein Thema von gandalf100 · begonnen am 5. Feb 2013 · letzter Beitrag vom 18. Feb 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#11

AW: Definierte Zugriffstasten werden nicht unterstrichen angezeigt

  Alt 12. Feb 2013, 16:05
Ich habe dieses Problem mit einem TPopupMenu ebenfalls gehabt und so gelöst:
Delphi-Quellcode:
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;
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 , 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.

MfG Dalai

Geändert von Dalai (12. Feb 2013 um 16:21 Uhr) Grund: Methode FormClose ergänzt
  Mit Zitat antworten Zitat
gandalf100

Registriert seit: 3. Nov 2011
9 Beiträge
 
Delphi 2010 Professional
 
#12

AW: Definierte Zugriffstasten werden nicht unterstrichen angezeigt

  Alt 18. Feb 2013, 14:27
Erst mal vielen Dank - ich werd mir das mal in Ruhe anschauen und versuchen das nachzubauen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 07:48 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