-
TheEd (27.11.07 00:44) [0]господа мастера, не раз приходилось задумываться о необходимости компонента (см. subj), очень он удобен был бы для программирования меняющихся наборов элементов управления, напр. в мастерах.
Скрыть вкладки не проблема:for i := 0 to SomePageControl.PageCount - 1 do
SomePageControl.Pages[i].TabVisible := false;
3D границы тоже убрать можно, если сделать:pc.Style := tsButtons; // или tsFlatButtons
но как убрать поля в несколько пикселов, которые остаются по краям PageControl'а??? -
TheEd (27.11.07 02:46) [1]Спасибо, справился!!!
Кому понадобится, ловите:unit MyPageControl;
interface
uses
SysUtils, Classes, Controls, ComCtrls, Types;
type
TMyPageControl = class(TPageControl)
private
FHideTabs: boolean;
procedure SetHideTabs(const Value: boolean);
{ Private declarations }
protected
procedure AdjustClientRect(var Rect: TRect); override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
property HideTabs : boolean read FHideTabs write SetHideTabs default false;
property Color;
property ParentColor;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComponents', [TMyPageControl]);
end;
{ TMyPageControl }
procedure TMyPageControl.AdjustClientRect(var Rect: TRect);
begin
inherited;
if HideTabs and not (csDesigning in ComponentState) then
begin
Rect.Top := 0;
Rect.Left := 0;
Rect.Right := Width;
Rect.Bottom := Height;
end;
end;
constructor TMyPageControl.Create(AOwner: TComponent);
begin
inherited;
FHideTabs := false;
end;
procedure TMyPageControl.SetHideTabs(const Value: boolean);
begin
if FHideTabs = Value
then exit;
FHideTabs := Value;
Invalidate;
end;
end. -
Olegz77 (27.11.07 15:14) [2]А для мастеров не проще использовать компонент TNotebook ?
-
Виктор007 (03.12.07 20:22) [3]Я делал так:
У PageControl свойство Style поставить в tsFlatButtons (поставить нужно в Design time). Далее в рантайме:for i:=0 to PageControl1.PageCount -1 do
begin
PageControl1.Pages[i].TabVisible := false;
end;