高手请进有关TDBEdit(50分)

  • 主题发起人 主题发起人 icoy
  • 开始时间 开始时间
I

icoy

Unregistered / Unconfirmed
GUEST, unregistred user!
1、请问如何让一个控件失去焦点?

2、当Dataset处于Browse、DataSource的AutoEdit处于False的时候,
为什么我的DBEdit有的无法修改有的可以修改?我发现如果在相对应的
TField里设置了EditMask,就无法修改,其他可以修改。
请问如何禁止修改?
 
>>1、请问如何让一个控件失去焦点?
把焦点移到下一控件(handle为控件所在窗体的句柄)
SendMessage(Handle, wm_NextDlgCtl, 0, 0);
把焦点移到上一控件
SendMessage(Handle, wm_NextDlgCtl, 1, 0);
 
readonly:=true
 
谢谢Victorrim,
但是cubel,你说的是哪一个Readonly?
如果是TDBEdit的话,那么几十个TDBedit,我怎么设置呀?
应该不用自己一个一个设置的吧?
 
我专门写过一个过程用于处理运行时enable/disable一批DataControls

uses typinfo; //Delphi 5

procedure SetDBControls(CtlEnabled:Boolean;wParent:TWincontrol;dsParent:TDataSource);
var
i:Smallint;
begin
for i:= 0 to wParent.ControlCount-1 do
if (GetPropInfo(wParent.Controls.ClassInfo, 'DataSource') = nil) then
continue
else
if (GetObjectProp(wParent.Controls,'DataSource') as TDataSource).Name=dsParent.Name then
wParent.Controls.Enabled:=CtlEnabled;
end;

各个参数我想很明白了,如果要使用ReadOnly,需要Cast一下:
TDBEdit(wParent.Controls).ReadOnLy:=CtlEnabled
但这样就处理不了非dbedit,不太通用了,你自己取舍吧!
 
多人接受答案了。
 
后退
顶部