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 virker helt fint hos meg. Det kan hende at funksjonen blir kalt 2 ganger. Du kan jo prøve å søke i unit'en(e) etter "InputBox", og fjerne de som kanskje ikke skal være dær. Hmm.. Nå kan jeg ikke mye med debuggeren, men kanskje det lar seg gjøre at debuggeren finner frem hvor funksjonen ble kalt fra.
-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



Glemte at skive at en Exit umiddelbart efter InputBox'en ikke løser problemet. Den kommer stadig frem to gange.

Hvis jeg stepper (F8) gennem den ellers simple procedure så køres procedures to gang.

Bobby2




Du kan jo også prøve å sette en breakpoint (F5) på linjen "InputBox" i prosedyren "RadioGroup1ContextPopup". Hvis debuggeren stopper programmet 2 ganger, kan det hende at enten et annet objekt har prosedyren "RadioGroup1ContextPopup" i en event. Du kan også prøve å søke i unit'en etter "RadioGroup1ContextPopup" og fjerne de som ikke skal være der. :) (altså hvis den blir kalt fra en annen funksjon)
-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



Hej DiZpel

Nej, desværre er der ikke to kald til RadioGroup1ContextPopup-proceduren. Ikke engang brug af InputBox-funktionen to gange i programmet.

Jo med en breakpoint (F5) og steppen frem (F8), så meget man nu kan med kun en linie i proceduren, køres den to gange.

Bobby2



Hmm.. Da vet jeg desverre ikke :(

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



Hej igen

Tja, nemt gennemskueligt er det ikke. Men det jeg kan se ved at arbejde videre med det er at der er underordnet om det er en InputBox, MessageDlg, eller f.eks. en Label.Caption, der tælles op. Det hele sker to gange per klik.

Dvs. nåk klik er inden for en af RadioButtons "fangområde." ALLE andre steder sker Event'en kun en gang.

Noget kunne tyde på at det at have en pop-up menu knyttet til en RadioGroup er en dårlig ide - selv om jeg vil mene at det er en bug.

Nogle som har en ide til fejlsporing?

Bobby2



Hmm.. Hvilken versjon av Delphi bruker du? Har du nyeste oppdatering til det?

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



Hej DiZpel

Jeg anvender D7Prof + 7.1 update-pakken.

Bobby2



Har du prøvd å benytte TPopupMenu.OnPopup i stedet for TRadioGroup.OnContextPopup?
-------------------------------------
I am AGAINST TCPA!!
[ http://www.againsttcpa.com/ ]
-------------------------------------
Mvh
DiZpel



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/ ]
-------------------------------------
Mvh
DiZpel

[Redigeret d. 17/01-05 16:41:07 af DiZpel]



<< < 12 > >>
t