Liste de chaînes

Niveau classe visuelle avec héritage des TListBox
 (CD-ROMDelphi.ListeChaines\Liste4Visuelle.Dlfi)



: Les projets Delphi


Objectif : Implantation sous forme d'une classe Delphi  (TAD de  liste de chaînes de caractères) héritant directement de la classe visuelle des "TListBox" de Delphi.

La fiche principale, le code associé dans la unit
 

Exécuter le programme
 

La fiche principale du  projet :


                                  interface de test de la classe visuelle
                                                                                                    Remonter 

Le code de la Unit fiche principale :

unit UListeVisu;

 interface
Uses Classes,StdCtrls;
type
 T0 = string;
 liste =class(TListBox)
         public
          procedure init_liste;
          function longueur : integer;
          procedure supprimer (k: integer);
          procedure inserer (k: integer; x: T0);
          function kieme (n: integer): T0;
          function Test (x: T0): boolean;
          procedure Rechercher (x: T0; var place: integer);
          procedure creationListe(Box:TListBox);
          procedure Ajouter(x:T0);
          procedure effacer;
         private
          function Est_vide:boolean;
        end;

 implementation
{//////////////////////////////// INTERNE ///////////////////////////////}
Uses Dialogs;

 procedure writeln(s:string);
begin
 showmessage(S)
end;
{//////////////////////////////// PRIVATE ///////////////////////////////}
function liste.Est_vide:boolean;
begin
 if not assigned(self) then
 begin
    writeln('>>> Gestionnaire de Liste: Liste non initialisée !! (erreur fatale)');
    halt
 end
 else
     if self.items.count=0 then
          Est_vide:=true
     else Est_vide:=false
end;

 {//////////////////////////////// PUBLIC /////////////////////////////}

procedure liste.init_liste;
{initialisation déjà effectuée par le liste.Create
hérité du TListBox.Create}
begin

 end;

 function liste.longueur : integer;
begin
  longueur := self.items.count
end;

 procedure liste.supprimer (k: integer);
begin
  self.items.Delete(k-1);
end;

 procedure liste.inserer (k: integer; x: T0);
begin
  self.items.Insert(k-1,x);
end;

 function liste.kieme (n: integer): T0;
begin
  kieme:=self.items.strings[n-1]
end;

 function liste.Test (x: T0): boolean;
{teste la présence ou non de x dans la liste L}
begin
 if not self.Est_vide then
  if self.items.IndexOf(x)=-1 then Test:=false
  else Test:=true
end;

 procedure liste.Rechercher (x: T0; var place: integer);
begin
 if not self.Est_vide then
  if self.items.IndexOf(x)=-1 then place:=0
  else place:=self.items.IndexOf(x)+1
end;

 procedure liste.creationListe(Box:TListBox);
{création de la liste L (le ListBox est déjà chargé manuellement}
begin
  self.items.AddStrings(Box.Items);
end;

 procedure liste.Ajouter(x:T0);
begin
  self.items.Add(x);
end;

 procedure liste.effacer;
begin
  self.items.clear
end;

end.
                                                                             Remonter 



EXECUTION DU PROGRAMME :