1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| procedure Tpal.FormCreate(Sender: TObject);
var
c:integer;
begin
listadr:=tstringlist.Create;
chemin:=extractfilepath(paramstr(0));//y compris le dernier antislash
try
listadr.LoadFromFile(chemin+'listadresses.txt');
except
showmessage('le fichier '+chemin+'listadresses.txt'+' n''existe pas!');
end;
//création des onglets principaux
for c:=0 to listadr.Count-1 do
if lowercase(leftstr(listadr[c],4))='pal_'
then
try
onglet:=TTabSheet.Create(pagepal);
with onglet do
begin
_1:=pos('_',listadr[c]);
_2:=_1+pos('_',rightstr(listadr[c],length(listadr[c])-pos('_',listadr[c])-1));
if _2>_1
then begin name:=leftstr(listadr[c],_2);
caption:=midstr(listadr[c],_1+1,_2-_1);end
else begin name:=listadr[c];
caption:=rightstr(listadr[c],length(listadr[c])-_1);
liste:=tlistview.Create(onglet);
with liste do
begin
name:='list_'+listadr[c];
parent:=onglet;
width:=parent.ClientWidth;
height:=parent.ClientHeight;
end;
end;
PageControl:=pagepal;
//création des tpagecontrol de niveau inférieur
if lowercase(leftstr(listadr[c],length('pal_'+onglet.Caption)+1))='pal_'+onglet.Caption+'_'
then
try
souspage:=tpagecontrol.Create(onglet);
with souspage do
begin
parent:=onglet;
width:=parent.ClientWidth;
height:=parent.ClientHeight;
if leftstr(listadr[c],length(name))=name
then
try
creasousonglet(listadr[c]);
except
on ecomponenterror do sousonglet.Free;
end;
end;
except
on ecomponenterror do
begin
souspage.Free;
end;
end;
end;
except
on ecomponenterror do
//échec de création d'un onglet (le nom existe déjà)
//il faut créer un sousonglet dans la souspage
begin
creasousonglet(listadr[c]);
onglet.Free;
end;
end;
end;
procedure creasousonglet(chaine:string);
begin
sousonglet:=TTabSheet.Create(souspage);
with sousonglet do
begin
name:=chaine;
caption:=rightstr(chaine,length(chaine)-_2-1);
pagecontrol:=souspage;
end;
liste:=tlistview.Create(sousonglet);
with liste do
begin
name:='list_'+chaine;
parent:=sousonglet;
width:=parent.ClientWidth;
height:=parent.ClientHeight;
end;
end; |
Partager