Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mehrere Icons nebeneinander darstellen (https://www.delphipraxis.net/136948-mehrere-icons-nebeneinander-darstellen.html)

Andreas L. 12. Jul 2009 18:18

Re: Mehrere Icons nebeneinander darstellen
 
Zitat:

Zitat von schwa226
Danke!

WErds mir noch ansehen!

Jetzt habe ich dazu noch eine Frage. Wie geht das dann bei der Toolbar mit OnMouseDown?
Wie finde ich heraus welcher Button gedrückt wurde?

Du definierst dir ein OnClick-Event und weist es jeden Button beim erstellen zu:
Delphi-Quellcode:

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;
Soll deine IconListe so aussehen: http://www.greatis.com/delphicb/bonu...listdesign.gif ?
Dann solltest du dir mal TListView anschauen.

schwa226 12. Jul 2009 18:28

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:
ButtonIndex := (Sender as TToolButton).Index;
Anbei wie es jetzt aussieht! Es soll ja sowas wie ein Tray Ersatz werden!

Jetzt muss ich mich halt noch mit dem Vergrößern der Transparanten Icons beschäftigen!

schwa226 12. Jul 2009 19:49

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:
Function CreateToolBar(Sender : TObject) : Boolean;
var
ToolBarObject : TToolBar;
begin

  ToolBarObject := (Sender as TToolbar);
Aufgerufen wird es so:
Delphi-Quellcode:
CreateToolBar(Form4.Toolbar1);
Es gibt keinen Error, jedoch bleibt auch die Toolbar leer!?

Wie kann ich das Toolbar Objekt übergeben damit es geht ohne die Form4 in die Uses von der Unit aufnehmen zu müssen?

Andreas L. 12. Jul 2009 20:39

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:
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;
2. warum machst du das über eine lokale Variable?

Delphi-Quellcode:
procedure AddToolBarButton(var AToolbar: TToolbar);
var
  NewButton: TToolButton;
begin
  NewButton := TToolButton.Create(AToolbar);
  ...
  NewButton.Parent := AToolbar;
end;
EDIT: Verflixte Schlechtschreibung...

schwa226 13. Jul 2009 07:32

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!

turboPASCAL 13. Jul 2009 08:08

Re: Mehrere Icons nebeneinander darstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
// --- Easy - IconBar Version 1.0 by turboPASCAL --- //
;)

Andreas L. 13. Jul 2009 10:10

Re: Mehrere Icons nebeneinander darstellen
 
Zitat:

Zitat von schwa226
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!

Nein, die Toolbar stellt die Symbole in dem Format dar, welches du bei der ImageList mit Hight und Width eingestellt hast.

schwa226 13. Jul 2009 10:45

Re: Mehrere Icons nebeneinander darstellen
 
Danke @turboPASCAL!

Werd's mir ansehen!!

schwa226 16. Jul 2009 05:59

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:

turboPASCAL 16. Jul 2009 07:21

Re: Mehrere Icons nebeneinander darstellen
 
Zitat:

Zitat von schwa226
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.

Welche Message meinst du und was möchtest du mit Sendmessage weiterleiten ? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Seite 3 von 4     123 4      

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