请问如何在form上绘图?(100分)

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

lxddd

Unregistered / Unconfirmed
GUEST, unregistred user!
不论使用何种方法,form上的图始终被TEdit,TMemo等遮挡。
如何才能让图像始终浮在最上面,且不影响操作?
 
你是用canvas画的吧?那个canvas是属于form的,而Tedit,Tmemo等在form
之上,当然也就在form之上。
 
用Panel加Image,同时还要对Panel写拖动代码,使它能放在窗口的随便哪一处地方。
 
有Canvas的元件都应该可以。常用的有Form、Image,PaintBox等,另外你还可以用TBitmap和TMetaFileCanvas作图,如果不像被别的元件或控件挡住,你应该对他们的位置进行设置
 
似乎也是不行的。
两个同志的回答是保证了使图像在控件上面。
但现在控件却被挡住了----这就影响了操作了。
 
哈哈,难道你是想。。。。
我似乎明白了你的意思。。。。
用SpeedButton控件,然后把其flat和transparent设为true,这样基本可完成按钮的功能
用Label控件,把transparent设为true,可以完成显示提示的功能
至于TEdit和TMemo会比较困难,需用到API或第三方控件,sorry,无法帮你,请
高手指点吧

祝你好运
 
直接再屏幕上(desktop)画, 保证你画的东西在最上面, 而且不影响其它操作。
可以在form的重画事件里写如下代码:
var
DC: HDC;
canv: TCanvas;
pt: TPoint;
begin
pt := point(0,0);
pt := clienttoscreen(pt);
dc := createdc('DISPLAY',nil,nil,nil);
offsetwindoworg(dc, pt.x, pt.y, nil);
intersectcliprect(dc, clientrect);
canv := TCanvas.Create;
Canv.Handle := dc;
// 作图
Canv.Handle := 0;
deletedc(dc);
end;
 
Pearl:不行,还是被挡住,和在form.canvas上画图差不多。顺便说一下,
有一句有语法错误。
 
如果你死活要用 TEdit、TMemo ,那就不要搞了,三个字:办不到。
 
真搞不明白你的意思了,你是不是想要透明的Edit与Memo等控件,
去搜索一个就好了。
 
有Canvas的元件都应该可以。常用的有Form、Image,PaintBox等,另外你还可以用TBitmap和TMetaFileCanvas作图,如果不像被别的元件或控件挡住,你应该对他们的位置进行设
这些差不多了吧,看看能绘出来吧。
 
曾经用过一个软件,整个form上是一幅半透明的图像,不论如何操作都不会破坏图像,form
上几乎所有控件都有:tlabel,tmemo,tedit,tcombobox,tbutton,据他所说是使用directx
技术,若是哪位高手能说明方法不胜感谢。
 
有一种画布类叫:TControlCanvas,在该画布上画的东东都是显示在最"上面"的,效果可以
见我以前写的一个模拟Delphi编辑期环境的Demo程序,该程序的功能:在运行期可以选择
控件,并在控件的四周出现八个黑点,可以用鼠标拖放这八个点来调整控件的大小, 按Shift+
鼠标左键多选,Ctrl+拖动鼠标左键画框(注意这里的画框,要求所画的虚框在所有控件的上面,
这个程序已经做到这一点了),将框中的所有控件选中。
下载地址:http://1000f.com/delphi/Select.zip
你可以对此程序进行稍加修改,应该可以满足你的要求。
 
没下文了?
 
wind2000:谢谢你的建议。不过程序运行时虚框还是会被破坏,比如说在一个TMemo里打字。
 
to wind2000:
请问你在该工程里用了一个什么控件,当我打开的时候错,也许是我的DELPHI没安装,你能不能告诉我
告诉我啊,EMAIL一下本人感激不尽sdenf@163.ne拜托
 
form1.Canvas.Pen.Color := clred;
form1.Canvas.Pen.Style := psDash;
form1.Canvas.Pen.Width := 1;
form1.Canvas.Pen.Mode := pmNotXor;
form1.Canvas.MoveTo(10,10);
form1.Canvas.LineTo(200,200);
给分把
 
老人家:没看清问题吧?
 
使用D6以上才能正常运行,没有第三方控件!
 
后退
顶部