Главная страница
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.042 c
2-1204460411
KJ13
2008-03-02 15:20
2008.03.30
Открытие файла


15-1202910633
Пробегал...
2008-02-13 16:50
2008.03.30
Функция, возвращающая строку ошибки


2-1204536665
Sonia
2008-03-03 12:31
2008.03.30
Классы


2-1204372920
lana
2008-03-01 15:02
2008.03.30
Преобразование текста в таблицу.


3-1194339022
webpauk
2007-11-06 11:50
2008.03.30
Оптимизация запроса