![]() |
Re: Mehrere Icons nebeneinander darstellen
Zitat:
Delphi-Quellcode:
Soll deine IconListe so aussehen: procedure TForm1.ToolButtonClick(Sender: TObject); begin if Sender is TToolButton then ShowMessage('Button mit dem Index "' + IntToStr(TToolButton(Sender).Index) + '" gedrückt."'); end; procedure TForm1.Button1Click(Sender: TObject); var neuerButton: TToolButton; begin neuerButton := TToolButton.Create(ToolBar1); with neuerButton do begin Caption := 'Beschriftung'; ImageIndex := 0; Parent := ToolBar1; OnClick := ToolButtonClick; end; end; ![]() Dann solltest du dir mal TListView anschauen. |
Re: Mehrere Icons nebeneinander darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für dein Hilfe!
Ich habe mir nun eine neue Class erzeugt, die die Funktionen MouseDown & MouseUp enthält. Beim erzeugen des Buttons weise ich die Methode dann zu. In der Methode erkenne ich dadurch welcher Button gedrückt wurde:
Delphi-Quellcode:
Anbei wie es jetzt aussieht! Es soll ja sowas wie ein Tray Ersatz werden!
ButtonIndex := (Sender as TToolButton).Index;
Jetzt muss ich mich halt noch mit dem Vergrößern der Transparanten Icons beschäftigen! |
Re: Mehrere Icons nebeneinander darstellen
Nun doch noch eine Frage!
Ich habe meinen Code in einer andern Unit. Diese Unit legt auf die Toolbar Buttons an. Hätte nun probiert:
Delphi-Quellcode:
Aufgerufen wird es so:
Function CreateToolBar(Sender : TObject) : Boolean;
var ToolBarObject : TToolBar; begin ToolBarObject := (Sender as TToolbar);
Delphi-Quellcode:
Es gibt keinen Error, jedoch bleibt auch die Toolbar leer!?
CreateToolBar(Form4.Toolbar1);
Wie kann ich das Toolbar Objekt übergeben damit es geht ohne die Form4 in die Uses von der Unit aufnehmen zu müssen? |
Re: Mehrere Icons nebeneinander darstellen
1. Musst du dem Parameter var voranstellen damit du ihn als Referenzparameter d. h. Zeiger auf den Speicherbereich des Objekts (Call-by-Reference) verwenden kannst. Bei normalen Parametern erhältst du nur eine Kopie die natürlich nicht ins Original-Objekt zurück kopiert wird.
Delphi-Quellcode:
2. warum machst du das über eine lokale Variable?
procedure Test_1(Param: String);
begin Param := 'TEST'; end; procedure Test_2(var Param: String); begin Param := 'TEST'; end; procedure ButtonClick; var S: String; begin S := 'Hallo'; Test_1(S); //S = Hallo Test_2(S); //S = TEST end;
Delphi-Quellcode:
EDIT: Verflixte Schlechtschreibung...
procedure AddToolBarButton(var AToolbar: TToolbar);
var NewButton: TToolButton; begin NewButton := TToolButton.Create(AToolbar); ... NewButton.Parent := AToolbar; end; |
Re: Mehrere Icons nebeneinander darstellen
Super Danke für dein Hilfe Andreas!
Jetzt bin ich etwas mehr mit der Toolbox vertraut Habe das mit der Übergabe per var TToolbox noch probiert! Geht einwandfrei! Was mir mit den Icons noch aufgefallen ist: Auch wenn ich ein 32x32 Icon lade wird dies 16x16 dargestellt. Es kann sein, das die Toolbutton das mit Icons automatisch machen. Werds einmal mit einem Image versuchen! |
Re: Mehrere Icons nebeneinander darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
;)
// --- Easy - IconBar Version 1.0 by turboPASCAL --- //
|
Re: Mehrere Icons nebeneinander darstellen
Zitat:
|
Re: Mehrere Icons nebeneinander darstellen
Danke @turboPASCAL!
Werd's mir ansehen!! |
Re: Mehrere Icons nebeneinander darstellen
Jetzt habe ich noch eine kleine Frage zu dem Thema!
Ich habe nun mehrere Icons nebeneinander. Per MouseDown/MouseUp & Sender weis ich welches Icon gedrückt wurde. Nun möchte ich aber die ganze Message die durch das draufclicken entsteht per Sendmessage weiterleiten. D.h. ich sollte eigentlich nicht auf MouseClick reagieren sondern auf die Message. Jedoch weis ich dann nicht wie ich herausfinden kann, welches Icon gedrückt wurde!? Ich hoffe das ist verständlich :oops: |
Re: Mehrere Icons nebeneinander darstellen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz