Динамическое создание различных объектов порой упрощает программистам жизнь. Например рассмотрим случай, когда вы создаете например среду программирования и хотите ввести частички ООП. А точней дать возможность вставлять кнопки на форму.
Украшаем по своему нраву форму и добавьте в uses StdCtrls:
... uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; ...
Теперь создаем процедуру для формы: FormMouseDown и прописываем:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var btn:TButton; //Переменная кнопки begin btn:=TButton.Create(Form1); //Создание кнопки btn.Parent:=Form1; //Назначение "родителя" btn.Top:=y; //Размещение btn.Left:=x; btn.Width:=60; //Размеры btn.Height:=20; btn.OnClick := Button2Click; //При клике переход к процедуре Button2Click end;
Ну хорошо. Кнопка будет создаваться, но процедуры для этой кнопки так и нету. Поэтому после type пишем:
... type TForm1 = class(TForm) procedure ... procedure Button2Click(Sender: TObject); ...
Нажмите Ctrl+Shift+C для быстрого создания шаблона и в нем пишем например код закрытия формы:
procedure TForm1.Button2Click(Sender: TObject); begin Close; end;
Вот так то. Теперь мы можем создавать программно кнопки, просто щелкнув по форме.
Источник: |