• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Динамическое Создание Компонентов

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,562
Баллы
155
В этом уроке мы с вами познакомимся, как создавать динамически компоненты в программе Delphi.
Все мы знаем, чтобы на форме появилась к примеру кнопка, мы из «Палитры инструментов» перетаскиваем компонент Button на форму.
Но вот если нам требуется, чтобы во время исполнения программы, создавался какой либо компонент. Этим мы сейчас и займемся.

Стандартная конструкция создания динамически компонента:
Код:
var
Component: TComponent;
begin
Component:=TComponent.Create(Owner);
Component.Parent:=Parent;
end;
И так, именно по этой конструкции можно создать любой компонент динамически.
Что же, перейдем к практике.

Нашей задачей будет являться:
Чтобы при нажатии кнопки (Button1), создавался компонент Memo1, с конкретными позициями на форме.

Для начала в Delphi создадим новый проект, кинем на форму Button1, кликнем на него два раза, создавая этим событие OnClick, и объявим некую переменную Memo1 типа TMemo.
Код:
var
Memo1: TMemo;
Объявив переменную, теперь нам нужно создать сам компонент Memo1 при нажатии на кнопку.
Код:
Memo1:=TMemo.Create;
Если мы запустим нашу программу, то она не запустится, т.к мы не указали важный параметр — где будет появлятся Memo1. Правильный код:
Код:
Memo1:=TMemo.Create(Form2);
Место Form2 вы пишите имя своей формы!
Если мы сейчас запустим программу и нажмем на кнопку, ничего не произойдет.
Что бы появился компонент Memo1 нам стоит дописать:
Код:
Memo1.Parent:=Form2;
Место Form2 вы пишите имя своей формы!
Теперь если при запуске нажать на кнопку, появится Memo1. Поздравляю.
Теперь вы можете добавить свойства Memo1. К примеру:
Код:
Memo1.Left:=25;
Memo1.Top:=50;
Memo1.Width:=250;
Memo1.Height:=110;
Можете добавить свои значения
Полный код программы:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
Memo1: TMemo;
begin
Memo1:=TMemo.Create(Form2);
Memo1.Parent:=Form2;
Memo1.Left:=25;
Memo1.Top:=50;
Memo1.Width:=250;
Memo1.Height:=110;
end;
 
Вверх Снизу