floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009
-
3 juin 2009 à 16:09
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009
-
5 juin 2009 à 10:56
Bonjour à tous,
j'explique mon probleme :
j'ai une liste déroulante générée automatiquement.
Cette derniere contient des dates :
01/04/09
05/06/09 etc...
Le probleme est que Delphi les ordonnent avec le premier chiffre qu'il rencontre :
ainsi j'obtiens
01/04/09
05/04/09
06/04/08
07/04/09
je voudrais donc savoir si il existait un moyen de la triée par années dans un premier temps puis par mois, comme la logique le voudrait.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 4 juin 2009 à 17:44
au temps pour moi :
type
TDateOrder = (doDMY, doDYM, doYMD, doYDM, doMYD, doMDY);
procedure ConvertDates(Strings: TStrings; const InOrder,OutOrder: TDateOrder);
var N : integer;
ST, Dy, Mo, Ye: String;
begin
Strings.BeginUpdate;
try
for N := 0 to Strings.Count-1 do
begin
if length(Strings[N]) = 6 then
begin
ST := Strings[N];
case InOrder of
doDMY : begin Dy := ST[1]+ST[2]; Mo := ST[3]+ST[4]; Ye := ST[5]+ST[6]; end;
doDYM : begin Dy := ST[1]+ST[2]; Mo := ST[5]+ST[6]; Ye := ST[3]+ST[4]; end;
doYMD : begin Dy := ST[5]+ST[6]; Mo := ST[3]+ST[4]; Ye := ST[1]+ST[2]; end;
doYDM : begin Dy := ST[3]+ST[4]; Mo := ST[5]+ST[6]; Ye := ST[1]+ST[2]; end;
doMYD : begin Dy := ST[5]+ST[6]; Mo := ST[1]+ST[2]; Ye := ST[3]+ST[4]; end;
doMDY : begin Dy := ST[1]+ST[2]; Mo := ST[1]+ST[2]; Ye := ST[5]+ST[6]; end;
end;
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 4 juin 2009 à 11:15
Extraire les dates à l'envers de m'intéresse pas puisquequ'à la base avant d'envoyer ces dates dans la liste déroulante je les converties déjà au format FR
Avant d'être dans la combobox elles sont sous cette forme:
090426 (26 avril 2009)
puis je les transforme pour plus de lisibilité pour l'utilisateur en
26/04/09
Une autre idée?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 4 juin 2009 à 11:36
Salut,
eh ben ... t'as tout ce qu'il faut ... il suffit de le faire dans le bon sens:
1) tu récupères les dates sans en changer le format
2) tu tries la liste (StringList .Sorted := True)
3) tu modifies le format pour avoir une date "Fr"
4) et tu renvois la liste au ComboBox
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 4 juin 2009 à 12:14
ce qui donne :
type
TDateOrder = (doDMY, doDYM, doYMD, doYDM, doMYD, doMDY);
procedure ConvertDates(String: TStrings; const InOrder,OutOrder: TDateOrder);
var N : integer;
ST, Dy, Mo, Ye: String;
begin
Strings.BeginUpdate;
try
for N := 0 to Strings.Count-1 do
begin
if length(Strings[N]) = 6 then
begin
ST := Strings[N];
case InOrder of
doDMY : begin Dy := ST[1]+ST[2]; Mo := ST[3]+ST[4]; Ye := ST[5]+ST[6]; end;
doDYM : begin Dy := ST[1]+ST[2]; Mo := ST[5]+ST[6]; Ye := ST[3]+ST[4]; end;
doYMD : begin Dy := ST[5]+ST[6]; Mo := ST[3]+ST[4]; Ye := ST[1]+ST[2]; end;
doYDM : begin Dy := ST[3]+ST[4]; Mo := ST[5]+ST[6]; Ye := ST[1]+ST[2]; end;
doMYD : begin Dy := ST[5]+ST[6]; Mo := ST[1]+ST[2]; Ye := ST[3]+ST[4]; end;
doMDY : begin Dy := ST[1]+ST[2]; Mo := ST[1]+ST[2]; Ye := ST[5]+ST[6]; end;
end;
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 4 juin 2009 à 16:17
Une autre idée ? Reessaie la soluce de foxi qui est 100% bonne !
"Delphi en veut pas" si tu veux mon avis, le problème se situe entre le clavier et la chaise ...
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 4 juin 2009 à 16:20
Oh oh la touche d'humour, j'ai jamais dit que j'étais un professionnel... et j'suis tout à fait d'accord, le problème est bien la, seulement j'ai beau faire un vulgaire copier coller (en adpatant biensur...) il refuse de me le compiler.
Alors pourriez vous s'il vous plait m'expliquer ce qu'il faut faire (faut rajouter un truc dans les uses?).
Merci.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 4 juin 2009 à 16:35
^^ PEBKAC comme on dit :p
euh et bien deja, y a t-il un message d'erreur de compilation ? si oui, je voudrais le connaitre.
Le type, est-il bien déclaré avec les autres types ?
L'evenementquelquonque est placé/lancé comment sur ton code ?
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 5 juin 2009 à 10:56
Au temps pour moi également, j'avais fait quelqus erreurs ^^
Cette solution est tout à fait adaptée et de plus permet de convertir avec le format que l'on souhaite.
Excellent!
Merci.