RadioGroup OnContextPopup bug?

Tags:    delphi

<< < 12 > >>
Hej

I en ellers helt frisk Application har jeg lavet en RadioGroup og i Events har jeg lavet en OnContextPopup procedure. Indholdet kan ses her:

procedure TForm1.RadioGroup1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);

begin
InputBox('Overskriften','Her er ledetekst','og selve teksten');
end;

Problemet er, at når jeg højreklikker så kommer InputBox'en op to gange! Ikke en som ellers alle andre steder, eller hvis jeg f.eks. havde lavet en OnClick Event. Dette forstår jeg ganske enkelt ikke hvorfor sker? Det underlige er, at hvis jeg højreklikker på selve rammen i RadioGroup'en eller Caption'en så kommer InputBox'en kun en gang helt som forventet.

Det samme sker med en MessageDlg.

Er det en Property jeg ikke har sat eller...?

Bobby2



18 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det kan hende at du har enten har tildelt TPopupMenu.OnPopup prosedyren TRadioGroup.OnContextPopup, eller omvendt.
Da vil både TPopupMenu.OnPopup og TRadioGroup.OnContextPopup bli kjørt, dvs. det samme skjer 2 ganger.
-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Hej DiZpel

Nej, jeg har ikke testet for det. Men der er ingen rester af noget som helst andet, når jeg kan genskabe "problemet" i en 100% frisk Application, der kun indeholder en Form og en RadioBroup-komponent med et par Items.

Booby2





Kan ikke du lage et nytt prosjekt med problemet, og poste hele unit'en hær? Så kan jeg teste om jeg også får samme problem.
-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



Hej DiZpel

Jo, her kommer indholdet i uniten. For at nå dertil har jeg gjort følgede først:

1) Lavet en ny Application.
2) Placeret en RadioGroup
3) Valgt RadioGroup.Items
4) Fyldt tre strenge i .Items
5) Lavet en Event i ContextPopup
6) Lavet InputBox (men kunne have lavet meget andet)

Unit1.dfm koden her:
Fold kodeboks ind/udKode 


Unit1.pas koden her:
Fold kodeboks ind/udKode 


Bobby2



Mhm... Jeg får samme problem, men jeg skal prøve å finne en løsning på det :)

-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



Aha! Du må sette Handled til True. :)

Eksempel:
Fold kodeboks ind/udKode 


-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel

[Redigeret d. 18/01-05 15:10:57 af DiZpel]



Hej DiZpel

Ja, så virker det som forventet. Tak for hjælpen.

Men hvorfor skal Handled sætte True? Hvad gør Handled?

Bobby2



Jeg fant dette i hjelpefilen:
Fold kodeboks ind/udKode 

-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



Okay, poster igjen :)

Parent controls receive an OnContextPopup event before their child controls. In addition, for many child controls, the default window procedure causes the parent control to receive an OnContextPopup event after the child control. As a result, when parent controls do not set Handled to true in an OnContextPopup event handler, the event handler may be called multiple times for each context menu invocation.

-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



<< < 12 > >>
t