Einzelnen Beitrag anzeigen

RaSoWa1

Registriert seit: 1. Jun 2006
Ort: Halle/Saale
140 Beiträge
 
Delphi 2010 Professional
 
#1

Klick auf TRadioGroup zur Laufzeit erzeugen

  Alt 16. Dez 2009, 14:20
Hallo,

ich habe ein Formular mit mehreren Komponenten (TEdit, TButton, TCheckBox, TRadioGroup, ...).
Wenn der Nutzer die Eingabe in einem Edit-Feld beendet hat und z.B. auf eine andere Komponente klickt, werte ich im OnExit-Ereignis die Eingabe aus und verlange ggf. in einem zur Laufzeit erzeugtem Formular noch eine ergänzende Eingabe. Nach dieser zusätzlichen Eingabe hat aber die Edit-Komponente wieder den Focus.
Ich möchte aber, dass nach der zusätzlichen Eingabe, der vorher getätigte Klick unmittelbar ausgeführt wird.
dazu verwende ich folgenden Code:
Delphi-Quellcode:
procedure TFmEdit_PrSch.EditVkExit(Sender: TObject);
var ac : TControl;
begin
  ac := ActiveControl;
  EditVk.Text := FormatVk(EditVk.Text);
  if ChangeMod and (Artikel <> nil) then
    SaveArtikelDaten; // hier erfolgt ggf. die Zusatzabfrage
  TWinControl(ac).SetFocus;
  if ac is TButton then
    TButton(ac).OnClick(ac)
  else
    if ac is TCheckBox then
      TCheckBox(ac).OnClick(ac)
// else
// if ac is TGroupButton then
// TGroupButton(ac).OnClick(nil);
end;
Es funktioniert mit allen Komponenten, außer TRadioGroup!?
Der Classname von ActiveControl ist nach einem Klick auf die TRadioGroup-Komponente: TGroupButton.
TGroupButton ist aber in der Unit ExtCtrls nicht im Interface-Teil deklariert, deshalb im Code auskommentiert.
Irgendwie stehe ich da z.Z. auf dem Schlauch und weiß im Moment nicht wie ich da runter komme.

Hat jemand eine Idee? Wie kann ich den Klick auf die Radiokomponete ausführen?

Ich hoffe ihr könnt mir auch diesmal helfen.

Gruß Klaus
Klaus
  Mit Zitat antworten Zitat