RadioGroupにKeyPressイベントを発生させたい

解決


見ざる聞かざる土居まさる  2008-06-25 15:03:48  No: 31059  IP: 192.*.*.*

開発環境:Delphi7
OS:WinXp

表題の件ですが、RadioGroupをキー入力によって以下のような
動作を起こさせたいのです。
  RadioGroupフォーカス取得時に
    0入力でitemIndex = 0のitemをチェック
    1入力でitemIndex = 1のitemをチェック
       ・・・
    9入力でitemIndex = 9のitemをチェック
    N入力でitemIndex = -1にする(非選択状態)
    Enterを力で次のコントロールにFocus移動
RadioGroupにKeypressイベントがないので
プログラムの作成にいきづまっています。
なにかわかれば幸いです。

編集 削除
KHE00221  2008-06-25 16:05:31  No: 31060  IP: 192.*.*.*

TRadioGroup = class(ExtCtrls.TRadioGroup)
  published
    property OnKeyPress;
  end;

procedure TForm4.FormCreate(Sender: TObject);
begin
    RadioGroup1.OnKeyPress := RadioGroupKeyPress;
end;

procedure TForm4.RadioGroupKeyPress(Sender: TObject; var Key: Char);
begin
    RadioGroup1.Buttons[Ord(Key)-49].Checked := True;

end;

---------------------------------------------------------------

procedure TForm4.FormCreate(Sender: TObject);
begin
    KeyPreview := True;
end;

procedure TForm4.FormKeyPress(Sender: TObject; var Key: Char);
var
    I: Integer;
begin
    for I:=0 to RadioGroup1.Items.Count -1 do
    begin
      if RadioGroup1.Buttons[I].Focused = True then
      begin
        RadioGroup1.Buttons[Ord(Key)-49].Checked := True;
      end;
    end;
end;

のどちらか?

編集 削除
見ざる聞かざる土居まさる  2008-06-26 15:04:46  No: 31061  IP: 192.*.*.*

TRadioGroup = class(ExtCtrls.TRadioGroup)
  published
    property OnKeyPress;
  end;
はどこに記述すればいいのでしょうか

編集 削除
見ざる聞かざる土居まさる  2008-06-26 15:04:46  No: 31062  IP: 192.*.*.*

TRadioGroup = class(ExtCtrls.TRadioGroup)
  published
    property OnKeyPress;
  end;
はどこに記述すればいいのでしょうか

編集 削除
KHE00221  2008-06-26 23:28:27  No: 31063  IP: 192.*.*.*

TForm4 = class(TForm) 

の上かな

編集 削除
見ざる聞かざる土居まさる  2008-06-27 14:36:54  No: 31064  IP: 192.*.*.*

ありがとうございました
なんとかなりそうです。

編集 削除