ferrum2688 |
26-02-2007 13:37 555435 |
Delphi создание объекта
Как в Делфи во время выполнения создавать объекты класса.
Например создать массив объектов кнопка и чтоб при создании кнопки визуально появлялись на форме.
|
hasherfrog |
26-02-2007 14:44 555454 |
|
ferrum2688 |
28-02-2007 02:52 556210 |
Спасибо, прочитал. Но мне нужно ещё вот что: чтобы создаваемый объект вызывал в ответ на событие мою(единственную ) процедуру и чтоб она могла работать с полями вызвавшего её объекта(), а также с полями вышестоящих.
|
Цитата:
а также с полями вышестоящих
|
выше - это где? рассказываю как понял вопрос:
Код:
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 как раз таким образом, основываясь на данных в описании формы (текстовый файл, который хранится прямо в экзешнике).
|
Время: 07:17.
© OSzone.net 2001-