[Delphi] Event Form1 dla wszystkich komponentów - jak zrobić


(Kamil321) #1

Czy da się zrobić coś takiego: wrzucam coś do onclicka Form1 (np. wyświetlenie komunikatu) i w który komponent na formie bym nie kliknął - i tak wyświetli komunikat?


(Krzkaczor) #2

Tak oczywiście.

application.messagebox(); - to do wyświetlania komunikatów

i

nazwakontrolki.visible = false; - to do ukrywania kontrolki


(system) #3

Albo podpiąć onclick wszystkich komponentów pod ten sam Form1Click(), albo przechwycić zdarzenie aplikacji MouseDown.


(Kamil321) #4

@13tySmok: Mógłbyś raz w życiu napisać coś łopatologicznie? Ja dopiero zaczynam zabawę z delphi ^^. Podpiąć pod ten onclick nie mogę, bo niektóre z komponentów nie mają onclicka (np. twebbrowser). I właśnie głównie chodzi mi o takie oporne komponenty, które nie posiadają zdarzenia, które by się chciało podpiąć. I nie za bardzo wiem o co chodzi w tym: "przechwycić zdarzenie aplikacji MouseDown"...

@SyntaxError: A co ma mi to niby dać? Wiem czym wyświetlić okienko :lol: ale po co mi ukrywanie kontrolek? Ja chcę wszystko robić na "widzialnych" kontrolkach :lol:


(system) #5

Zbyt skomplikowane na łopatologię. :lol:

Zainstaluj bibliotekę RX i użyj TRxWindowHook:

procedure TForm1.RxWindowHook1BeforeMessage(Sender: TObject; var Msg: TMessage; var Handled: Boolean);

begin

  if Msg.Msg=WM_MOUSEMOVE then Caption:='Move'

  else if Msg.Msg=WM_LBUTTONDOWN then Caption:='Click';

end;