Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TRadioGroup klickt falsch

  Alt 31. Jan 2007, 00:01
So, ich habe einiges versucht und wenig herausgefunden:

Zuerst habe ich ermittelt, welche Botschaften meine Kompo erhält. Die sind aber nicht signifikant anders, wenn die "problematische Öffnung" des Formulars erfolgt.
Delphi-Quellcode:
procedure TDBRadioGroupSql.WndProc(var Message: TMessage);
begin
  info('Message.Msg='+IntToStr(Message.Msg)+' ('+IntToHex(Message.Msg,4)+')');
Dann habe ich die Unit ExtCtrls in mein Projekt als XxxExtCtrls kopiert und den Quelltext debugt. Das half nur etwas.
Ich habe zumindest festgestellt, dass UpdateButtons durch die GroupButton selbst "provoziert" wird
Delphi-Quellcode:
procedure TGroupButton.CNCommand(var Message: TWMCommand);
begin
  if not FInClick then
  begin
    FInClick := True;
    try
      if ((Message.NotifyCode = BN_CLICKED) or
        (Message.NotifyCode = BN_DOUBLECLICKED)) and
        TCustomRadioGroupXxx(Parent).CanModify then
        inherited;
    except
      Application.HandleException(Self);
    end;
    FInClick := False;
  end;
end;
Aber die Ereignisbehandlung auch noch zu kontrollieren und alles neu abzuleiten ist ja auch nicht praktikabel.

Fazit:
- TRadioGroup ist nicht gerade sauber programmiert (Click heißt eben für mich Clickl!)
- Meine Kompo wird mit einer kleinen Besonderheit zu behandeln sein, wenn man sie in ein- und ausblendbaren Formularen einsetzt (Ist aber nicht meine Schuld!!! )

Stahli

@raiguen: Danke für Deinen Hinweis. Dazu muss man aber eben in jeder Anwendung wieder etwas im Formular beachten, was ich gern vermeiden wollte. Das geringste Übel ist wohl, bei der Formaktivierung den Fokus auf eine unproblematische Komponennte zu setzen... Dann Klickt TRadioGroup nicht mehr sinnlos herum.
  Mit Zitat antworten Zitat