TPageControl的问题

waitforyoueveryday 2009-09-02 01:04:43
遇到一个问题
设置了PageControl的hint为page
设置了其中TabSheet1的hint为sheet1
当鼠标移动到TabSheet1的标签头上提示信息为page,而不是sheet1,只有移到TabSheet1中才能显示sheet1,怎么做才能让鼠标移到标签页头的时候显示的是sheet1,而不是page

另外当设置它的tabposition为"left“后,如何让caption为横向的,而不是竖的
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
NaZiChong 2009-09-02
  • 打赏
  • 举报
回复

procedure TMainForm.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
//setbkcolor(Control.Canvas.Handle,clYellow);
Control.Canvas.Brush.Color := clYellow;
control.Canvas.Rectangle(control.Canvas.ClipRect);
Control.Canvas.Font.Color := clRed;
Control.Canvas.TextOut(2,20,'中');
end;
NaZiChong 2009-09-02
  • 打赏
  • 举报
回复

procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
begin
if (HintInfo.HintControl = PageControl1) then
begin
with PageControl1 do
begin
try
HintStr:= Pages[IndexOfTabAt(HintInfo.CursorPos.X,HintInfo.CursorPos.Y)].Hint;
except
CanShow:=False;
end;
end;
HintInfo.ReshowTimeout:=1000;
end;
end;
waitforyoueveryday 2009-09-02
  • 打赏
  • 举报
回复
从一个标签头移到另一个标签头,hint不能马上显示,怎么解决?
老之 2009-09-02
  • 打赏
  • 举报
回复

procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
with PageControl1 do Hint:= Pages[IndexOfTabAt(x,y)].Hint;
end;
waitforyoueveryday 2009-09-02
  • 打赏
  • 举报
回复
我也知道mousemove和drawtext,但就是不会写代码啊
de410 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
MouseMove中根据鼠标位置去判断在哪个页签上,然后设置hint为该页签的Caption
[/Quote]

up~~
bdmh 2009-09-02
  • 打赏
  • 举报
回复
MouseMove中根据鼠标位置去判断在哪个页签上,然后设置hint为该页签的Caption
sanguomi 2009-09-02
  • 打赏
  • 举报
回复
输出文字用API DRAWTEXT,里边有样式可以设置
7年 2009-09-02
  • 打赏
  • 举报
回复
第一个问题如三国所说。
第二个不会。
哈哈~
sanguomi 2009-09-02
  • 打赏
  • 举报
回复
标签头是容器PageControl的,不是SHEET的,所以会显示PAGE

caption为横向的,而不是竖的
这个得自己去改的 DrawTab

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧