System.Generics.Collections.pas ; System.Generics.Default.pas [Résolu]

Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
-
Bonjour à tous,
Je n'arrive pas à trouver les fichiers :
"System.Generics.Collections.pas". ainsi que "System.Generics.Default.pas"

Je les ai cherché pour les télécharger, car je ne les ai pas avec ma version delphi, mais je ne les ai pas trouvé sur le net.
Quelqu'un peut-il me dire ou les trouver ???, car j'aurais besoin de les déclarer dans ma clause Uses.
Cordialement
Afficher la suite 

Votre réponse

2 réponses

Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
Quelle version de Delphi as-tu

Generics.Collections & Generics.Default on été ajouté à partir de Delphi 2009

si ta version est < à 2009 ça ne sert à rien de les chercher sur le net tu ne pourras pas les compiler car utilise de nouvelles méthodes qui ne sont pas comprise par les anciens compilateurs.

Et si ta version est >= à 2009 tu les as déjà !!!

on ne peut pas simplement espérer télécharger des fichiers et les intégrer

Cordialement,
cs_sagitarius
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
-
Bonsoir Cirec,
merci pour ta réponse, j'utilise Delphi 2005,
Alors, comment faire j'ai un problème de déclaration
TObjectList<T> ; TComparer<T>

cordialement
Commenter la réponse de Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
eh bien je dirais vu la déclaration
tu cherches à trier une liste d'objets(T représentant le type)
il faut donc le faire à l'ancienne:
tu crées un TObjectList tu y ajoutes les objets par la méthode Add
ensuite tu crées une procédure de trie sur le modèle : TListSortCompare = function (Item1, Item2: Pointer): Integer;

c'est cette procédure qui déterminera le type de trie à effectuer.

par exemple pour trier le contenu de 8 Tlabel
Sur une fiche tu ajoutes 8 TLabel(nommés de Label1 à Label8) avec comme Caption un mot une lettre ou un nombre
ajoutes un TButton et un TMemo pour voir le résultat:
implementation
uses Contnrs;
{$R *.dfm}

// fonction de tri pour TLabel
// le tri est effectué sur le Caption des labels
// renvoi -1 si Item1 < Item2
// renvoi 0 si Item1 = Item2
// renvoi 1 si Item1 > Item2
function MySortFunc(Item1, Item2: Pointer): Integer;
var
  Lbl1: TLabel absolute Item1;
  Lbl2: TLabel absolute Item2;
begin
  Result := 0;
  if (Item1 = nil) or (Item2 = nil) then Exit;
  Result := CompareText(lbl1.Caption, lbl2.Caption);
  // pour un résultat par ordre décroissant activer la ligne suivante:
  //Result := Result * -1;
end;

procedure TMainform.Button1Click(Sender: TObject);
var
  obList: TObjectList;
  I: Integer;
begin
  Memo1.Clear;
  obList := TObjectList.Create;
  try
    for I := 0 to 7 do obList.Add(TLabel(FindComponent('Label'+IntToStr(I+1))));

    Memo1.Lines.Add('List avant tri:');
    for I := 0 to 7 do Memo1.Lines.Add(TLabel(obList.Items[I]).Caption);

    obList.Sort(MySortFunc);
    Memo1.Lines.Add('');

    Memo1.Lines.Add('List après tri:');
    for I := 0 to 7 do Memo1.Lines.Add(TLabel(obList.Items[I]).Caption);
  finally
    obList.Free;
  end;
end;




Cordialement,

    
@+ Cirec
cs_sagitarius
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
-
Bonsoir Cirec;
Merci pour ta réponse, effectivement, ça tri bien les labels,
Merci beaucoup;
cordialement
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.