AGB  ·  Datenschutz  ·  Impressum  







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

TMenuItem: Checked wird nicht dargestellt

Ein Thema von blauweiss · begonnen am 27. Apr 2009 · letzter Beitrag vom 16. Jan 2021
Antwort Antwort
Seite 1 von 2  1 2      
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#1

TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 17:19
Hallo liebe Leute,

ich bin vor einigen Tagen testweise umgestiegen von Delphi5 auf BDS2006.
Neben einigen (gelösten) Phänomenen habe jetzt ich diesen Unterschied in meinem Programm:

In meinem TMainMenu verwende ich eine ImageList.
Ein MenuItem (mit vergebenem ImageIndex), das ich zur Laufzeit in Delphi5 auf Checked := true setze, sieht "eingedrückt" aus. Kein Häkchen oder Bommel !! So will ich es auch haben.
In BDS2006 wird dieses MenuItem aber nicht mehr "eingedrückt" dargestellt ! Es ist aber Checked=true, wie im Debugger zu sehen.

GroupIndex ist gesetzt auf eine Zahl, RadioItem ist true.


hat jemand einen Tip ? 8)

blauweiss


hab mal 2 Bilder angehängt
Miniaturansicht angehängter Grafiken
bds2006_menuitemchecked_648.jpg   delphi5_menuitemchecked_445.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#2

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 17:27
Hast du vielleicht mal n Bild, damit man sich das vorstellen kann? Wie hast du diese "eingedrückte" Ansicht hinbekommen? Kein Häkchen ist übrigens schonmal nicht Windows-Standard und somit schonmal per se nicht gern gesehen, wenn ich dich richtig verstanden habe...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 17:47
Zitat von Daniel G:
Hast du vielleicht mal n Bild, damit man sich das vorstellen kann? Wie hast du diese "eingedrückte" Ansicht hinbekommen? Kein Häkchen ist übrigens schonmal nicht Windows-Standard und somit schonmal per se nicht gern gesehen, wenn ich dich richtig verstanden habe...
Wo willst du denn den Haken platzieren wenn an der üblichen Position ein Bild ist? Ne, das passt schon so, ist Standard-Windows-Stil. Unter Delphi 2006 funktioniert das aber tatsächlich nicht. Ich verwende in meinen Anwendungen Toolbar 2000 + TBX, da gehts wunderbar.
Miniaturansicht angehängter Grafiken
mainmenu_checked_200.png  
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#4

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 18:02
Hallo,

danke für eure Antworten !
Schade, dann ist das wohl mit BDS2006 nicht mehr einfach möglich.

@DanielG: hab die "eingedrückte" Ansicht ganz einfach hinbekommen, indem ich in Delphi5 Checked := true gesetzt hatte. Auch wenn's nicht Windows-Standard ist, ich mag gern Menuepunkte mit Bildern, und die "eingedrückte Ansicht" hat mir gut gefallen.

Ok, dann bleibt mir wohl nix anderes übrig, als keine Images (siehe Bild). Dann gibt's nur Häkchen zu sehen.

Oder ich hole mir die Toolbar2000 / TBX Komponente vom Andreas, danke für den Tip !

blauweiss
Miniaturansicht angehängter Grafiken
bds2006_menuitemchecked_no_images_176.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#5

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 18:22
Ach solche Bilder... Hatte irgendwie was anderes vor Augen...

Und wenn du den Menüpunkt komplett selbst zeichnest? Hab jetzt gerade kein BDS am Start. OnDrawXYZ o.ä.?
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#6

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 18:36
Hi Daniel G,

kann den Menuepunkt auch selber zeichnen, hatte halt gehofft daß es mit irgendeiner Property vom TMainMenu oder TMenuItem noch einfacher hinzubekommen ist, daß es wieder so aussieht wie mit Delphi5...

Wenn ich nix finde, dann beisse ich lieber in den sauren Apfel und laß die Images ganz weg. Dann gibt's wenigstens Häkchen zum anschauen. Find's aber etwas schwach vom BDS2006, daß es da einen kleinen Rückschritt zum alten Delphi5 zu geben scheint.


blauweiss
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#7

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 27. Apr 2009, 18:55
Zitat von blauweiss:
Find's aber etwas schwach vom BDS2006, daß es da einen kleinen Rückschritt zum alten Delphi5 zu geben scheint.
Denke mal eher das es sich um einen Bug handelt. Kannst ja mal in der Quality Central suchen, hat bestimmt schon jemand anderes bemerkt.
http://qc.embarcadero.com/wc/qcmain.aspx
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#8

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 28. Apr 2009, 08:34
Zitat von blauweiss:
kann den Menuepunkt auch selber zeichnen, hatte halt gehofft daß es mit irgendeiner Property vom TMainMenu oder TMenuItem noch einfacher hinzubekommen ist, daß es wieder so aussieht wie mit Delphi5...
Der Haken wird nur angezeigt, wenn dem TMenuItem kein Bild zugeordnet ist. Wenn man das TMainMenu über Images mit einer TImageList verbindet, kann man bei den TMenuItem mit ImageIndex ein Bild aus der TImageList zuweisen. Den ImageIndex kann man auch zur Laufzeit ändern. Ob man bei TMenuItem über Bitmap mehrere Bilder zuweisen kann, die dann eigenschaftenabhängig angezeigt werden, habe ich noch nicht ausprobiert.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#9

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 28. Apr 2009, 09:53
Hi Garfield,

danke für deinen Beitrag ! Hab mal deine Idee probiert mit ImageIndex auf -1 und direktem Bitmap. Darin 2 Bilder nebeneinander, die rechte Hälfte "eingedrückt" gezeichnet in der vagen Hoffnung, daß das rechte dann eigenschaftenabhängig angezeigt wird, wenn Checked = true. Leider ohne Erfolg, da fehlt auch die Property NumGlyphs wie bei z.B. BitButtons. Ist verständlich, woher soll das TMenuItem auch wissen, wieviele Einzelbilder im Bitmap drin sind...

Ok, zusammenfassend kann man sagen:


MenuItem.Checked := true bewirkt:

in Delphi5:
a) ImageIndex = -1 -> Häkchen
b) ImageIndex = Index in ImageList -> Bild wird "eingedrückt" gezeichnet

in BDS 2006:
a) ImageIndex = -1 -> Häkchen
b) ImageIndex = Index in ImageList -> es passiert gar nix, schaut aus wie ungecheckt


Ich denke auch Bug 8)

blauweiss
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#10

Re: TMenuItem: Checked wird nicht dargestellt

  Alt 28. Apr 2009, 10:54
Zitat von blauweiss:
Ist verständlich, woher soll das TMenuItem auch wissen, wieviele Einzelbilder im Bitmap drin sind...
Aus der Prüfung von Bedingungen. TSpeedButton geht beispielsweise von quadratischen Bildchen aus. Ergibt sich bei der Division von Breite durch Höhe kein Rest, ist das Ergebnis gleich NumGlyphs, solange es nicht mehr als vier sind. Sonst ist NumGlyphs immer eins und müsste angegeben werden.

Zitat von blauweiss:
Ich denke auch Bug 8)
Kann, muss aber nicht sein. Wenn ja, ist er schon länger drin, denn in D7PE ist es genauso wie in TD. Du kannst Dir auch die beiden Versionen der Unit Menus.pas nehmen, sie vergleichen und die neue entsprechend erweitern bzw gegen die alte austauschen.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:58 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