Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
02.09.2010, 21:41:30
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Allgemeines Forum
| | |-+  Dynamische Button vs. dynamisches Popup
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Dynamische Button vs. dynamisches Popup  (Gelesen 737 mal)
BorB
Newbie
*
Offline Offline

Beiträge: 14



« am: 23.02.2010, 11:47:18 »

Hallo,

ich lasse mir in meiner Form aus einer Textdatei eine variable Anzahl an Buttons erzeugen, denen ich eine Onclick-Ereignis zuordne:

Code:
procedure TForm1.BitBtnClick(Sender: TObject);
  var i:integer;
begin
   for i:=0 to current do
     if sender = TButton(FindComponent('MyOwnButton' + IntToStr(i))) then
     Begin
     //mach dies und das..
     End;
end;

Das funktioniert auch sehr schön.

Im eigentlich "Create" der Buttons weise ich den Buttons noch das gleiche PopUpMenu zu.

Code:
   MyButtons.name := 'MyOwnButton'+inttostr(RechnerIndex);
    MyButtons.OnClick := Form1.BitBtnClick;
    MyButtons.PopupMenu := Form1.ButtonMenu;

Jetzt will ich auf dieses Popupmenu je nach gedrücktem Button reagieren.
Woher weiß ich, welcher Button das Menu "aufgerufen" hat, da ja der Sender in der Ereignisroutine des PopUpMenu ein "Menus" ist?

Da funktioniert die Abfrage per .... "if Sender = TButton.... ja nicht.

Ich stehe irgendwie auf dem Schlauch.

EDIT: beholfen habe ich mich nem kleinen "Trick": Ich verwende nun das Ereignis
Code:
OnMouseEnter
der Buttons um diese zu identifizieren. Aber das muss doch auch anders gehen?!?
« Letzte Änderung: 23.02.2010, 13:18:46 von BorB » Gespeichert
grenzgaenger
Global Moderator
Full Member
*****
Offline Offline

Beiträge: 226


« Antworten #1 am: 23.02.2010, 23:47:11 »

Schau dir mal die TAG Eigenschaft an. Die ist in jeder Komponente enthalten und genau für solche Fälle gedacht.

<HTH> GG
Gespeichert
BorB
Newbie
*
Offline Offline

Beiträge: 14



« Antworten #2 am: 27.02.2010, 11:08:36 »

Danke erstmal,

aber ich habs mit der Tag nicht hinbekommen, da die ja auch immer wieder dynamisch bleibt.
Ich lasse es jetzt im OnMouseEnter so stehen.
Das ist wohl die einfachste Variante.
Gespeichert
Elias Zurschmiede
Global Moderator
Sr. Member
*****
Offline Offline

Beiträge: 404



WWW
« Antworten #3 am: 02.03.2010, 12:57:09 »

Dazu gibt es die TPopupMenu.PopupComponent Eigenschaft

Siehe OH:
Zitat
Mit Hilfe von PopupComponent lässt sich feststellen, welches Steuerelement das Popup-Menü aktuell benutzt. In Anwendungen, in denen ein Popup-Menü von mehreren Steuerelementen gemeinsam genutzt wird, kann mit PopupComponent ermittelt werden, welches Steuerelement das Menü angezeigt hat.

Durch Setzen von PopupComponent können Sie ein Steuerelement mit dem Popup-Menü verbinden, bevor dieses im Programmcode durch einen Aufruf der Methode Popup aktiviert wird. 
Gespeichert

delight software gmbh
http://www.delight.ch
BorB
Newbie
*
Offline Offline

Beiträge: 14



« Antworten #4 am: 05.03.2010, 14:07:17 »

Danke,

werde mir das anschauen.
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS