Przypisanie zdarzenia istniejącego przycisku do nowego

Przypisanie zdarzenia istniejącego przycisku do nowego

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

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

Kopiuj
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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
0

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

Kopiuj
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.

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.