请教各位大虾:如何设置pagecontrol上标签的颜色? PageControl的OwnerDraw设为True在PageControl的OnDrawTab里画一下试过了码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xzgyb(老达摩):谢谢指引!!将OwnerDraw设为True,它的颜色是变了,可我不知道标签上的字怎么画上去,能告诉我详细一点吗?我是一个初学者,好多东西还不会用,请多多指教!!! 不好意思,才看到你太客气了,呵呵试试这样吧procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);var TmpRect: TRect;begin with PageControl1.Canvas do begin Brush.Color := clBlack; Font.Color := clWhite; FillRect(Rect); TmpRect := Rect; OffsetRect(TmpRect, 0, 3); DrawText(Handle, PChar(PageControl1.Pages[TabIndex].Caption), -1, TmpRect, DT_CENTER or DT_VCENTER); end;end; To:xzgyg(老达摩) 非常感谢!!!!这20分给您啦还有一个问题我想问一下:如何改变popupmenu的背景颜色? 不用谢改变TPopupMenu的背景色我试了一下,也是用它的OwnerDraw,但不知有没有更好的方法如下:unit Unit4;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Menus;type TForm1 = class(TForm) PopupMenu1: TPopupMenu; File1: TMenuItem; Nex1: TMenuItem; Open1: TMenuItem; procedure File1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.File1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);begin with ACanvas do begin if Selected then Brush.Color := clGreen else Brush.Color := clRed; FillRect(ARect); DrawText(Handle, PChar(TMenuItem(Sender).Caption), -1, ARect, DT_CENTER or DT_VCENTER); end;end;procedure TForm1.FormCreate(Sender: TObject);var i: Integer;begin PopupMenu1.OwnerDraw := True; for i := 0 to PopupMenu1.Items.Count - 1 do PopupMenu1.Items[i].OnDrawItem := File1DrawItem;end;end. 老达摩老师: 能告诉我您的E-mail吗?我的E-mail是[email protected]以后请多多指教!!!!! 别这么称呼阿呵呵我学delphi也不长时间我基础很差,最近想看看数据结构大家一起学把我的mail是[email protected]oicq: 21310059 postmessage中各参数分别是什么意思? 看看这个调用word程序的代码,在你们机子上能用嘛 如何解决大量读写文件占用系统资源问题? 如何调用系统的outlook??? 最基础的打印问题,急!! FastReport打印的简单问题,请帮帮我? 如何能取得桌面快捷方式的目标属性! 求一个后台调用Microsoft Office Document Image Writer 打印mdi(tif)文件到指定目录的代码!!!(100分) 急!!!!如何把内存中的DLL释放或强行终止.(最好有源代码) Delphi启动时出现的错误! 怎样通过程序判断出来数据库中的字段的必填属性? 我的题目
将OwnerDraw设为True,它的颜色是变了,可我不知道标签上的字怎么画上去,能告诉我详细一点吗?我是一个初学者,好多东西还不会用,请多多指教!!!
你太客气了,呵呵
试试这样吧
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
TmpRect: TRect;
begin
with PageControl1.Canvas do
begin
Brush.Color := clBlack;
Font.Color := clWhite;
FillRect(Rect);
TmpRect := Rect;
OffsetRect(TmpRect, 0, 3);
DrawText(Handle, PChar(PageControl1.Pages[TabIndex].Caption), -1, TmpRect, DT_CENTER or DT_VCENTER);
end;
end;
非常感谢!!!!这20分给您啦
还有一个问题我想问一下:如何改变popupmenu的背景颜色?
改变TPopupMenu的背景色我试了一下,也是用它的OwnerDraw,但不知有没有更好的方法
如下:
unit Unit4;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus;type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
File1: TMenuItem;
Nex1: TMenuItem;
Open1: TMenuItem;
procedure File1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.File1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
with ACanvas do
begin
if Selected then
Brush.Color := clGreen
else
Brush.Color := clRed;
FillRect(ARect);
DrawText(Handle, PChar(TMenuItem(Sender).Caption), -1, ARect, DT_CENTER or DT_VCENTER);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
PopupMenu1.OwnerDraw := True;
for i := 0 to PopupMenu1.Items.Count - 1 do
PopupMenu1.Items[i].OnDrawItem := File1DrawItem;
end;end.
能告诉我您的E-mail吗?我的E-mail是[email protected]
以后请多多指教!!!!!
呵呵
我学delphi也不长时间
我基础很差,最近想看看数据结构
大家一起学把
我的mail是[email protected]
oicq: 21310059