AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi MenuItem neu zeichnen ohne ganzes Menü neu zu zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

MenuItem neu zeichnen ohne ganzes Menü neu zu zeichnen

Ein Thema von StephanR · begonnen am 1. Mai 2018 · letzter Beitrag vom 2. Mai 2018
Antwort Antwort
Seite 2 von 2     12   
StephanR

Registriert seit: 1. Mai 2018
6 Beiträge
 
#11

AW: MenuItem neu zeichnen ohne ganzes Menü neu zu zeichnen

  Alt 2. Mai 2018, 11:07
Sollte selbst erklärend sein.

  PDis: PDrawItemStruct absolute lP; Initialisierung..

Delphi-Quellcode:
    WM_DRAWITEM:
      begin
        PDis := Pointer(lP);
        case PDis^.CtlType of
          ODT_MENU: // 1 Ownerdrawn menu item
            begin
              hMenuWnd := WindowFromDC(PDis.HDC);

gruss
Hallo MWeiss,

ich habs immer noch nicht kapiert...
Für mich sieht dies so aus, als setzt Du voraus, es gäbe bereits eine Message WM_DRAWITEM, die ich gerade empfangen und analysieren kann.

So wie ich das sehe, muss ich aber diese Message selber zusammenstellen wenn ich eine MenuItem-Caption geändert habe (es wird ja beim Ändern der Caption eines MenuItem keine solche Message ausgelöst, sonst hätte ich ja das ganze Problem nicht).
Woher bekomme ich denn dann die ganzen Infos über den DeviceContext etc., die mir die empfangene Message einfach so schenken würde, damit ich die Message auslösen kann?

Viele Grüße
Stephan
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

AW: MenuItem neu zeichnen ohne ganzes Menü neu zu zeichnen

  Alt 2. Mai 2018, 11:12
Wenn du ein Menu erstellst wird WM_DRAWITEM immer aufgerufen unabhängig davon ob es ein OwnerDraw Menu ist oder nicht.
Wenn du mit VCL arbeitest musst du diese Message natürlich überschreiben wenn du damit arbeiten möchtest.

such mal im Forum da wird sich bestimmt was finden..
Ein Beispiel hier.

https://www.delphipraxis.net/186217-...usfuehren.html

gruss
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: MenuItem neu zeichnen ohne ganzes Menü neu zu zeichnen

  Alt 2. Mai 2018, 17:05
Mir scheint ja, dass Du zwar mit einem TPopUpMenu arbeitest, aber eigentlich ja tabellarische Informationen anzeigst. Dann könnte man auch ein Grid oder eine Listbox verwenden. Dann müsstest Du dem - für Deinen speziellen Anwendungsfall - zickigen PopUpMenü keine Manieren beibringen, sondern könntest mit einem sehr genügsamen Grid oder einer ListBox arbeiten.
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  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 09:55 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