AGB  ·  Datenschutz  ·  Impressum  







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

TMenuItem Höhe verändern

Ein Thema von CodeX · begonnen am 26. Apr 2016 · letzter Beitrag vom 26. Apr 2016
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#1

TMenuItem Höhe verändern

  Alt 26. Apr 2016, 17:13
Eigentlich eine simple Frage: Wie kann ich die Höhe von Items in einem TMainMenu oder TPopupMenu vergrößern?
Idealerweise nur für bestimmte Items oder alternativ für alle gleich.

Es gibt zwar ein OnMeasureItem , aber das Ändern von Height darin bewirkt nichts...
Ich habe testweise OwnerDraw:=True gesetzt, aber seltsamerweise ändert das nichts. Aber das will ich ja eigentlich ohnehin nicht, da dadurch das Windows-Theme beim Menü verloren gehen würde und das alles selbst manuell neuzeichnen ist ein ziemlicher Krampf.

Wie dann?
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: TMenuItem Höhe verändern

  Alt 26. Apr 2016, 17:45
Also ich bekomme bei OwnerDraw = true und einem entsprechenden OnMeasureItem-Event bei jedem MenuItem die passende Höhe - auch unterschiedlich für jedes Item. Wichtig dabei: kein OnDrawItem- und kein OnAdvancedDrawItem-Event!

Allerdings sieht das schon etwas bescheiden aus.
Angehängte Grafiken
 
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#3

AW: TMenuItem Höhe verändern

  Alt 26. Apr 2016, 18:14
Ups, ich habe völlig übersehen, dass TMenuItem an anderer Stelle aufgrund eines ganz anderen Kontextes bereits überschrieben wird. Das war auch der Grund, warum selbst CustomDraw nichts bewirkt hat.

Hat sich damit erledigt. Wen es interessiert, wie sich die Fragestellung lösen lässt:
Delphi-Quellcode:
TMenuItem = class(Menus.TMenuItem)
private
  procedure MeasureItem(ACanvas: TCanvas; var Width, Height: Integer); override;
end;

procedure TMenuItem.MeasureItem(ACanvas: TCanvas; var Width, Height: Integer);
begin
  inherited;
  if Caption <> '-then
    Height := ...;
end;
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  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 17:27 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