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

cs_sagitarius 64 Messages postés samedi 26 août 2017Date d'inscription 7 août 2018 Dernière intervention - 4 nov. 2017 à 17:21 - Dernière réponse : cs_sagitarius 64 Messages postés samedi 26 août 2017Date d'inscription 7 août 2018 Dernière intervention
- 5 nov. 2017 à 19:19
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

4 réponses

Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 3 août 2018 Dernière intervention - 4 nov. 2017 à 19:50
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 64 Messages postés samedi 26 août 2017Date d'inscription 7 août 2018 Dernière intervention - 4 nov. 2017 à 21:59
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
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 3 août 2018 Dernière intervention - Modifié par Cirec le 5/11/2017 à 18:17
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 64 Messages postés samedi 26 août 2017Date d'inscription 7 août 2018 Dernière intervention - 5 nov. 2017 à 19:19
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.