有用啊? procedure TForm1.Button1Click(Sender: TObject); begin //RadioGroup1.ItemIndex :=1; RadioGroup1.SetFocus ;//这一句注释掉,结果不同 if RadioGroup1.Focused then Button1.Caption :='asdasd'; end;
楼主好象是要在EDIT的EXIT事件里面判断 那就不一样了
if ActiveControl=RadioGroup1 then showmessage('dd');
procedure TForm1.Edit1Exit(Sender: TObject); var i : integer; k : integer; begin K:=edit1.TabOrder; for i:=0 to Form1.ComponentCount-1 do begin if (Form1.Components[i] is TRadioGroup) and (k=(Form1.Components[i] as TRadioGroup).TabOrder-1) then //如果edit1的TabOrder最大而RadioGroup的TabOrder最小分一种情况讨论 ..... end;end;
To: cdsgajxlp(新手) 你的代码好像是判断Tab键顺序的吧,偶没太看懂偶只是想判断Edit的下一个焦点是否为RadioGroup,并不一定要用Tab键啊,如果用鼠标单击呢。 各位给出出主意呵
RadioGroup本身不接收焦点, var I: Integer; B: Boolean; begin for I := 0 to RadioGroup1.ComponentCount-1 do with RadioGroup1, TRadioButton(Components[I]) do begin B := Focused; if B then Break; end; end;———————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 ————————————————————————————————————
procedure TForm1.Button1Click(Sender: TObject);
begin
//RadioGroup1.ItemIndex :=1;
RadioGroup1.SetFocus ;//这一句注释掉,结果不同
if RadioGroup1.Focused then
Button1.Caption :='asdasd';
end;
那就不一样了
showmessage('dd');
这个方法不成啊,偶也试过
var
i : integer;
k : integer;
begin
K:=edit1.TabOrder;
for i:=0 to Form1.ComponentCount-1 do
begin
if (Form1.Components[i] is TRadioGroup)
and (k=(Form1.Components[i] as TRadioGroup).TabOrder-1) then
//如果edit1的TabOrder最大而RadioGroup的TabOrder最小分一种情况讨论
.....
end;end;
各位给出出主意呵
var
I: Integer;
B: Boolean;
begin
for I := 0 to RadioGroup1.ComponentCount-1 do
with RadioGroup1, TRadioButton(Components[I]) do
begin
B := Focused;
if B then Break;
end;
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————