Répertoire de contacts

Résolu
odjija - 17 déc. 2012 à 22:12
 odjija - 18 déc. 2012 à 20:57
Bonjour, je travail sur un projet qui consiste à créer un répertoire de contact et j'ai un souci avec ma dernière procédure, je veux récupérer une variable de ma procédure précédente pour la réutilisé mais delphi me dit que ma "partie de gauche n'est pas affectable". Etant un novice sous delphi, je voudrais savais si quelqu'un avait une idée?

unit repertoire;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

// Déclaration du nouveau type 'contact'

type contact = record
nom,prenom,adresse,email,telephone : string;

end;

liste = array [1..50] of contact;


TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label3: TLabel;
Button1: TButton;
Edit3: TEdit;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
Edit4: TEdit;
Adresse: TLabel;
Edit5: TEdit;
Email: TLabel;
Memo1: TMemo;
Edit6: TEdit;
Button4: TButton;
Memo2: TMemo;
Button5: TButton;
Edit7: TEdit;
Label4: TLabel;
Button6: TButton;
procedure enregistrer(Sender: TObject);
procedure formcreate(Sender: TObject);
procedure creer(Sender: TObject);
procedure afficher(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);

private
{ Déclarations privées }
liste_contact:liste;
nb_contact:integer;
public
{ Déclarations publiques }
end;

var
Form1: TForm1;
p:integer; //variable global des positions des contacts.

implementation

{$R *.dfm}

procedure TForm1.enregistrer(Sender: TObject); // procédure qui enregistre les données rentrées dans les cases edit 1 à 5 dans un fichier texte.
var monFichier : TextFile;
i : integer; //variable local des positions des contacts.

begin

AssignFile(monFichier,'repertoire.txt');

rewrite(monFichier);

writeln(monFichier,nb_contact);

for i:=1 to nb_contact do
begin
//écriture dans le fichier et mémorisation dans liste_contact[i]
writeln(monFichier,liste_contact[i].nom);
writeln(monFichier,liste_contact[i].prenom);
writeln(monFichier,liste_contact[i].telephone);
writeln(monFichier,liste_contact[i].adresse);
writeln(monFichier,liste_contact[i].email);
end;

closefile(monFichier);

end;


procedure TForm1.formcreate(Sender: TObject); //Procédure de lecture du fichier texte.
var monFichier2 : TextFile;
i : integer; //variable local des positions des contacts.

begin

AssignFile(monFichier2,'repertoire.txt');

reset(monFichier2);

readln(monFichier2,nb_contact);

for i:=1 to nb_contact do
begin
//lecture dans le fichier et mémorisation dans lesNotes[i]
readln(monFichier2,liste_contact[i].nom);
readln(monFichier2,liste_contact[i].prenom);
readln(monFichier2,liste_contact[i].telephone);
readln(monFichier2,liste_contact[i].adresse);
readln(monFichier2,liste_contact[i].email);
end;

closefile(monFichier2);

end;


procedure TForm1.creer(Sender: TObject); // procédure qui permet de creer des contacts.
begin
nb_contact:= nb_contact+1;
liste_contact[nb_contact].nom := edit1.Text; // edit1 correspond au nom
liste_contact[nb_contact].prenom := edit2.Text; // edit2 correspond au prénom
liste_contact[nb_contact].telephone := edit3.Text; // edit3 correspond au numéro de téléphone
liste_contact[nb_contact].adresse := edit4.Text; // edit4 correspond à l'adresse
liste_contact[nb_contact].email := edit5.Text; // edit5 correspond à l'adresse email
end;



procedure TForm1.afficher(Sender: TObject); // procédure qui affiche tous les contacts dans une fenêtre.


var
i:integer; //variable local des positions des contacts.

begin

memo1.lines.Clear;



for i:=1 to nb_contact do
begin
//affichage des données dans le mémo1
memo1.Lines.add(liste_contact[i].nom);
memo1.Lines.add(liste_contact[i].prenom);
memo1.Lines.add(liste_contact[i].telephone);
memo1.Lines.add(liste_contact[i].adresse);
memo1.Lines.add(liste_contact[i].email);
memo1.Lines.Add(' ');
end;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
liste_contact[2].nom := edit6.Text;
end;

procedure TForm1.Button5Click(Sender: TObject); // procédure qui affiche le ou les contacts recherché dans le mémo 2 et affiche le 1er résultat dans les edits 1 à 5.

var
i:integer; //variable local des positions des contacts.

begin


memo2.lines.Clear;

for i:=1 to nb_contact do

if (pos (edit7.text , liste_contact[i].nom)<>0) then
begin
memo2.lines.add(liste_contact[i].nom);
memo2.Lines.add(liste_contact[i].prenom);
memo2.Lines.add(liste_contact[i].telephone);
memo2.Lines.add(liste_contact[i].adresse);
memo2.Lines.add(liste_contact[i].email);
memo2.Lines.Add(' ');

edit1.Text := (liste_contact[i].nom);
edit2.Text := (liste_contact[i].prenom);
edit3.Text := (liste_contact[i].telephone);
edit4.Text := (liste_contact[i].adresse);
edit5.Text := (liste_contact[i].email);

p:=i;
end

end;

procedure TForm1.Button6Click(Sender: TObject);
var
i:integer;
begin
i:=p;
For i:=1 to nb_contact do

(liste_contact[i].nom):=edit1.Text;
(liste_contact[i].prenom):= edit2.Text;
(liste_contact[i].telephone):=edit3.Text;
(liste_contact[i].adresse):=edit4.Text;
(liste_contact[i].email):=edit5.Text;
end;

end.

3 réponses

cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
18 déc. 2012 à 10:56
Salut,
le copier coller
  For i:=1 to nb_contact do
  begin
    liste_contact[i].nom := edit1.Text;
    ....
  end;

@+
3
Utilisateur anonyme
18 déc. 2012 à 13:03
Salut

procedure TForm1.Button6Click(Sender: TObject);
var
i:integer;
begin
//Tu initialises la variable i
i:=p;
//Et là tu incrémentes à chaque boucle i, en commençant à 1 jusqu'à nb_contact : Bilan ton initialisation précédente de i, ne sert strictement à rien
For i:=1 to nb_contact do

(liste_contact[i].nom):=edit1.Text;
(liste_contact[i].prenom):= edit2.Text;
(liste_contact[i].telephone):=edit3.Text;
(liste_contact[i].adresse):=edit4.Text;
(liste_contact[i].email):=edit5.Text;
end; 


Avant tout, tu devrais déjà rectifier cette erreur et effectivement supprimer les parenthèses qui ne servent à rien
3
Merci pour ces réponses et cette rapidité, vous m'avez été d'un grand secours.
0
Rejoignez-nous