【问题标题】:Trouble with TPageControl DrawTabTPageControl DrawTab 的问题
【发布时间】:2011-08-30 09:42:08
【问题描述】:

我将 TPageControl 样式设置为平面按钮 (tsFlatButtons),并使用 OnDrawTab 事件更改选项卡的按钮颜色。

它可以工作,但是不活动的按钮有灰色(btnFace 颜色)边框!

知道如何解决这个问题吗?

procedure TForm1.PageControlDrawTab(Control: TCustomTabControl;
          TabIndex: Integer; const Rect: TRect; Active: Boolean);

var
  AText: string;
  ARect: TRect;

begin
  with (Control as TPageControl).Canvas do
  begin
    ARect := Rect;
    OffsetRect(ARect, 0, 4);

    Brush.Color := COLOR1;
    FillRect(Rect);

    AText := TPageControl(Control).Pages[TabIndex].Caption;

    with Control.Canvas do   
      DrawText(Control.Canvas.Handle, PChar(AText), -1,ARect, DT_CENTER or DT_SINGLELINE);

  end;
end;

【问题讨论】:

  • 我添加了代码。这很简单。
  • 对我来说效果很好。哪个版本的 Delphi?
  • 另外,哪个 Windows 版本?可能与主题/通用控件版本有关...
  • 我使用经典主题在 XP Pro 上进行了测试。 Delphi 是第 7 版。
  • @David:我写的可以,但是有灰色边框。我会上传截图。

标签: delphi ownerdrawn tpagecontrol


【解决方案1】:

作为一种解决方法,如果设计适合您 , 可以隐藏当前标签页:

  for I := 0 to Pred(PageControl1.PageCount) do
    PageControl1.Pages[I].TabVisible := False;

并添加一个TTabSet 具有以下属性:

BackgroundColor := clGradientActiveCaption;
SelectedColor := clGradientActiveCaption;
Style := tsModernTabs

【讨论】:

    【解决方案2】:

    我知道这是一篇很老的帖子,但由于它没有完整的答案,而且我遇到了同样的问题,最后找到了解决方法,我想我应该让你知道...

    如果某些选项卡的 tabvisible 设置为 False,您的代码也不能正常工作 这是我认为解决此问题的最佳方法,使用整数 i 循环选项卡:

    for I := 0 to TPageControl(Control).PageCount-1 do
      if TPageControl(Control).Pages[I].TabIndex = TabIndex then
    begin
      FillRect(Control.Canvas.Handle,aRect,Control.Canvas.Brush.Handle);
      // Do your text drawing here
      break;
    end;
    

    【讨论】:

      【解决方案3】:

      请参阅下面的此单元,以修复 Win64 位上的绘图问题

      https://forums.embarcadero.com/thread.jspa?messageID=292598

      【讨论】:

      • 回答问题时,尽量提供完整的答案,包括示例代码和描述。仅仅一个指向另一个网站的链接是不够的。
      • 您能否在您的回答中包含一些解决方案?或者至少是对解决方案的高级解释,以防链接失效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      相关资源
      最近更新 更多