当前位置:主页>仓库管理软件> 列表

画在Panel上的文字怎么才不让擦除? 找免费进销存管理系统

财务软件版1楼: 如果是直接画在Form上的线条或文字,在OnPaint里再重新调用一下就可以重画。但画在Panel上的呢。我试过在Form.OnPaint里重新调用,写上的文字还是被擦除了。
type
tpnl=class(TPanel)
end;
.........

procedure TForm1.btn1Click(Sender: TObject);
begin
tpnl(pnl1).Canvas.Pen.Color:= clRed;
tpnl(pnl1).Canvas.TextOut(0, 0, ''sss'');
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
btn1Click(Self);
end;

如果这样不行,还有什么方法?

2楼: 在panel的onpaint事件中写就不会消失。 如免费进销存管理系统

3楼: panel没见着onpaint事件。

4楼: 重画的同时连文字一起画上

5楼: 截获PAINT消息

6楼: anyway:
我这样写:
procedure TForm1.msg(var amsg: TMessage);
begin
if amsg.msg=wm_paint then
btn1click(self);
end;
这样是对的么?怎么像是死循环呢?

财务软件版7楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2729846
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1104545

8楼: 在panel里要自己拦截wm_paint消息,才行。拦截form的wm_paint是没用的。form和panel是两个窗口,有各自独立的消息队列。

9楼: 同意 rururu 说的

10楼: 接受答案了.

11楼: 分错分了。。。。。[:(]