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ąć?
[Delphi] Dynamiczne komponenty
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1164
- Rejestracja: dni
- Ostatnio: dni
Zależy, czy mają to być takie same komponenty, czy w pliku będzie można wybrać, jakie :)
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 384
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;
- Rejestracja: dni
- Ostatnio: dni
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;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 384
Można wywalić pierwszą linijkę z ilością komponentów
A jak potem w pliku będzie coś innego napisane?
- Rejestracja: dni
- Ostatnio: dni
A jak potem w pliku będzie coś innego napisane?
Ja podałem tylko najprostszy przykład :)