![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать класс или объект. [D7, XP]
vegarulez © (2015-09-10 10:22:00)Добрый день мастера!
Вопрос такой - мне надо сделать свой класс или объект не знаю как правильно это назвать. Объясню что я хочу - нужена панель в которой будут лэйблы, картинки и кнопка , и соотвественно я хочу формировать этот объект в основе тпанел в котором будут лэйблы и картинки и кнопка динамически. ну грбуо говоря MyClass.Create('название лэбла 1', 'caption буттона', и т.д. - все остальные параметры которые я хочу передавать при создании).
Поделитесь ссылкой где это почитать? И как это правильно называется?
DimaBr (2015-09-17 07:51:00) [1]Это называется "Динамическое создание компонент" и выглядит примерно так
TMyPanel = class(TPanel)
private
Labels: array of TLabel;
public
constructor Create(AOwner: TComponent; Data: array of string); reintroduce;
end;
constructor TMyPanel.Create(AOwner: TComponent; Data: array of string);
var i: integer;
begin
inherited Create(AOwner);
SetLength(Labels,Length(Data));
for i := 0 to High(Data) do begin
Labels[i] := TLabel.Create(self);
Labels[i].Parent := self;
Labels[i].Caption := Data[i];
Labels[i].Top := i * 20;
end;
end;
Теперь пробуем создать
procedure TForm1.FormCreate(Sender: TObject);
begin
with TMyPanel.Create(self,['Метка №1','Метка №2','Метка №3','Метка №4']) do begin
Parent := self;
Height := 200;
Left := 100;
end;
end;
sniknik (2015-09-10 12:49:00) [2]File-> New->Frame
DVM (2015-09-10 10:29:00) [3]Вероятно тебе нужно сделать наследника от TPanel
vegarulez (2015-09-10 10:25:00) [4]*Объясню что я хочу - нужен Тпанел в котором...