killerdam
Messages postés21Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention26 mai 2006
-
5 avril 2005 à 10:35
killerdam
Messages postés21Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention26 mai 2006
-
5 avril 2005 à 23:31
Bonjour,
J ai realisé une creation dynamique d onglets, avec la possiblité, pour
l'utilisateur de nommer chaque nouvel onglet ( a l aide d un Tedit).Mon
souhait serait de trier ces onglets par ordre alphabétique.Pour cela
j'ai pensé à un tri par insertion, mais le nombre d onglet n'est pas
fini.
Si vous avez une idée (vous en avez surement une) faites moi part de vos suggestions...
var
i : integer ;
p : tpagecontrol ;
sl : tstringList ;
begin
Tabsheet1.Caption:=E_nom1.Text;
sl := tstringList .create ;
try
P := TabSheet1.PageControl ;
sl.sorted := true ;
for i := 0 to P.PageCount-1 do
sl.add(P.Pages[i].Caption) ;
for i := P.PageCount-1 downto 0 do
begin
P.Pages[i].PageIndex := sl.IndexOf( P.Pages[i].Caption ) ;
end ;
finally
sl.free;
end;
end;
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 5 avril 2005 à 23:18
procedure TF_Courbe_de_Bezier.B_ok1Click(Sender: TObject);
var
i : integer ;
p : tpagecontrol ;
sl : tstringList ;
begin
Tabsheet1.Caption:=E_nom1.Text;
// Création d'une liste de chaines de caracteres pour contenir les noms des onglets
sl := tstringList .create ;
try
// On recupere le parent du tabsheet, c'est à dire le pagecontrol
P := TabSheet1.PageControl ;
// On active le tri sur la stringlist afin que les elements ajoutés
// soient triés au fur et à mesure
sl.sorted := true ;
// On parcours l'ensemble des onglets pour recuperer le nom du tabsheet
// et l'ajouter à la liste
for i := 0 to P.PageCount-1 do
sl.add(P.Pages[i].Caption) ;
// On parcours l'ensemble des onglets dans le sens inverse
// A chaque nom d'onglet on regarde sa position triée dans la liste
// Cette position triée devient le nouveau numero de pageindex c-à-d
// le nouvel emplacement du tabsheet.
for i := P.PageCount-1 downto 0 do
begin
P.Pages[i].PageIndex := sl.IndexOf( P.Pages[i].Caption ) ;
end ;
finally
sl.free;
end;
end;