Количество экземпляров класса TMyClass за ранние не известно.
Необходимо как то динамически создавать классы и управлять ими.
Абстрактный смысл такой:
есть фирма - программа;
есть директор - обработчик нажатия кнопки в программе;
есть менеджер подчиненный директору - TMyDynArrayClass;
есть работник подчиненный менеджеру - TMyClass.
Директор не общается с работником.
Правильно ли я поступаю с динамическим количеством классов ?
Какие есть еще варианты ?
Пример:
- Код: Выделить всё
TMyClass = class
private
str : string;
public
procedure write_str(tmp : string);
function read_str : string;
end;
procedure TMyClass.write_str(tmp : string);
begin
str:= tmp;
end;
function TMyClass.read_str : string;
begin
result:= str;
end;
- Код: Выделить всё
TMyDynArrayClass = class
private
DynArrayClass : array of TMyClass; // обратите внимание сюда!
public
procedure run;
end;
procedure TMyDynArrayClass.run;
begin
SetLength(DynArrayClass, 3);
DynArrayClass[0]:= TMyClass.Create;
DynArrayClass[1]:= TMyClass.Create;
DynArrayClass[2]:= TMyClass.Create;
DynArrayClass[0].write_str('000');
DynArrayClass[1].write_str('111');
DynArrayClass[2].write_str('222');
ShowMessage('N0 = ' + DynArrayClass[0].read_str);
ShowMessage('N1 = ' + DynArrayClass[1].read_str);
ShowMessage('N2 = ' + DynArrayClass[2].read_str);
end;
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var MyDynArrayClass : TMyDynArrayClass;
begin
MyDynArrayClass:= TMyDynArrayClass.Create;
MyDynArrayClass.run;
end;