Создание динамических лэйбелов (ну это я так примерчик накидал, а там уже подделаешь как нужно)
Код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type Tres = object
Pan : Tpanel;
Lab1 : Tlabel;
Lab2 : Tlabel;
Constructor Create(owner : TComponent);
Destructor Destroy;
end;
var
Form1: TForm1;
M : array of TRes;
implementation
{$R *.dfm}
Constructor Tres.Create(owner : TComponent);
begin
Pan := TPanel.Create(owner);
Lab1 := TLabel.Create(Pan);
Lab2 := TLabel.Create(Pan);
Pan.Parent := Form1;
Lab1.Parent := Pan;
Lab2.Parent := Pan;
Lab1.TOP := 3;
Lab2.Top := 20;
{
.......
.......
}
end;
Destructor Tres.Destroy;
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
var I : Integer;
begin
for I := 0 to 10 do
begin
SetLength(M, Length(M) + 1);
M[High(m)].Create(Self);
M[High(m)].Pan.Top := I * 50;
M[High(m)].Lab1.Caption := IntToStr(I);
end;
end;
end.
Вот процедура поиска файлов в каталоге
Код
function FindFiles(AdrDir : String; DiskName : integer) : boolean;
var Find : TSearchRec;
RFind : Integer;
I : integer;
begin
RFind := FindFirst(AdrDir, faAnyFile, Find);
while RFind = 0 do
begin
Application.ProcessMessages;
if (Find.Name <> '.') and (Find.Name <> '..') then
if ((Find.Attr = faDirectory {FAT16/32}) or (Find.Attr = 17{CDFS})
or (Find.Attr = 8208 {NTFS} ) or (Find.Attr = 8209)
or (Find.Attr = 10256 {NTFS Compress} ) or (Find.Attr = 10257) ) then
begin
FindFiles(COPY(AdrDir, 1, Length(AdrDir) - 3) + Find.Name + '\*.*', DiskNAme);
end
else
begin
// Операции над найденным файлом\каталогом
//....
//....
end;
RFind := FindNext(Find);
end;
FindClose(Find);
end;