Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2015, 14:47   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Убрать border у PageControl

Доброго дня!
Нужно убрать сверху компонента полосу.
Нашел вот этот код:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    procedure FormCreate(Sender: TObject);
  private
    FOriginalPageControlWndProc: TWndMethod;
    procedure PageControlWndProc(var Message: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
  CommCtrl;

procedure TForm1.PageControlWndProc(var Message: TMessage);
begin
  FOriginalPageControlWndProc(Message);
  with Message do
    if (Msg = TCM_ADJUSTRECT) and (Message.WParam = 0) then
      InflateRect(PRect(LParam)^, 4, 4);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with PageControl1 do
  begin
    // remove PageControl border
    FOriginalPageControlWndProc := WindowProc;
    WindowProc := PageControlWndProc;
    Realign;
  end;
end;

end.
Ну эта полоса просто теперь перемещается влево, как ее совсем убрать?
nibufep вне форума Ответить с цитированием
Старый 25.10.2015, 15:12   #2
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Код:
uses CommCtrl

type
  TPageControl = class(ComCtrls.TPageControl)
  private
    procedure TCMAdjustRect(var Msg: TMessage); message TCM_ADJUSTRECT;
  end;

...

procedure TPageControl.TCMAdjustRect(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = 0 then
    InflateRect(PRect(Msg.LParam)^, 4, 4)
  else
    InflateRect(PRect(Msg.LParam)^, -4, -4);
end;
но у меня ошибка E2003 Undeclared identifier: 'ComCtrls'
nibufep вне форума Ответить с цитированием
Старый 25.10.2015, 15:28   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

CommCtrl <> ComCtrls
или равно?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.10.2015, 17:10   #4
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
CommCtrl <> ComCtrls
или равно?
не понял вопроса.
nibufep вне форума Ответить с цитированием
Старый 25.10.2015, 17:11   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В uses нет ComCtrls
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.10.2015, 17:16   #6
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В uses нет ComCtrls
добавляю пишет:

E2004 Identifier redeclared: 'Vcl.ComCtrls'
nibufep вне форума Ответить с цитированием
Старый 25.10.2015, 17:53   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

XE

TPageControl = class(Vcl.ComCtrls.TPageControl);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.10.2015, 19:31   #8
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от nibufep Посмотреть сообщение
Код:
uses CommCtrl

type
  TPageControl = class(ComCtrls.TPageControl)
  private
    procedure TCMAdjustRect(var Msg: TMessage); message TCM_ADJUSTRECT;
  end;

...

procedure TPageControl.TCMAdjustRect(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = 0 then
    InflateRect(PRect(Msg.LParam)^, 4, 4)
  else
    InflateRect(PRect(Msg.LParam)^, -4, -4);
end;
но у меня ошибка E2003 Undeclared identifier: 'ComCtrls'
вообще не работает...
nibufep вне форума Ответить с цитированием
Старый 25.10.2015, 19:36   #9
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

а нет. работает! Нужно было вставить выше

Код:
type
  TForm = class(TForm)
....
end;
спасибо за помощь!
nibufep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
убрать обводку у Pagecontrol UKRtortik Общие вопросы Delphi 3 04.06.2014 08:40
убрать обводку у Pagecontrol UKRtortik Общие вопросы Delphi 2 29.05.2014 00:29
Убрать (Border) рамку у ВСЕХ объектов на листе VictorM Microsoft Office Excel 2 19.11.2012 11:18
TWebBrowser - убрать Border при режиме редактирования RIO Общие вопросы Delphi 0 05.01.2010 00:53
Как убрать часть PageControl`a Lemo Общие вопросы Delphi 1 16.03.2009 16:43