TRibbon die große Taste das Bild ist nicht zentriert ... irgendwelche Ideen? leicht zu Entwurfszeit zu demonstrieren
-
21-09-2019 - |
Frage
ich verwende delphi 2009 (Update 1, 2, 3, 4). Ich sehe ganz eigentümliche etwas. das Bild auf der Schaltfläche in die Schaltfläche nicht zentriert, wenn ich einen großen Knopf mit einem großen Glyphe haben! statt, die Glyphe der linke Teil beginnt in der Mitte des Knopfes zentriert ist.
ein Hinweis ist, dass, wenn ich:
- geht in das Action-Editor und wählen Sie die Aktion
- verwenden, um die Imageindex Combobox im Objektinspektor die Liste leer ist (normalerweise würde ich die verfügbaren Bilder in der Combobox sehen).
es scheint, als ob es eine Bildbreite Eigenschaft i Satz versagt haben oder eine Abbildungsliste nicht richtig konfiguriert. Ich habe die Glyphen auf einem großen Knopf erwartet sollte 32x32 sein.
Versuchen Sie Folgendes:
- fügen Sie diese Komponenten in eine leere Form
- fügen Sie ein 32x32 Bild auf der Bildliste
- setzen die Action1 Imageindex auf 0
Sie werden sofort sehen, was ich meine!
(Quelle: xrw.bc.ca )
Kann mir jemand sagen, warum es so aussieht?
ich es interessant finde, dass das Band Demo-Anwendung dieses Problem nicht zeigen. Ich habe sogar versucht das gleiche Bild.
Danke!
object ActionManager1: TActionManager
ActionBars = <
item
Items = <
item
Action = Action1
Caption = '&Action1'
ImageIndex = 0
CommandProperties.ButtonSize = bsLarge
end>
ActionBar = RibbonGroup1
end>
LargeDisabledImages = img3232
LargeImages = img3232
Left = 376
Top = 184
StyleName = 'Ribbon - Luna'
object Action1: TAction
Caption = 'Action1'
ImageIndex = 0
end
end
object Ribbon1: TRibbon
Left = 0
Top = 0
Width = 693
Height = 147
ActionManager = ActionManager1
Caption = 'Ribbon1'
Tabs = <
item
Caption = 'RibbonPage1'
Page = RibbonPage1
end>
ExplicitLeft = 232
ExplicitTop = 80
ExplicitWidth = 0
DesignSize = (
693
147)
StyleName = 'Ribbon - Luna'
object RibbonPage1: TRibbonPage
Left = 0
Top = 54
Width = 692
Height = 93
Caption = 'RibbonPage1'
Index = 0
object RibbonGroup1: TRibbonGroup
Left = 4
Top = 3
Width = 54
Height = 86
ActionManager = ActionManager1
Caption = 'RibbonGroup1'
GroupIndex = 0
end
end
end
object img3232: TImageList
Height = 32
Width = 32
Left = 376
Top = 256
end
Lösung
war das Problem, dass das damit verbundene TActionClients Objekt (in der Strukturansicht finden) irgendwie (standardmäßig?) Bekommt Small = true ... falsche Positionierung der Glyphe führt. es im Objektinspektor geändert und es funktioniert jetzt.
Andere Tipps
Ich habe dieses Problem mit Delphi 2009 zu haben, wie gut (scheint im Jahr 2010 verschwunden).
IIRC, versucht, die große Bildliste Referenz im Aktionsmanager nichts einstellen, dann wieder zurück in die Bilderliste.
N @
entdeckte ich dieses Problem wieder selbst. Ich war eine Gruppe zu einer TRibbon
Seite zur Laufzeit hinzugefügt (Ich habe einen Plugin-Framework macht die Arbeit). Nachdem die Gruppe hinzufügen, und das Hinzufügen einer Schaltfläche, wurden die Bilder versetzt. Aber nur auf XP.
I denkt das Problem hat mit der Glyphe Breite an einem gewissen Punkt zu tun 0 ist, die dann FGlyphPos in TCustomActionControl macht die Mitte der Taste sein (für große Tasten), und der Text ganz am linken Seite der Taste (für kleine Tasten) positioniert werden. Die Breite der Gruppe ist auch kleiner, als es aus diesem Grunde sein sollte.
Eine schnelle und einfache Möglichkeit, die Gruppen um Neuorientierungs alles zu treten ist diesen Code in das Formular hinzufügen (hier habe ich es das OnShow Ereignis hinzugefügt, aber Sie können es ausdrückte, wo Sie mögen):
for LTabIndex := 0 to Ribbon.Tabs.Count - 1 do
for LGroupIndex := 0 to Ribbon.Tabs[LTabIndex].Page.GroupCount - 1 do
Ribbon.Tabs[LTabIndex].Page.Groups[LGroupIndex].AlignGroupControls;
Hope dies hilft jemand. :)