開発環境:Delphi7
OS:WinXp
表題の件ですが、RadioGroupをキー入力によって以下のような
動作を起こさせたいのです。
RadioGroupフォーカス取得時に
0入力でitemIndex = 0のitemをチェック
1入力でitemIndex = 1のitemをチェック
・・・
9入力でitemIndex = 9のitemをチェック
N入力でitemIndex = -1にする(非選択状態)
Enterを力で次のコントロールにFocus移動
RadioGroupにKeypressイベントがないので
プログラムの作成にいきづまっています。
なにかわかれば幸いです。
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;
のどちらか?
TRadioGroup = class(ExtCtrls.TRadioGroup)
published
property OnKeyPress;
end;
はどこに記述すればいいのでしょうか
TRadioGroup = class(ExtCtrls.TRadioGroup)
published
property OnKeyPress;
end;
はどこに記述すればいいのでしょうか
TForm4 = class(TForm)
の上かな
ありがとうございました
なんとかなりそうです。
ツイート | ![]() |