Вниз
Скачать: CL | DM;

Можно ли убрать поля в PageControl   Найти похожие ветки 

← →
chis   (2004-08-31 17:41) [0]

При размещении во вкладках компонента с алигном типа клиент остаются поля. Заказчику это почему-то очень не нравится, а как их срубить я не знаю. Помогите плз.


← →
Awex   (2004-08-31 21:16) [1]

{******************************************}
{  Sphere Component Library                }
{ (c) 2003, 2004 by Sphere Software Group  }
{******************************************}

unit sphPageControl;

interface

uses
 Windows, Messages, Classes, CommCtrl, ComCtrls;

type
 TExStyle = (exsStandard, exsFlat, exsUltraFlat);

 TxPageControl = class(TPageControl)
 protected
   FExStyle: TExStyle;
   procedure SetExStyle(Value: TExStyle);
   procedure WndProc(var Message: TMessage); override;
 public
   constructor Create(Owner: TComponent); override;
 published
   property ExStyle: TExStyle read FExStyle write SetExStyle default exsStandard;
 end;

 TxTabControl = class(TTabControl)
 protected
   FExStyle: TExStyle;
   procedure SetExStyle(Value: TExStyle);
   procedure WndProc(var Message: TMessage); override;
 public
   constructor Create(Owner: TComponent); override;
 published
   property ExStyle: TExStyle read FExStyle write SetExStyle default exsStandard;
 end;

implementation

constructor TxPageControl.Create(Owner: TComponent);
begin
 inherited Create(Owner);
 ExStyle := exsStandard;
 HotTrack := true;
end;

procedure TxPageControl.SetExStyle(Value: TExStyle);
begin
 if FExStyle <> Value then
 begin
   FExStyle := Value;
   Realign;
 end;
end;

procedure TxPageControl.WndProc(var Message: TMessage);
begin
 inherited WndProc(Message);
 if (FExStyle <> exsStandard) and (Message.Msg = TCM_ADJUSTRECT) then
 begin
   if FExStyle = exsFlat then
   begin
     if TabPosition = tpTop then
     begin
       PRect(Message.LParam)^.Left := 2;
       PRect(Message.LParam)^.Right := ClientWidth - 2;
       PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 2;
       PRect(Message.LParam)^.Bottom := ClientHeight - 2;
     end
     else
       if TabPosition = tpBottom then
       begin
         PRect(Message.LParam)^.Left := 0;
         PRect(Message.LParam)^.Right := ClientWidth;
         PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
         PRect(Message.LParam)^.Bottom := PRect(Message.LParam)^.Bottom + 2;
       end;
   end
   else
   begin
     if TabPosition = tpTop then
     begin
       PRect(Message.LParam)^.Left := 0;
       PRect(Message.LParam)^.Right := ClientWidth;
       PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
       PRect(Message.LParam)^.Bottom := ClientHeight;
     end
     else
       if TabPosition = tpBottom then
       begin
         PRect(Message.LParam)^.Left := 0;
         PRect(Message.LParam)^.Right := ClientWidth;
         PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
         PRect(Message.LParam)^.Bottom := PRect(Message.LParam)^.Bottom + 2;
       end;
   end;
 end;
end;

{ TxTabControl }

constructor TxTabControl.Create(Owner: TComponent);
begin
 inherited Create(Owner);
 ExStyle := exsStandard;
 HotTrack := true;
end;

procedure TxTabControl.SetExStyle(Value: TExStyle);
begin
 if FExStyle <> Value then
 begin
   FExStyle := Value;
   Realign;
 end;
end;

procedure TxTabControl.WndProc(var Message: TMessage);
begin
 inherited WndProc(Message);
 if (FExStyle <> exsStandard) and (Message.Msg = TCM_ADJUSTRECT) then
 begin
   if FExStyle = exsFlat then
   begin
     if TabPosition = tpTop then
     begin
       PRect(Message.LParam)^.Left := 2;
       PRect(Message.LParam)^.Right := ClientWidth - 2;
       PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 2;
       PRect(Message.LParam)^.Bottom := ClientHeight - 2;
     end
     else
       if TabPosition = tpBottom then
       begin
         PRect(Message.LParam)^.Left := 0;
         PRect(Message.LParam)^.Right := ClientWidth;
         PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
         PRect(Message.LParam)^.Bottom := PRect(Message.LParam)^.Bottom + 2;
       end;
   end
   else
   begin
     if TabPosition = tpTop then
     begin
       PRect(Message.LParam)^.Left := 0;
       PRect(Message.LParam)^.Right := ClientWidth;
       PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
       PRect(Message.LParam)^.Bottom := ClientHeight;
     end
     else
       if TabPosition = tpBottom then
       begin
         PRect(Message.LParam)^.Left := 0;
         PRect(Message.LParam)^.Right := ClientWidth;
         PRect(Message.LParam)^.Top := PRect(Message.LParam)^.Top - 4;
         PRect(Message.LParam)^.Bottom := PRect(Message.LParam)^.Bottom + 2;
       end;
   end;
 end;
end;

end.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
4-1120431833
cranium
2005-07-04 03:03
2005.08.28
Как получить список физических дисков и их тип


4-1120631827
syte_ser78
2005-07-06 10:37
2005.08.28
скандиск для памяти


3-1121409195
DmTT
2005-07-15 10:33
2005.08.28
DBLoolupListBox ..ComboBox


14-1123149610
NeyroSpace
2005-08-04 14:00
2005.08.28
Стереография без стереоочков. Необычное очущение :-)


11-1106057807
Slay
2005-01-18 17:16
2005.08.28
Thread.OnDestroy




   Наверх