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?
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
Dobrze mnie zrozumiałeś. Ale wiem o tym co napisałem. Chciałbym przypisać 2 procedury onClick do jednego buttona. Da się tak??
Nie.
Dzięki o to mi chodziło, Muszę użyć tag albo sender.
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
Wiem, że tak można. Ale ja chcę w pierwszej procedurze przypisać numer buttona.
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
moze ten numer powinien byc w OnCreate ?
Wykorzystaj pole Tag bo po to jest. Dodatkowo zrób przypisanie w OnCreate.
Numer jest to po, żebym wiedział, który przycisk użytkownik kliknął.
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
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.
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
Tak właśnie chce zrobić. Myślałem też nad tagiem, ale większe prawdopodobieństwo, że coś pójdzie nie tak