Przypisanie 2 procedur do 1 butona

0

Witam, mam program, w którym dynamicznie tworzę i usuwam buttony i pytanie, czy można do tych buttonów przypisać 2 procedury. Jedna robi coś porządnego, a druga przypisuje numer buttona. Da się tak zrobić, czy muszę skorzystać np.: z właściwości tag?

0
krzysztof1991 napisał(a)

Witam, mam program, w którym dynamicznie tworzę i usuwam buttony i pytanie, czy można do tych buttonów przypisać 2 procedury. Jedna robi coś porządnego, a druga przypisuje numer buttona. Da się tak zrobić, czy muszę skorzystać np.: z właściwości tag?

Jak dla mnie to nieprecyzyjnie sie wyraziles, albo ja juz mam problemy z kumacją.

W każdym razie, jak za każdym razem jak tworzysz button'a to możesz do zdarzenia OnClick przypisać co tylko chcesz. Chyba że chcesz jakoś rozpoznawać który button wciśnięto -> użyj parametru tej procedury o nazwie Sender, np If TButton(Sender).Name = btn1 then coś tam, albo jak chcesz to wyciąg sobie w ten sposób także i Tag: TButton(Sender).Tag itd itp

0

Dobrze mnie zrozumiałeś. Ale wiem o tym co napisałem. Chciałbym przypisać 2 procedury onClick do jednego buttona. Da się tak??

0

Nie.

0

Dzięki o to mi chodziło, Muszę użyć tag albo sender.

0

Hallo!

krzysztof1991 napisał(a)

Dobrze mnie zrozumiałeś. Ale wiem o tym co napisałem. Chciałbym przypisać 2 procedury onClick do jednego buttona. Da się tak??

Moze w ten sposob:

OnClick -> wywolanie Procedury1

Prozedura 1
{
...
Kod Procerdury 1
...
Wywolanie Procedury2
...
}

Prozedura 2
{
...
Kod Procerdury 2
...
}

Mysle, ze w ten sposob uzyskasz zamierzony efekt.

Pozdrawiam
Markus

0

Wiem, że tak można. Ale ja chcę w pierwszej procedurze przypisać numer buttona.

0

Hallo!

krzysztof1991 napisał(a)

Wiem, że tak można. Ale ja chcę w pierwszej procedurze przypisać numer buttona.

Do czego ma sluzyc ten numer?

Pozdrawiam
Markus

0

moze ten numer powinien byc w OnCreate ?

0

Wykorzystaj pole Tag bo po to jest. Dodatkowo zrób przypisanie w OnCreate.

0

Numer jest to po, żebym wiedział, który przycisk użytkownik kliknął.

0

Hallo!

Mysle, ze sie nie pomyle jak powiem, ze normalnie kazdy objekt identifikuje sie przez jego nazwe: wlasnosc "Name". Kazdy przez Ciebie utworzony przycisk musi miec jednoznacza nazwe, ktora mozesz nadac (tak jak to juz tutaj wspomiano) w metodzie "OnCreate". Dlatego mysle, ze juz niepotrzebne jest dodatkowe ich identyfikowanie przez wlasnosc "Tag". Wydaje mi sie , ze byloby to troche "maslo maslane". Ale na upartego mozna i tak.

Pozdrawiam
Markus

0

Tak, ale do każdego buttona chcę przypisać tę samą procedurę, która w zależności, który przycisk został kliknięty, będzie robiła inne rzeczy.

0

Hallo krzysztof 1991!

Moja propozycja (pseudo code):

procedure TForm1.ClickAllButtons(Sender: TObject);
begin
   ...

   if (TButton(Sender).Name = 'Button1') then
   begin
      ...
      zrob cos
      ...
   end
   else if (TButton(Sender).Name = 'Button2') then
   begin
      ...
      zrob cos innego
      ...
   end
   else if (TButton(Sender).Name = 'Button3') then
   begin
      ...
      zrob jeszcze cos innego
      ...
   end;

   ...
end;

Pozdrawiam
Markus

0

Tak właśnie chce zrobić. Myślałem też nad tagiem, ale większe prawdopodobieństwo, że coś pójdzie nie tak

1 użytkowników online, w tym zalogowanych: 0, gości: 1