AGB  ·  Datenschutz  ·  Impressum  







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

TJvPopupMenu und OwnerDraw

Offene Frage von "StYxXx"
Ein Thema von StYxXx · begonnen am 23. Mär 2008 · letzter Beitrag vom 23. Mär 2008
Antwort Antwort
Benutzerbild von StYxXx
StYxXx

Registriert seit: 4. Mai 2006
Ort: Stuttgart
7 Beiträge
 
Delphi 7 Personal
 
#1

TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 03:24
Ich möchte in den OnDraw-Ereignissen eines Jedi-PopupMenus diverse Aktionen ausführen (u.a. halt das Aussehen des menüs manipulieren).

Das Menü und die jeweiligen Items kennen die Ereignisse "OnDrawItem" (Items zusätzlich noch "OnAdvancedDrawItem"), welche ausgelöst werden sollten, wenn JvPopupMenu.OwnerDraw = true ist.
Allerdings funktioniert das nicht. Die Eigenschaft "OwnerDraw" ist im Komponenteninspektor erst gar nicht vorhanden, daher muss ich den Wert per Quellcode setzen, was auch funktioniert (Prüfung zeigt, dass "true"). Die onDraw-Ereignisse werden jedoch niemals ausgelöst.

Weiß jemand warum? Ich habe nur altes gefunden, wonach es einmal ein paar Fehler bei den Komponenten und der Ereignisbehandlung gab, die eigentlich repariert wurden. Es wirkt allerdings, als hätte man die Eigenschaft OwnerDraw nachträglich versteckt.

Aus der JvMenus-Unit:
property OwnerDraw stored False;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 08:30
Moin,

welchen ItemPainter verwendest du denn?

Frohe Ostern
  Mit Zitat antworten Zitat
Benutzerbild von StYxXx
StYxXx

Registriert seit: 4. Mai 2006
Ort: Stuttgart
7 Beiträge
 
Delphi 7 Personal
 
#3

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 18:25
Hi,

nutze gerade diesen XpMenuItemPainter.
Ich hab ihn aber gerade entfernt und mit dem Style-Wert gespielt. Ändert auch nichts. Nichtmal bei Style=msOwnerDraw wird das Ereignis ausgelöst. Dafür hat man dann auch kein wirkliches Menü mehr

Danke und gleichfalls frohe Ostern
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 19:07
Hallo, das OnMenuDrawItem Ereignis von TJvPopupMenu wird aber schon ausgelöst? Bei mir zumindest.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von StYxXx
StYxXx

Registriert seit: 4. Mai 2006
Ort: Stuttgart
7 Beiträge
 
Delphi 7 Personal
 
#5

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 19:27
Zitat von toms:
Hallo, das OnMenuDrawItem Ereignis von TJvPopupMenu wird aber schon ausgelöst? Bei mir zumindest.
Habe gerade nochmal rumprobiert. Es wird nur ausgelöst, wenn JvPopupMenu.Style = msOwnerDraw ist. Allerdings auch dann nur das DrawItem-Ereignis des Menüs, nicht die Ereignisse der einzelnen Items.
Ist ein anderer Stil oder Painter gesetzt gechieht gar nichts.

Und ich wollte ja nicht das gesamte Menü selbst zeichnen, sondern nur bei einem Eintrag das Aussehen anpassen Bei den normalen Menü-Komponenten ist das auch kein Problem (dafür hat man dann nicht den schicken XP- oder Office-Look).
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 19:36
Zitat:
Und ich wollte ja nicht das gesamte Menü selbst zeichnen, sondern nur bei einem Eintrag das Aussehen anpassen
Es wird ja das Item + Rect übergeben: Item: TMenuItem; Rect: TRect;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von StYxXx
StYxXx

Registriert seit: 4. Mai 2006
Ort: Stuttgart
7 Beiträge
 
Delphi 7 Personal
 
#7

Re: TJvPopupMenu und OwnerDraw

  Alt 23. Mär 2008, 20:02
Zitat von toms:
Zitat:
Und ich wollte ja nicht das gesamte Menü selbst zeichnen, sondern nur bei einem Eintrag das Aussehen anpassen
Es wird ja das Item + Rect übergeben: Item: TMenuItem; Rect: TRect;
Dafür kein Canvas
Aber ist auch egal (auch wenn ich es mir jetzt irgendwo herhole), weil bei ja zb bei den XP-Stil-Menüs auch das Ereignis nicht ausgelöst wird. Fange ich es bei msOwnerDraw ab habe ich gar keine Menüeinträge, müsste also alle selbst zeichnen, inkl. dem Stil-Design. Und dann kann ich auf die Jedi-Komponenten auch verzichten, da ich so mehr Arbeit hätte, also ohne. Ich finde es nur seltsam, dass die Ereignisse nicht ausgelöst werden, obwohl man es erwarten würde.
  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 12:46 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