![]() |
Menuitem und Ownderdraw und Hotkey
Hallo,
in Menü zeichne ich die Einträge selbst. Jedoch muss ich, wenn AutoHotkeys eingeschaltet sind, diese erkennen. Gibt es dafür eine Function? LG Mathias |
AW: Menuitem und Ownderdraw und Hotkey
Liste der Anhänge anzeigen (Anzahl: 1)
Huhu Frühlingsrolle, schön, dich wieder einmal schreiben zu sehen :-)
Danke für den Hinweis, ich hatte einen Fehler im Code, deshalb hatte es nicht funktioniert. Mit folgendem Code kann ich es selbst zeichnen:
Code:
var
X : Integer; Y : Integer; dummy_string : string; dummy_string_and : String; [..] if Pos( '&', dummy_string ) > 0 then begin dummy_string_and := Copy( dummy_string, 0, Pos( '&', dummy_string ) - 1 ); ACanvas.Font.Style := [ ]; ACanvas.TextOut( X, Y, dummy_string_and ); dummy_string_and := Copy( dummy_string, Pos( '&', dummy_string ) + 1, 1 ); ACanvas.Font.Style := [ fsBold, fsUnderline ]; X := ACanvas.PenPos.X + ACanvas.TextWidth( dummy_string_and ); ACanvas.TextOut( ACanvas.PenPos.X, Y, dummy_string_and ); dummy_string_and := Copy( dummy_string, Pos( '&', dummy_string ) + 2, Length( dummy_string ) ); ACanvas.Font.Style := [ ]; ACanvas.TextOut( X, Y, dummy_string_and ); end; Jedoch habe ich in der Zeile:
Code:
noch einen Fehler, welchen ich beinah mit
X := ACanvas.PenPos.X + ACanvas.TextWidth( dummy_string_and );
Code:
beheben kann. (Screenshot zeigt die Darstellung ohne * 1.125)
X := ACanvas.PenPos.X + round(ACanvas.TextWidth( dummy_string_and ) * 1.125);
Fehlt mir da noch irgendein Zeichenabstand zwischen den Buchstaben? LG Mathias |
AW: Menuitem und Ownderdraw und Hotkey
Hallo zurück,
in der angehängten Grafik meines Posts ist beim unterstrichenen P zu erkennen, dass etwas fehlt. Und ich weiß nicht, wie das zu beheben sein könnte. LG Mathias |
AW: Menuitem und Ownderdraw und Hotkey
Versuch mal ein
Delphi-Quellcode:
zu setzen. Du scheinst ja den Text auch komplett selbst zu malen und schneidest den unterstrichenen Buchstaben aus und zeichnest ihn separat. Durch das nachträgliche Zeichnen der restlichen Caption wird dann natürlich der vordere Teil übermalt, da
Canvas.BrushStyle := bsClear
Delphi-Quellcode:
ein Rechteck zeichnet und nicht nur den Text.
Canvas.TextOut()
|
AW: Menuitem und Ownderdraw und Hotkey
Darauf bin ich einfach nicht gekommen.
Danke für die Hilfe! LG Mathias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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 by Thomas Breitkreuz