PDA

Показать полную графическую версию : 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
Спасибо, прочитал. Но мне нужно ещё вот что: чтобы создаваемый объект вызывал в ответ на событие мою(единственную ) процедуру и чтоб она могла работать с полями вызвавшего её объекта(), а также с полями вышестоящих.

pva
28-02-2007, 22:04
а также с полями вышестоящих выше - это где? рассказываю как понял вопрос:

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