在service.applicatino建立数据库连接,操作数据库的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 hhjjhhjj
  • 开始时间 开始时间
H

hhjjhhjj

Unregistered / Unconfirmed
GUEST, unregistred user!
做了一个Service程序,在机器启动时执行,依赖MSSQLSERVER。
我想问怎样实现:
1:在程序执行时连接数据库(MSSQL),进行一些数据操作。我尝试过连接好了再安装服务,但总是连接失败。
2:怎样调试
 
如果在双击里边放上单击的代码,那么每一次点击都会是单击的效果。
 
加个全局变量(boolean)和timer
先判断是否执行
执行完了,改变变量
在timer里定时 恢复 变量
 
单击的时候
处理button的enabled为false
执行完毕恢复为ture
try
btn.enabled := false;
...
finally
btn.enabled := true;
end;
 
有个问题,单独几个到是好解决。
程序中有上1000个按钮,我想做好一个,其他的来继承?
 
如果做好一个继承就好办多了
还有,你想防止2次运行不应该是通过屏蔽双击,当然双击事件还是要屏蔽的....
重要是用laoyangzi的方法,执行完以前设置enabled:=false;
我代码里把这部分包括了
这样:
TNewButton = class(TButton)
private
procedure WndProc(var Message: TMessage); override;
protected
{ Protected declarations }
procedure SetEnabled(Value: Boolean); override;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Additional', [TNewButton]);
end;

procedure TNewButton.WndProc(var Message: TMessage);
begin
if not (csDesigning in ComponentState) then
case Message.Msg of
WM_LBUTTONDOWN:
begin
Enabled:=false;
inherited;
Enabled:=true;
end;
WM_LBUTTONDBLCLK:
Perform(WM_LBUTTONDOWN,Message.WParam,Message.LParam)
else
inherited ;
end;
else
inherited;
end;
end.
 
不大明白,是否可以说的清楚点?
 
........就是2个地方
1.防止代码没执行完的时候再点击按钮重复触发代码
解决方法,执行代码前设置enabled:=false,这样可以在enabled:=true以前屏蔽所有鼠标点击消息

2.防止2次点击时间过短触发双击消息
解决方法,修改WndProc方法截获双击消息改发单击消息
 
hs-kill:
你可不可一把完整的代码贴出来?
 
??? 我上面不是贴了? 那个就是完整的代码啊
 
多人接受答案了。
 
后退
顶部