AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ereignisse mehrer Controls in einem zusammenfassen?
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignisse mehrer Controls in einem zusammenfassen?

Ein Thema von ChEeTaH · begonnen am 5. Dez 2009 · letzter Beitrag vom 5. Dez 2009
Antwort Antwort
ChEeTaH

Registriert seit: 12. Jan 2009
49 Beiträge
 
Delphi XE2 Architect
 
#1

Ereignisse mehrer Controls in einem zusammenfassen?

  Alt 5. Dez 2009, 14:06
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?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Ereignisse mehrer Controls in einem zusammenfassen?

  Alt 5. Dez 2009, 15:18
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;
fork me on Github
  Mit Zitat antworten Zitat
ChEeTaH

Registriert seit: 12. Jan 2009
49 Beiträge
 
Delphi XE2 Architect
 
#3

Re: Ereignisse mehrer Controls in einem zusammenfassen?

  Alt 5. Dez 2009, 15:33
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.
Miniaturansicht angehängter Grafiken
so_siehts_aus2_174.png   so_siehts_aus1_556.png  
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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