怎样能使在FORM上绘制的图形不被TWINCONTROL覆盖呢?(200分)

  • 主题发起人 主题发起人 archi
  • 开始时间 开始时间
A

archi

Unregistered / Unconfirmed
GUEST, unregistred user!
[?] 在FORM上绘制TSHAPE控件或TIMAGE控件或直接画的图形会被TWINCONTROL类的控件
(如TEDIT控件)遮挡住,怎样能使绘制的图形不被覆盖呢?
在DELPHI的IDE中,当用鼠标拖动一个控件会产生一个虚框跟随鼠标移动,我也想
做出这样的效果。但我做的虚框会被其它控件挡住,哪位大虾可以解决这个问题?
所有银子(200分)奉上!
 
demo目录下有spliter的例子。。你可以看一看,好象可以解决拖动的问题~~
第一个问题,我在出差,没有delphi,所以没办法实验
 
你的虚框一定要做成TWinControl才行
 
spliter 对我有些启示,但还未完全试成功。
可是怎样能使TWinControl透明呢?
 
控件移动的几种方法鼠标移动控件(同样可以用于Form)
1、2只适用于TWinControl对象

1。在MouseDown 中使用,屏蔽了OnCLICK事件

if Button=mbLeft then
begin
ReleaseCapture;
button1.perform(WM_SysCommand, $F012, 0);
end;

2。在MouseMove中使用,可以正常的使用OnClick时间

ReleaseCapture;
button1.perform(WM_SysCommand, $F012, 0);

3.(1)在Pravide中定义两个变量OldX,OldY:integer;
(2)在MouseDown中赋值OldX:=x;OldY:=y;
(3)在MouseMove中Left:=Left+(X-OldX);Top:=Top+(Y-OldY);

4.改变孔件大小
SendMessage(panel1.Handle,WM_LBUTTONUP,0,0);
SendMessage(panel1.Handle,WM_NCLBUTTONDOWN,HTBOTTOMRIGHT,0);
 
多人接受答案了。
 
后退
顶部