焦点问题(100分)

  • 主题发起人 主题发起人 leoxi82
  • 开始时间 开始时间
L

leoxi82

Unregistered / Unconfirmed
GUEST, unregistred user!
请问,我在动态创建N个Btn,并对其中的一个进行拖动,如果我要操作其他BTN,如何获得其他BTN的焦点。我在进行拖动操作后, 程序就不能进行KEYDOWN里的操作,请问怎么解决!
拖动操作:
ReleaseCapture;
btn.Perform(wm_syscommand,$F012,0);
 
没高手帮忙吗?
 
在线等,高手快来
 
[:(]顶啊,等了这么久没人答吗?
 
动态创建N个Btn 有没有自己的事件(要自己写的)?
 
有啊,怎么获取这N个BTN中的随意一个的焦点啊
 
不清楚你的意思
怎么会没有焦点呢?
 
似乎没有问题啊:
procedure TForm1.btnMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
btn.Perform(wm_syscommand,$F012,0);
end;

procedure TForm1.btnKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var s:string;
begin
s:=inttostr(key);
showmessage(s);
end;
 
有焦点啊,不过焦点就一直停留在最后创建的哪个BTN上啊,想取其他的BTN都不行
 
恩,我找到KEY的问题了,拖动中,对回车和Cilck不做反映,好象拖动就默认已经cilck了
 
可不可以看看你是怎样自动创建这n个btn的呢?
又是怎样给它们写的事件?
还是看了代码才知道怎样解决.
 
try
i:=i+1;
btn:=TBitBtn.Create(Application);
btn.DragMode:=dmManual;
btn.OnMouseDown:=mousek;
btn.OnKeyDown:=KEY;
btn.Name:='Btn'+IntToStr(i);
btn.Parent:=Panel2;
except
end;
 
方法好象有问题:试一试这个呢
var
Btn :array [0..n] of TBitBtn

try
...
btn:=TBitBtn.Create(..);
btn.DragMode:=dmManual;
...
except
end;
 
[:D]解决,忘了用控件组,菜了点,谢谢了!
 
接受答案了.
 
后退
顶部