写了一个自定义函数功能为程序运行时用鼠标移动控件的如下所是
procedure ManipulateControl(Control: TControl; Shift: TShiftState;
X, Y, Precision: integer);
begin
//光标在控件的客户区(移动整个控件)******************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (X>5) and (Y>5) and (X<Control.Width-5) and (Y<Control.Height-5)
then begin
SC_MANIPULATE := $F009;
Control.Cursor := crSizeAll;
end
else begin
SC_MANIPULATE := $F000;
Control.Cursor := crDefault;
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if Shift=[ssLeft] then
begin
ReleaseCapture;
Control.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
end;
end;
1)小弟在程序运行时动态生成数十个StringGrid控件要模仿Visio用于工作流定义请问ManipulateControl函数怎样和StringGrid的onMouseMove事件绑定。2)小弟用canvas.moveto和canvas.Lineto画在StringGrid间的连线被拖动时经过的StrigGrid擦除,经过后重绘太耗资源。有没有别的画线函数解决问题。谢谢
procedure ManipulateControl(Control: TControl; Shift: TShiftState;
X, Y, Precision: integer);
begin
//光标在控件的客户区(移动整个控件)******************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (X>5) and (Y>5) and (X<Control.Width-5) and (Y<Control.Height-5)
then begin
SC_MANIPULATE := $F009;
Control.Cursor := crSizeAll;
end
else begin
SC_MANIPULATE := $F000;
Control.Cursor := crDefault;
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if Shift=[ssLeft] then
begin
ReleaseCapture;
Control.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
end;
end;
1)小弟在程序运行时动态生成数十个StringGrid控件要模仿Visio用于工作流定义请问ManipulateControl函数怎样和StringGrid的onMouseMove事件绑定。2)小弟用canvas.moveto和canvas.Lineto画在StringGrid间的连线被拖动时经过的StrigGrid擦除,经过后重绘太耗资源。有没有别的画线函数解决问题。谢谢
解决方案 »
- 下了d2007,安装需要组件正常,提示过了许可协议后,下一步就提示序列号错误,无法继续安装。。。。。。???
- postren请再看过来,接(Indy /如何只用TIdUDPServer实现数据的发送和接受)这个问题,
- ftp小问题。
- [诚求动作-Delphi]怎么样获取鼠标在ListView上点击后的坐标!??
- ▲★★★★▲如何让MediaPlayer循环播放呀!!急
- ScrollBox的滚动条问题
- 在线求救!!!!帮帮我呀!
- 寻找兄弟....海军兄...(请版主别删啦..)
- 把一千个苹果放到10个箱子中怎么放?
- DataBase在NT Service程序怎么用?要多少分我给多少分!
- 用delphi的兄第快来帮忙。小弟在线等待。分不够还可以加感谢!!!
- 怎样实现Ora8i net easy config中测试用户连接的功能呢?急!
X, Y, Precision: integer);
把这个申明成TForm1的private过程。
然后用StringGrid.OnMouseMove := ManipulateControl;就行了。