我做了一个小软件。在主窗体中创建了一个panel控件,然后在panel控件上动态添加了十个Image控件(这十个Image控件都有拖放功能)和一个label控件,并且label控件的长宽和panel一样大。我用了
label1.Canvas.MoveTo(a,b);
label1.Canvas.LineTo(c,d);来画线。(画线是用于连接这些Image的)现在问题就在于画完线后,我打开其他的窗体后,打开的窗体(打开的窗体是最大化)就覆盖了画的那些线后,我关闭后这些线就被抹掉了。我想抹掉后,我再画一次就可以拉,所以写了一个画线的过程,然后我在每个窗体的“关闭”按钮中都调用这个过程。从而达到被抹掉的线再次画上。但我运行后,关闭子窗体时,那些线仍然不出来。我又一步一步的运行程序,但我的那个画线的过程又都运行了。我感觉好象是在关闭子窗体以前就执行了这个过程。但我又找不到解决的办法请大家帮我想想。
label1.Canvas.MoveTo(a,b);
label1.Canvas.LineTo(c,d);来画线。(画线是用于连接这些Image的)现在问题就在于画完线后,我打开其他的窗体后,打开的窗体(打开的窗体是最大化)就覆盖了画的那些线后,我关闭后这些线就被抹掉了。我想抹掉后,我再画一次就可以拉,所以写了一个画线的过程,然后我在每个窗体的“关闭”按钮中都调用这个过程。从而达到被抹掉的线再次画上。但我运行后,关闭子窗体时,那些线仍然不出来。我又一步一步的运行程序,但我的那个画线的过程又都运行了。我感觉好象是在关闭子窗体以前就执行了这个过程。但我又找不到解决的办法请大家帮我想想。
解决方案 »
- 三层结构客户端连接应用服务器问题
- 局域网内,装的都是WIN98,有一台机能访问其它所有的机子, 但却不能被其它机子所访问,请问怎么回事?
- procedure TForm1.Button1Click(Sender: TObject);
- 请教了,就是CTRLGRID控件的keydown,和dokey方法?问问它们的用法。
- 各位请推荐一款给程序员用的手提电脑
- TStoredProc的问题!
- 如何用代码切换数字键、大写锁定键及ScrollLock键?
- 请问大家圣诞节都送女朋友什么礼物啊?
- 如何重画TStrngGrid的网格线?
- 怎麼才能讓報表橫著列印報表?請教大家了!
- 存储过程的参数怎么用啊???
- 运行flash 的 ocx 问题 请高手指教
你可以接获label1的消息,然后在WM_PAINT消息中画。
截获消息的办法可以采用嫁接的办法。即在label1的WndProc方法上做手脚。你可以在网上找代码。
我的控件就是采用这种办法的:
http://www.2ccc.com/article.asp?articleid=1997
能说清楚一点好吗?你说的那个label1的WndProc方法我怎么找不到呢?
如:
procedure TForm1.FormPaint(Sender: TObject);
begin
Label1.Canvas.MoveTo(0, 0);
Label1.Canvas.LineTo(Label1.Left + Label1.Width,
Label1.Top + Label1.Height);
inherited;
end;
,你把标题写成“标签”吧。完后给你100分
我在线等你呢!