求助:哪里有能画线、文字输入等功能的Panel控件?
马上给分!
马上给分!
解决方案 »
- delphi 中用sql语句整理表字段值,三个iif语句就报错
- 关于IdUDPServer监听多个端口
- TSocketConnection 10054
- 用query读娶access里的“温度”字段数据怎么不行?
- 广州用DELPHI找工容易么,大家说说看?本人过一段时间想去广州发展...
- fastReport报表,用delphi7程序如何实现画斜线。急~~~~~
- 请问怎样去掉windows2000 server的开机屏幕和关机屏幕!该死的金上毒霸,卸了之后还留下这么大一个尾巴让你难受!
- 哪里有ANSI-92 SQL语法下载?
- WebBrowserDocumentComplete为什么执行了两遍
- 当打印内容超出一页的范围时,我怎么控制换页?
- 请问用dbExpress的TSQLConnect来边接一个远程的mysql数据库??急呀!如果解决马上送分,不够另开!!!!
- 请问delphi7中QuickReport系列控件,在Project项中不能加载是什么原因?
publish
property Canvas;
end;用 Canvas 尽情的画吧 !
你有两种方法可以使用它:
1 用Delphi的控件向导生成一个控件,像上面一样把 Canvas 属性设为 publish,然后就可以代替 TPanel 使用了
2 如果你仅有一个单元,需要此功能,也可以象下面一样
在单元内定义 TXPanel = class(TPanel);
然后像这样使用 TXPanel(Panel1).Canvas.Font.Name = 'xxx';
建议使用方法1
另外注意,你这样在上面画的东西,在窗口刷新时,会丢失,要做到不丢失,就复杂一点:TXPanel = class(TPanel);
private
FOnPaint: TNotifyEvent;
protected
procedure Paint; override;
public
property Canvas;
publish
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
end;procedure TXPanel.Paint;
begin
inherited;
if Assigned(FOnPaint) then FOnPaint(Self);
end;这样 TXPanel 就有了 OnPaint 事件,并可以使用 Canvas 属性了,怎样使用就不用说了吧
s: String;
r: TRect;
begin
s := 'abcd';
r := ClientRect;
DrawText(Canvas.Handle,PChar(s),-1,r,DT_LEFT);
end;