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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2008, 12:21   #1
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
Вопрос Создание своего класса

Помогите пожалуйста разобраться.
Такая проблема есть у меня форма, на форме расположена всякое и PageControl. На странице этого PageControl расположены StringGrid, пару ComboBox и т.д. Необходимо что бы при добавлении страницы все эти компоненты создавалить вместе с ней.
Думал, что надо создать класс этого PageControl в котором указать все необходимые компоненты расположенные на нем, но не получается создать такой класс. Подскажите что делать.
Заранее спасибо.

From Stilet: Давай без ругани и матовства. Это никому не нужно

Последний раз редактировалось Stilet; 19.05.2008 в 12:57.
AlexandrSid вне форума Ответить с цитированием
Старый 19.05.2008, 13:01   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

создаешь примерно такой класс страницы:
Код:
TMySheet = class(TTabSheet)
    b: TButton;
   procedure BClick(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

...

constructor TMySheet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  b := TButton.Create(Self);
  b.SetBounds(10,10,50,20);
  b.Caption := 'My Button';
  b.Parent := Self;
  b.OnClick := BClick;
end;

destructor TMySheet.Destroy;
begin
  b.Free;
  inherited Destroy;
end;

procedure TMySheet.BClick(Sender: TObject);
begin
  ShowMessage('Button '+ Name + ' click');
end;
тут будет кнопка одна, при нажатии на которую выдается сообщение.

добавление страницы в PageControl будет примерно такое:
Код:
var
  s: TMySheet;
begin
  s := TMySheet.Create(PageControl1);
  s.PageControl := PageControl1;
  s.Name := 'TabSheet'+IntToStr(PageControl1.PageCount);
  s.Caption := s.Name;
или же можно создать фрейм. тогда уже можно будет без создания класса обойтись.
в меню выбираешь File/New/Frame
оформляешь как обычную форму. кидаешь кнопочки, обработчики пишешь.
тогда добавление закладки будет примерно такое:
Код:
var
  s: TTabSheet;
begin
  s := TTabSheet.Create(PageControl1);
  s.PageControl := PageControl1;
  s.Name := 'TabSheet'+IntToStr(PageControl1.PageCount);
  s.Caption := s.Name;
  TFrame1.Create(s).Parent := s;
pu4koff вне форума Ответить с цитированием
Старый 19.05.2008, 13:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь, недавно уже обсуждалась тема добавления страниц для PageControl. Подрули поиском.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2008, 13:28   #4
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Спасибо огромное pu4koff, разобрался теперь все работает.
AlexandrSid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание своего класса в Delphi 7 - фигуры для шахматной доски electric Компоненты Delphi 18 24.10.2013 15:06
Создание своего меню в Exele W50586 Microsoft Office Excel 2 23.06.2008 15:20
Создание своего типа данных xGroupers Общие вопросы Delphi 4 12.05.2008 13:53
Создание своего формата AnaSha Microsoft Office Excel 1 09.01.2007 16:20