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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2023, 16:18   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию Создать все дочерние элементы через Create

Допустим есть вот такой вот тип объекта
Код:
type
  TPanel1 = class(TPanel)
  private
    { Private declarations }
  public
    a, b, c: TButton;
    { Public declarations }
  end;
Вопрос: как сделать так, чтобы при использовании функции TPanel1.Create создавалась не только панель, но и сразу автоматически создавались и все кнопки?

В идеале, конечно, чтобы они еще и сразу все настраивались (отправлялись на нужные координаты)
Но для начала хотя бы создать их всех сразу
Kronos913 вне форума Ответить с цитированием
Старый 02.09.2023, 03:47   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Вопрос: как сделать так, чтобы при использовании функции TPanel1.Create создавалась не только панель, но и сразу автоматически создавались и все кнопки?
Написать код для этого потомка класса TPanel. В чём проблемы?
northener вне форума Ответить с цитированием
Старый 02.09.2023, 04:10   #3
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 161
По умолчанию

У любого класса есть конструктор и деструктор:
Код:
  TPanel1 = class(Vcl.ExtCtrls.TPanel)
  private
    {...}
  public
    a, b, c: TButton;
    constructor Create(AOwner: TComponent); override;
    destructor destroy; override;
  end;
Соответственно описываются:
Код:
constructor TPanel1.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  a:=TButton.Create(self);
  b:=TButton.Create(self);
  c:=TButton.Create(self);
  a.Parent:=self;
  b.Parent:=self;
  c.Parent:=self;
  a.Left:=0;
  b.Left:=a.Left+a.Width;
  c.Left:=b.Left+b.Width;
  {ваш код создания элементов, позиционирования и тп}
end;

destructor TPanel1.destroy;
begin
{ваш код уничтожения эл-в, освобождения памяти и тп}
  a.Free;
  b.Free;
  c.Free;
  inherited Destroy();
end;
PS:
Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Вопрос: как сделать так, чтобы
Я посоветовал бы почитать Д.Осипова, у него довольно подробно про ООП и не только
DIONISKA вне форума Ответить с цитированием
Старый 02.09.2023, 08:30   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

кроме TPanel существует еще и TFrame который можно НАПОЛНЯТЬ другими Control (кнопки и т.п. ) в визуальном режиме (disign), а потом добавлять на форму как единое целое(вместе с кнопками).
https://programmersforum.ru/showpost...18&postcount=3
в т.ч. и динамически (через Create)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 03.09.2023, 17:20   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от DIONISKA Посмотреть сообщение
Я посоветовал бы почитать Д.Осипова, у него довольно подробно про ООП и не только
Что за книжка?
FaTaL вне форума Ответить с цитированием
Старый 03.09.2023, 17:43   #6
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 161
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Что за книжка?
Конкретно я имел ввиду Д.Осипов "Delphi. Профессиональное программирование", хоть довольно старая, но основы там изложены хорошо.
DIONISKA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ В первой строке выведите через пробел элементы массива b В третьей строке выведите через пробел элементы массива a.. Во второй строке выведите через пробел элементы массива c. Маша129 Помощь студентам 3 17.03.2023 15:48
g_App::Create failed: Can't create application singleton Haberman Общие вопросы по программированию, компьютерный форум 3 28.03.2019 17:33
Через поток создать элементы на форме factually Общие вопросы Delphi 4 25.10.2016 22:36
Создать двоичный файл, записать n целых чисел. Из файла создать массив, элементы числа-палиндромы (на C) Simak63 Помощь студентам 0 30.03.2011 21:06
Как в XML Schema правильно описать дочерние элементы Stilet HTML и CSS 4 21.11.2007 15:04