fberut
Messages postés3Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention 8 juillet 2004
-
25 juin 2004 à 15:31
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 2006
-
25 juin 2004 à 15:49
Bonjour,
Je souhaite récupérer le contenu d'une colonne d'une dbgrid dans une listbox ou combobox ? Merci de votre aide
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 25 juin 2004 à 15:49
Salut,
Désolé je n'ai pas beaucoup de temps. Voici la fonction que j'utilise dans mon soft pour faire cela. Si tu as des diffucultés a comprendre dis moi le je t'expliquerai.
{------------------------------------------------------------------------------}
{ Renvoie les enregistrements d'un champ sans doublons et triés. }
{------------------------------------------------------------------------------}
function ExportDataChamps(ChampTrier : String;Table : TTable;
var ProgressBar : TProgressBar) : TStringList;
var
I,J : Integer;
Number : Boolean;
Long,Max,Diff : Integer;
Temp : String;
Resultat : TStringList;
begin
Try
Number := True;
{On récupère le dernier enregistrement}
Table.DisableControls;
Table.FindFirst;
{Création des TStringList}
Resultat := TStringList.Create;
Resultat.Sorted := True;
Resultat.Duplicates := dupIgnore;
Result := TStringList.Create;
Result.Sorted := True;
Result.Duplicates := dupIgnore;
ProgressBar.Max := Table.RecordCount;
Result.Add('');
{Affectation des données de la base vers la TStringList de sortie}
{En même temps on teste si le champ est composé uniquement de nombres}
For I:=0 to Table.RecordCount-1 do
begin
ProgressBar.StepIt;
If (IsStrANumber(Table.FieldByName(ChampTrier).Text)) and (Number) then
Number := True
else
Number := False;
{Si le champ est composé uniquement de nombres alors on va les trier par ordre croissant}
If Number then
begin
Max := 1;
Temp := '';
{On recherche la longueur maximale des enregistrements}
For I:=0 to Result.Count-1 do
begin
Long := Length(Result.Strings[I]);
If Long > Max then Max := Long;
end;
{On ajoute des zéros aux enregistrements dont la longueur est inférieur à la longueur max}
For I:=0 to Result.Count-1 do
begin
Long := Length(Result.Strings[I]);