[Delphi] Dynamiczne komponenty

[Delphi] Dynamiczne komponenty
SP
  • Rejestracja:około 23 lata
  • Ostatnio:ponad 2 lata
  • Postów:1164
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ąć?

TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
0

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

RS
  • Rejestracja:ponad 22 lata
  • Ostatnio:8 miesięcy
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.

W0
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 14 lat
  • Postów:384
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;

TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
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;

W0
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 14 lat
  • Postów:384
0

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

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

TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
0

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

Ja podałem tylko najprostszy przykład :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.