Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Korisnička kontrola - prosljeđivanje event-a

[es] :: Pascal / Delphi / Kylix :: Korisnička kontrola - prosljeđivanje event-a

[ Pregleda: 1516 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Korisnička kontrola - prosljeđivanje event-a02.05.2016. u 13:26 - pre 96 meseci
Moja kontrola je nasljednik tCustomButton-a
Na nju je stavljena tImage

Prosljedio sam OnClick i OnMouseDown sa tImage na tPanel, to radi, okinu se oba eventa gumba nakon pritiska na sliku isto kao da je pritisnuto na gumb.

Zanima me:
kako dobiti da se nakon pritiska miša na tImage sam gumb ponaša kao da je pritisnum miš na njemu, tj, da se promjeni slika kao kod Click-a na njega (dojam da je fizički gumb pritisnut te da je "upao")?
 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
*.dynamic.isp.telekom.rs.



+638 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a02.05.2016. u 15:10 - pre 96 meseci
Okini OnClick na tCustomButton na OnClick tImage -a.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a03.05.2016. u 07:38 - pre 96 meseci
OnClick je prosljeđen na tCustomButton i on se okine, ali vizualno se button ne "spusti" kad se na tImage pritisne mišem (onako kako se "spusti" kad se pritisne lijevom tipkum miša ba button i ostane "dolje" tako dugo dok se ne pusti tipka miša)

Znači, nije problem event. On se okine i obavi što treba, već izgled gumba pri pritisku na Image koji je na gumbu.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a03.05.2016. u 13:49 - pre 96 meseci
Dakle ti imas, sliku koja stoji u buttonu ali iznad njega?
Onda je najlakse da slika "propusti" klik do kontrole ispod (buttona). Umesto TImage, napravi i koristi novu kontrolu izvedenu iz nje, koja će samo handlovati WM_NCHITTEST poruku i vratiti HTTRANSPARENT kao rezultat.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a03.05.2016. u 13:55 - pre 96 meseci
Updejt, umesto WM_NCHITTEST možda ćeš morati da hendluješ CM_HITTEST poruku (isprobaj već koju dobijaš).
Alternativa za pravljenje izvedene image kontrole je da handluješ subclasuješ WindowProc i onda tako hendluješ te poruke.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.dsl.iskon.hr.



+4 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a04.05.2016. u 20:04 - pre 96 meseci
savkic, ovo nisam potpuno razumio.

Pokušaso sam sa prosljeđivanjem, na formi - lakše nego u kontroli na način:

- na formi su 2 gumba
- na gumbu Button1 koristim OnMouseDown i OnMouseUp

Code:

procedure TForm2.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   SendMessage(Button2.Handle, WM_LBUTTONDOWN, 10, 10);
end;

procedure TForm2.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   SendMessage(Button2.Handle, WM_LBUTTONUP, 10, 10);
end;


Kada prisnem lijevu tipku miša na Button1:
- Button2 dobije fokus
- okine se Button2.OnMouseDown

Button2 vizualno ne simulira MouseDown, tj. ne dobije izgled kao da je prisnut.


 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.dsl.iskon.hr.



+4 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a04.05.2016. u 20:19 - pre 96 meseci
Riješeno... možda nekome pomogne:

U kontrolu slike sam dodao:
Code:

..
     procedure CMHitTest(var Message: TCMHitTest); message CM_HITTEST;
..

procedure tMyImage.CMHitTest(var Message: TCMHitTest);
begin
   Message.Result := HTNOWHERE;
end;



Iskušao sam - radi. Pritisak na Image, simulira pritisak na button.

Jel OK ili treba drugačije?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Korisnička kontrola - prosljeđivanje event-a04.05.2016. u 20:41 - pre 96 meseci
> Iskušao sam - radi. Pritisak na Image, simulira pritisak na button.
> Jel OK ili treba drugačije?

To sam i imao na umu, s tim što bih ja stavio da vraća HTTRANSPARENT jer je tako prema dokumentaciji.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Korisnička kontrola - prosljeđivanje event-a

[ Pregleda: 1516 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.