1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| unit uODico;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ajoutEnregistrement: TButton;
edNom: TEdit;
edType: TEdit;
edDef: TEdit;
labNombreDEnregistrements: TLabel;
bModifierNom: TButton;
bAfficher: TButton;
bSupprimerEnregistrement: TButton;
bAfficherSuivant: TButton;
procedure ajoutEnregistrementClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bModifierNomClick(Sender: TObject);
procedure bAfficherClick(Sender: TObject);
procedure bSupprimerEnregistrementClick(Sender: TObject);
procedure bAfficherSuivantClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type TTypeDico = object
ListeNoms : tStringList;
ListeTypes : tStringList;
ListeDefs : tStringList;
ind : integer;
procedure Initialiser;
function Trouves(nom : string) : boolean;
procedure Ajouter(nom,leType,Def : string);
procedure AfficherEnreg(nom : string);
//<: pour ré-afficher nom + leType + Def dans les Edit
procedure AfficherSuivant;
procedure CorrigerNom(AncienNom,NouveauNom : string);
procedure SupprimerEnreg(nom : string);
//<: pour supprimer l'enregistrement nom + leType + Def
end;
procedure TTypeDico.Initialiser;
begin ListeNoms := tStringList.create;
ListeTypes := tStringList.create;
ListeDefs := tStringList.create;
ListeNoms.Sorted:=false;
ListeTypes.Sorted:=false;
ListeDefs.Sorted:=false;
ind:=-1;
end;
function TTypeDico.Trouves(nom : string) : boolean;
begin Result := listeNoms.IndexOf(AnsiUpperCase(nom)) >=0;
end;
procedure TTypeDico.Ajouter(nom,letype,Def : string);
begin if Trouves(AnsiUpperCase(nom))
then begin showMessage('nom existe déjà'); EXIT; end;
ListeNoms.Add(AnsiUpperCase(nom));
ListeTypes.Add(AnsiUpperCase(letype));
ListeDefs.Add(AnsiUpperCase(Def));
ind:=ListeNoms.count-1;
Form1.labNombreDEnregistrements.caption:=IntToStr(ListeNoms.count);
end;
procedure TTypeDico.AfficherEnreg(nom : string);
begin ind:=ListeNoms.indexOf(AnsiUpperCase(nom));
if ind<0 then begin showmessage(Nom+' : n''existe pas'); EXIT; end;
Form1.edNom.text:=AnsiLowerCase(ListeNoms[ind]);
Form1.edType.text:=AnsiLowerCase(ListeTypes[ind]);
Form1.edDef.text:=AnsiLowerCase(ListeDefs[ind]);
end;
procedure TTypeDico.AfficherSuivant;
begin if ind<ListeNoms.Count-1 then
begin inc(ind);
Form1.edNom.text:=AnsiLowerCase(ListeNoms[ind]);
Form1.edType.text:=AnsiLowerCase(ListeTypes[ind]);
Form1.edDef.text:=AnsiLowerCase(ListeDefs[ind]);
end else showMessage('Atteint Fin du Dico');
end;
procedure TTypeDico.CorrigerNom(AncienNom,NouveauNom : string);
begin ind:=ListeNoms.indexOf(AnsiUpperCase(AncienNom));
if ind>=0 then ListeNoms[ind]:=AnsiUpperCase(NouveauNom)
else showmessage(AncienNom+' : n''existe pas')
end;
procedure TTypeDico.SupprimerEnreg(nom : string);
begin ind:=ListeNoms.indexOf(AnsiUpperCase(nom));
if ind<0 then begin showmessage(nom+' : n''existe pas'); EXIT; end;
ListeNoms.Delete(ind);
ListeTypes.Delete(ind);
ListeDefs.Delete(ind);
Form1.labNombreDEnregistrements.caption:=IntToStr(ListeNoms.count);
end;
// Utilisation de l'objet Dico
var Dico1 : TTypeDico;
procedure TForm1.FormCreate(Sender: TObject);
begin Dico1.Initialiser;
end;
procedure TForm1.ajoutEnregistrementClick(Sender: TObject);
begin Dico1.Ajouter(edNom.text,edType.text,edDef.Text);
end;
procedure TForm1.bAfficherClick(Sender: TObject);
begin Dico1.AfficherEnreg(edNom.text);
end;
procedure TForm1.bAfficherSuivantClick(Sender: TObject);
begin Dico1.AfficherSuivant;
end;
procedure TForm1.bModifierNomClick(Sender: TObject);
begin Dico1.CorrigerNom(edNom.text,'NouveauNom');
end;
procedure TForm1.bSupprimerEnregistrementClick(Sender: TObject);
begin Dico1.SupprimerEnreg(edNom.text);
end;
end. |
Partager