Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.30;
Скачать: CL | DM;

Вниз

Как убрать у TPageControl бордюр?   Найти похожие ветки 

 
Base   (2008-02-19 03:14) [0]

А то у меня их несколько друг на друге. Эти борюдры слишком выпирают и портят внешний вид. Как победить?


 
korneley ©   (2008-02-19 08:27) [1]

Свойство Style. Поставь tsButtons или tsFlatButtons. Если не подходит - рисовать все самому.


 
ЗапомниСынок   (2008-02-19 09:39) [2]

...
  TPageControl = class(ComCtrls.TPageControl)
  protected
  procedure WndProc(var Message : TMessage); override;
  end;
...
  TForm1 = class(TForm)
   ...
   PageControl1: TPageControl;
   ...
   end;
...
implementation
...

procedure TPageControl.WndProc(var Message : TMessage);
begin
if Message.Msg = TCM_ADJUSTRECT then
  begin
  inherited WndProc(Message);

  // Шириной в один пиксел:

  PRect(Message.LParam)^.Left   := 1;
  PRect(Message.LParam)^.Right  := ClientWidth-1;
  PRect(Message.LParam)^.Top    := PRect(Message.LParam)^.Top-3;
  PRect(Message.LParam)^.Bottom := ClientHeight-1;

  // Совсем без границ
  //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
  inherited WndProc(Message);
end;


 
korneley ©   (2008-02-19 10:21) [3]


> ЗапомниСынок   (19.02.08 09:39) [2]

Т.е. ректальные методы и нынче в ходу?
TPageControl = class(ComCtrls.TPageControl)
Переопределение классов под одинаковыми именами и дальнейшая манипуляция юнитами в секции Uses?


 
ЗапомниСынок   (2008-02-19 13:07) [4]

в секции uses ничем манипулировать не надо, а метод может и некрасивый, но вполне рабочий


 
boa_kaa ©   (2008-02-19 13:52) [5]


> korneley ©   (19.02.08 10:21) [3]

он не ректальный, а PRect"альный


 
korneley ©   (2008-02-19 14:49) [6]


> ЗапомниСынок   (19.02.08 13:07) [4]
> в секции uses ничем манипулировать не надо...

Ну, как минимум, постоянно следить, чтобы твой юнит в объявлениях позже ComCtrls стоял. Насчет рабочий:

var s: string[3];
   i: integer absolute s;
...
s := #0#0#0;

Абсолютно рабочий. Но как мне объяснить читающему за мной, что это я так целое со значением "3" инициализировал? И, главное, зачем? :) Нет, если вы пишете только для себя и "на раз"...


 
ЗапомниСынок   (2008-02-19 16:29) [7]

>> Ну, как минимум, постоянно следить, чтобы твой юнит в объявлениях позже ComCtrls стоял.

Ты, раз уж мы перешли на "Ты", видимо, не утрудился взглянуть на пример.
Объявление TPageControl = class(ComCtrls.TPageControl) находится в том же модуле, где и форма, на которой этот PageControl и находится.

Этот способ несколько раз обсуждался на Королевстве Delphi, вступать в дискуссию о его правомерности у меня нет ни мальейшего желания. Для меня он как нельзя лучше подходит в случае, когда требуется внести небольшие изменения в функциональность компонента, не засоряя палитру.


 
korneley ©   (2008-02-19 17:17) [8]

За "ты" приношу извинения... Не со зла :) Да и здесь тоже была полемика, и судя по всему мы с Вами на разных сторонах.

>  ...вступать в дискуссию о его правомерности у меня нет ни
> мальейшего желания...

Аналогично... Потратим это время на написание чего-нибудь полезного :)



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

Текущий архив: 2008.03.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
3-1194530578
-=Le][=-
2007-11-08 17:02
2008.03.30
Фильтр для получения списка значений.


2-1204403005
максим
2008-03-01 23:23
2008.03.30
scrollbar memo


2-1204728129
nstur
2008-03-05 17:42
2008.03.30
Как подключить *.chm файл


2-1204393736
Alex
2008-03-01 20:48
2008.03.30
Как вывести в Edit переменную Integer?


15-1202909284
Ega23
2008-02-13 16:28
2008.03.30
Zip-Unzip для Delphi - посоветуйте