Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ereignisse mehrer Controls in einem zusammenfassen? (https://www.delphipraxis.net/144331-ereignisse-mehrer-controls-einem-zusammenfassen.html)

ChEeTaH 5. Dez 2009 13:06


Ereignisse mehrer Controls in einem zusammenfassen?
 
Seid gegrüßt DP'ler ;)

Wie kann ich beim TbsSkinButtonsBar (AlmDev.com) die Ereignisse der einzelnen Items (TbsButtonBarItem) mit einer Schleife oder function abfragen?

Standardmäßig wird das so gelöst:
Jedes Item hat eigene Events. Bsp.:
Item1.Onclick
Item2.OnClick
...

Das ist mir zu aufwändig und möchte das in dieser Art lösen:
ItemIndex = Nummer des aktuell aufgerufenen Items

Delphi-Quellcode:
procedure ItemsClick(ItemIndex:Integer)
begin
   Notebook.Pageindex := ItemIndex;
end;
Verständlich?

Es gibt leider kein übergeordnetes Ereignis, bei dem ich alle ansprechen könnte.

Wie löse ich so etwas am einfachsten?

sx2008 5. Dez 2009 14:18

Re: Ereignisse mehrer Controls in einem zusammenfassen?
 
Mehrere Events (mit gleicher Signatur) können doch einen Eventhandler benützen.
Dazu kommt noch ein Trick.
Das Property Tag wird im Objektinspektor auf den Wert gesetzt, den beim Klicken der Pageindex annehmen soll.
Delphi-Quellcode:
procedure TForm1.SkinButtonClicked(Sender:TObject);
begin
   Notebook.Pageindex := (Sender as TControl).Tag;
end;

ChEeTaH 5. Dez 2009 14:33

Re: Ereignisse mehrer Controls in einem zusammenfassen?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi danke für die Antwort.
Es gibt kein Event namens "Clicked".
Ich habe schon alles mögliche durchprobiert, aber es gibt kein "übergeordnetes" Event, dass alle Klicks abdeckt.
Es gibt ein Event, das aufgerufen wird, wenn man auf eine Section klickt und ein wenn man auf ein item klickt.

In der .chm steht folgendes:

Zitat:

TbsSkinButtonsBar
Unit
bsSkinCtrls

TbsSkinButtonsBar = class(TbsSkinPanel)

Description
Panel with buttons in sections

Properties
Name Type Description
Sections TbsButtonBarSections = class(TCollection) Sections collection
SectionIndex Integer Index of current active section
SectionImages TImageList Images of section-buttons
ItemImages TImageList Images in section-items
SectionButtonSkinDataName String skindataname property of section-button
ItemsTransparent Boolean If TRUE then items are transparent
ItemHeight Integer Height of item
DefaultSectionFont TFont Default font of section-button
DefaultItemFont TFont Default font of item

TbsButtonBarItem = class(TCollectionItem)

Properties
Name Type Description
ImageIndex Integer Index of image
Text String caption of item

Events
Name Type Description
OnClick TNotifyEvent event on item click


TbsButtonBarSection = class(TCollectionItem)

Properties
Name Type Description
ImageIndex Integer Index of image
Text String caption of item
Items TbsButtonBarItems = class(TCollection) Collection of TbsButtonBarItem

Events
Name Type Description
OnClick TNotifyEvent event on section-button click
Den Tag muss ich nicht setzen, da der ItemIndex mit dem des Notebooks übereinstimmt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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