[Delphi] Dynamiczne komponenty

0

Mam plik komponenty.txt
w pierwszej lini (0) znajduje się liczba [n] wieksza od 0 - jest to liczba komponentów, które ma program utworzyć. w następnych liniach podane są cptiony tych komponentów. Jaki kod trzeba dać, aby program czytając plik tworzył te komponenty. (wcześniej nie wiem ile ich będzie, ale max to 20). Jak je potem usunąć?

0

Zależy, czy mają to być takie same komponenty, czy w pliku będzie można wybrać, jakie :)

0

no jesli sa to te same, to mozna zwyczajnie dac to w petle for, jesli chodzi zas o ich nazwy i odwolywanie, to widzialem jakies kombinacje z [tag] w nazwie, ale nigdy sie w to nie bawilem.

0

var buttony : array of TButton;
slowo:string;
x,i:integer;
plik: TextFile;
begin
AssignFile(plik,'c:\plik.txt');
Reset(plik);
ReadLn(plik,x);
For i:=1 to x do
begin
SetLength(buttony,i);
Buttony[i-1] := TButton.Create(Self);
Buttony[i-1].Parent:=Self;
ReadLn(plik,slowo);
Buttony[i-1].Caption := slowo;
end;
CloseFile(plik);
end;

0

Można wywalić pierwszą linijkę z ilością komponentów i zrobić tak:

var
buttony:array of tbutton;
tmp:tstringlist;
j:integer;

tmp:=tstringlist.create;
tmp.loadfromfile('plik.txt');
setlength(buttony, tmp.count);

for j:=0 to tmp.count-1 do
begin
buttony[j]:=tbutton.create;
buttony[j].left:=0;
buttony[j].height:=20;
buttony[j].top:=j*20;
buttony[j].caption:=tmp[j];
end;

0

Można wywalić pierwszą linijkę z ilością komponentów

A jak potem w pliku będzie coś innego napisane?

0

A jak potem w pliku będzie coś innego napisane?

Ja podałem tylko najprostszy przykład :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1