16. oktober 2002 - 18:17Der er
14 kommentarer og 1 løsning
Fang museklik
Hej.
Er der en måde hvorpå jeg kan fange et museklik på min form, uanset om der er trykket på formen eller et på f.eks et panel eller lign på formen. Hvis jeg gør følgende fanger den nemlig ikke museklikket hvis der trykkes på et panel på formen
procedure TfrmProduktionsplan.FormClick(Sender: TObject); begin showmessage(sender.ClassName); end;
Det er fordi jeg skal finde ud af præscis hvilken knap af mange der er trykket på og kunne trække nogle opæysniger ud fra den og der skal være uden at knappen "finder ud af" at den bliver "overvåget", så jeg kan ikke sætte knappernes onclick event til noget. Håber du forstår.
procedure TfrmProduktionsplan.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if getactivewindow = handle then if Msg.message = WM_LBUTTONUP then begin showmessage('kost'); end; end;
det her er bæ kode!! Hvis du har et sart hjerte skal du stoppe med at læse nu!!
Men hvis der er en nemmere løsning som jeg ikke kan se ligenu så kom endelig med den :)
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var Point: TPoint; i: integer; whandle :Thandle; buf : array[0..255] of Char; begin if getactivewindow = handle then if Msg.message = WM_LBUTTONUP then begin GetCursorPos(Point); whandle := WindowFromPoint(Point);
GetClassName(whandle,@buf[0],sizeof(buf));
for I := 0 to ComponentCount - 1 do if strpas(buf) = Components[I].ClassName then if Components[I].ClassType = TButton then if TButton(Components[I]).Caption = 'Test' then TButton(Components[I]).Caption := 'Lort'; end; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.