Показать полную графическую версию : Delphi создание объекта
ferrum2688
26-02-2007, 13:37
Как в Делфи во время выполнения создавать объекты класса.
Например создать массив объектов кнопка и чтоб при создании кнопки визуально появлялись на форме.
hasherfrog
26-02-2007, 14:44
FAQ
http://www.helloworld.ru/texts/comp/lang/delphi/faq3/f1.htm
ferrum2688
28-02-2007, 02:52
Спасибо, прочитал. Но мне нужно ещё вот что: чтобы создаваемый объект вызывал в ответ на событие мою(единственную ) процедуру и чтоб она могла работать с полями вызвавшего её объекта(), а также с полями вышестоящих.
а также с полями вышестоящих выше - это где? рассказываю как понял вопрос:
type TButtonBox = class (TPanel)
private
flastClicked: TButton;
procedure onButtonClick(sender: TObject);
public
procedure addButton(name: string; rect: TRect);
end;
procedure TButtonBox.addButton(name: string; rect: TRect)
var button1: TButton;
begin
button1 := Tbutton.Create(self);
button1.left := rect.left;
button1.top := rect.top;
button1.width := rect.right-rect.left;
button1.height := rect.bottom-rect.top;
button1.caption := name;
button1.onClick = self.onButtonClick; // будет вызвано, причём от имени екземпляра self
end;
procedure TButtonBox.onButtonClick(sender: TObject)
begin
// используем поля TButtonBox
flastClicked := TButton(sender);
end;
это только пример, он не будет работать, так как не указаны конструкторы класса TButtonBox. Не забудьте дописать всё необходимое перед компиляцией.
По сути Delphi строит каждый TForm1 как раз таким образом, основываясь на данных в описании формы (текстовый файл, который хранится прямо в экзешнике).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.