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

Przypisanie zdarzenia istniejącego przycisku do nowego

2018-05-30 14:55

Rejestracja: 5 lat temu

Ostatnio: 2 lata temu

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

edytowany 2x, ostatnio: furious programming, 2018-05-30 15:00

Pozostało 580 znaków

2018-05-30 14:59
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Tuchów

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.


Pozostało 580 znaków

2018-05-30 15:04

Rejestracja: 5 lat temu

Ostatnio: 2 lata temu

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.

Pozostało 580 znaków

2018-05-30 15:06
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Tuchów

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.


edytowany 7x, ostatnio: furious programming, 2018-05-30 15:10
co do "prefiksu T" chyba dobrze byłoby doprecyzować - jest to zwyczajowo przyjęte, ale można przecież nazwać sobie zmienną TZmienna i z tego co wiem, nie będzie to żaden błąd. - cerrato 2018-05-30 15:16
Dlatego nie napisałem, że nie wolno z niego korzystać. Konwencja nazewnictwa przewiduje ten prefiks wyłącznie dla typów danych, a każdy piszący w Psacalu wie że tak jest i nie łamie tej zasady. Natomiast analiza kodu niezgodnego z tą konwencją to katorga, dlatego gorąco odradzam tego typu praktyk. - furious programming 2018-05-30 15:18
Moim zdaniem słowo "zarezerwowany" jest jednoznacznie zabraniające. Jak w restauracji masz na stoliku tabliczkę "zarezerwowany" to nie oznacza, że nie powinieneś tam siadać, ale że NIE WOLNO tego miejsca zajmować :P Inna sprawa, że dobrze jest się trzymać pewnych konwencji, ale nazwanie zmiennej na "T" nie jest przestępstwem, co najwyżej nietaktem. - cerrato 2018-05-30 17:00

Pozostało 580 znaków

2018-05-30 19:05

Rejestracja: 5 lat temu

Ostatnio: 17 godzin temu

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.

Pozostało 580 znaków

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