Przypisanie 2 procedur do 1 butona

Przypisanie 2 procedur do 1 butona
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
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?

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

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

Bula
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 263
0

Nie.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

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

MarkusB
  • Rejestracja: dni
  • Ostatnio: dni
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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

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

MarkusB
  • Rejestracja: dni
  • Ostatnio: dni
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

Endrju
  • Rejestracja: dni
  • Ostatnio: dni
0

moze ten numer powinien byc w OnCreate ?

Oleksy_Adam
  • Rejestracja: dni
  • Ostatnio: dni
0

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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

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

MarkusB
  • Rejestracja: dni
  • Ostatnio: dni
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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
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.

MarkusB
  • Rejestracja: dni
  • Ostatnio: dni
0

Hallo krzysztof 1991!

Moja propozycja (pseudo code):

Kopiuj
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

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.