Wątek przeniesiony 2018-05-30 13:00 z Delphi i Pascal przez furious programming.

Przypisanie zdarzenia istniejącego przycisku do nowego

0

Witam.
W oknie mam przycisk TBUTTON1. Do tego przycisku przypisana jest akcja onclick.
Jak mam zrobić by dla nowego przycisku przypisać właśnie akcję tego przycisku TBUTTON1.
Chciałem zrobić coś takiego:

Zapisz.onclick :=Tbutton(self.Findcomponent('TBUTTON1')).onclick;

NIestety przycisk "zapisz" jest, przyciskam go i ... nic się nie dzieje,a okno powinno się zamknąć tak jak po naciśnięciu TBUTTON1.
Co mam zrobić?
Dziękuję za każdą odpowiedź.
Pozdrawiam

0
Tarzan1984 napisał(a):

Jak mam zrobić by dla nowego przycisku przypisać właśnie akcję tego przycisku TBUTTON1.

W oknie Object Inspector przejdź do zakładki Events i dla nowego przycisku wybierz nazwę zdarzenia tego istniejącego. Zapisz zmiany, przekompiluj – gotowe.

0

Nie mam dostępu do Object Inspector bo nie robię tego w Lazarusie/Delphi tylko w wewnętrznym API i tutaj nie mam takiej możliwości.

1

W jakim „wewnętrznym API”? Napisz o co chodzi – pierwsze słyszę o czymś takim. Wewnętrznym API jest np. Windows API, ale Ty korzystasz z dobrodziejstw biblioteki komponentów.

Kod który testujesz jest prawidłowy składniowo, ale przycisk o nazwie TBUTTON1 może nie istnieć, przez co metoda FindComponent go nie znajdować. Poza tym – jesteś pewien, że ten szukany przycisk ma w ogóle przypisane jakieś zdarzenie? Nie chodziło przypadkiem o Button1? Prefiks T zarezerwowany jest dla nazw typów danych i nie używa się go do nazywania zmiennych.

0

A takie małe pytanie pomocnicze. Może w zdarzeniu OnClick jest badanie w stylu

if Sender = TBUTTON1
begin

end

Poza tym opis, że nic się nie dzieje jest słaby. Odpal debugger i zobacz czy coś jest podstawiane pod zdarzenie OnClick zobacz czy FindComponent z ogóle znajduje dany klawisz.

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