Discussion:
Toolbar
(zu alt für eine Antwort)
Ralf Stegemann
2003-10-28 12:11:52 UTC
Permalink
Hallo,

wie bekommt man die Toolbar von Delphi so programmiert,
daß ich jedem Button eine feste Breite zuweisen kann?

Wenn die Button mit Icon und Caption angezeigt werden,
wird jeder Button mit Unterschiedlichen längen angezeigt.

Danke im Vorraus

Ralf Stegemann
Michael Adler
2003-10-28 11:30:36 UTC
Permalink
Post by Ralf Stegemann
Hallo,
wie bekommt man die Toolbar von Delphi so programmiert,
daß ich jedem Button eine feste Breite zuweisen kann?
Autosize = True (zumindest wird er dann automatisch so breit wie er breit
sein muss, und nicht so breit wie der breiteste ^^)
Post by Ralf Stegemann
Wenn die Button mit Icon und Caption angezeigt werden,
wird jeder Button mit Unterschiedlichen längen angezeigt.
Du meinst mit jeweils der gleichen Breite?
--
Wenn Wahlen etwas verändern würden, wären sie schon längst verboten.
Ralf Stegemann
2003-10-28 12:50:42 UTC
Permalink
Post by Michael Adler
Post by Ralf Stegemann
Hallo,
wie bekommt man die Toolbar von Delphi so programmiert,
daß ich jedem Button eine feste Breite zuweisen kann?
Autosize = True (zumindest wird er dann automatisch so breit wie er breit
sein muss, und nicht so breit wie der breiteste ^^)
Mein Probem ist, das ich keine feste Breite jedem Button zuweisen kann,
wenn ShowCaption = true ist. Denn dann wird grundsätzlich die Breite von
Delphi selbst berechnet, aber dieses möchte ich umgehen.
Post by Michael Adler
Du meinst mit jeweils der gleichen Breite?
Nein jeden einzelnen Button möche ich eine bestimmte Breite zuweisen.
Michael Adler
2003-10-28 12:07:31 UTC
Permalink
Post by Ralf Stegemann
Mein Probem ist, das ich keine feste Breite jedem Button zuweisen
kann, wenn ShowCaption = true ist. Denn dann wird grundsätzlich die
Breite von Delphi selbst berechnet, aber dieses möchte ich umgehen.
Nun ja, entweder alle auf Autosize (und somit automatisch beste -
unterschiedliche - Breite jedes Buttons) oder alle Buttons mit der selben
Breite - nämlich die des mit der längsten Caption.
Was anderes geht leider nicht. (es sei denn, du haust TSpeedButtons in die
Toolbar rein)
--
Wenn Wahlen etwas verändern würden, wären sie schon längst verboten.
Ralf Stegemann
2003-10-28 13:33:24 UTC
Permalink
Post by Michael Adler
Post by Ralf Stegemann
Mein Probem ist, das ich keine feste Breite jedem Button zuweisen
kann, wenn ShowCaption = true ist. Denn dann wird grundsätzlich die
Breite von Delphi selbst berechnet, aber dieses möchte ich umgehen.
Nun ja, entweder alle auf Autosize (und somit automatisch beste -
unterschiedliche - Breite jedes Buttons) oder alle Buttons mit der selben
Breite - nämlich die des mit der längsten Caption.
Was anderes geht leider nicht. (es sei denn, du haust TSpeedButtons in die
Toolbar rein)
Gute Idee jedoch habe ich dann keinen zugriff auf die Imageliste der
Toolbar.
Michael Adler
2003-10-28 12:41:51 UTC
Permalink
Post by Ralf Stegemann
Post by Michael Adler
Was anderes geht leider nicht. (es sei denn, du haust TSpeedButtons
in die Toolbar rein)
Gute Idee jedoch habe ich dann keinen zugriff auf die Imageliste der
Toolbar.
Hatte auch mal das Problem und einen TToolSpeedBtn erfunden, der von
TSpeedButton abstammt und die Propertys ImageList und ImageIndex hat.

Der Kern von SetImageIndex sieht dann in etwa so aus:

BM := TBitmap.Create;
try
FImageList.GetBitmap(FImageIndex, BM);
Glyph.Assign(BM);
finally
BM.Free;
end;

Das einzige, was ich nicht hinkriege, ist diese schöne Auswahlliste im
Objektinspektor, wenn man den ImageIndex für den Speedbutton auswählen
will. Man muss also die Nummer kennen.
Aber vielleicht weiss ja irgendjemand, wie man sowas hinkriegt...
--
Wenn Wahlen etwas verändern würden, wären sie schon längst verboten.
Ralf Stegemann
2003-10-28 14:55:02 UTC
Permalink
Post by Michael Adler
Post by Ralf Stegemann
Post by Michael Adler
Was anderes geht leider nicht. (es sei denn, du haust TSpeedButtons
in die Toolbar rein)
Gute Idee jedoch habe ich dann keinen zugriff auf die Imageliste der
Toolbar.
Hatte auch mal das Problem und einen TToolSpeedBtn erfunden, der von
TSpeedButton abstammt und die Propertys ImageList und ImageIndex hat.
BM := TBitmap.Create;
try
FImageList.GetBitmap(FImageIndex, BM);
Glyph.Assign(BM);
finally
BM.Free;
end;
Das einzige, was ich nicht hinkriege, ist diese schöne Auswahlliste im
Objektinspektor, wenn man den ImageIndex für den Speedbutton auswählen
will. Man muss also die Nummer kennen.
Aber vielleicht weiss ja irgendjemand, wie man sowas hinkriegt...
Button mit DropDown usw. können dann auch schlecht erstellt werden.
Ich möche mit der festen Breite erreichen das ich das Icon und die
Caption ändern kann ohne das alle Button sich hin- und herbewegen.
(z.B. aus Schließen wird Abbrechen und aus Anlage wird Speichern)
Pascal Enz
2003-10-28 15:10:28 UTC
Permalink
Post by Ralf Stegemann
wie bekommt man die Toolbar von Delphi so programmiert,
daß ich jedem Button eine feste Breite zuweisen kann?
Wenn die Button mit Icon und Caption angezeigt werden,
wird jeder Button mit Unterschiedlichen längen angezeigt.
Bei jedem einzelnen Button (nicht bei der ToolBar) AutoSize := False;

----------
Gruss
Pascal Enz
Michael Adler
2003-10-28 14:18:23 UTC
Permalink
Post by Pascal Enz
Bei jedem einzelnen Button (nicht bei der ToolBar) AutoSize := False;
Dadurch kriegen ALLE Buttons die gleiche Breite... Es ist imho unmöglich
eine eigens definierte Breite für jeden einzelnen Button anzugeben.
--
Wenn Wahlen etwas verändern würden, wären sie schon längst verboten.
Ralf Stegemann
2003-10-28 15:21:38 UTC
Permalink
Post by Pascal Enz
Post by Ralf Stegemann
wie bekommt man die Toolbar von Delphi so programmiert,
daß ich jedem Button eine feste Breite zuweisen kann?
Wenn die Button mit Icon und Caption angezeigt werden,
wird jeder Button mit Unterschiedlichen längen angezeigt.
Bei jedem einzelnen Button (nicht bei der ToolBar) AutoSize := False;
Das Funktioniert nicht wenn ShowCaptions = true gesetzt ist. Leider.
Post by Pascal Enz
----------
Gruss
Pascal Enz
Loading...