Répertoire de contacts [Résolu]

odjija - 17 déc. 2012 à 22:12 - Dernière réponse :  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.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_yanb 260 Messages postés lundi 27 octobre 2003Date d'inscription 4 mars 2016 Dernière intervention - 18 déc. 2012 à 10:56
3
Merci
Salut,
le copier coller
  For i:=1 to nb_contact do
  begin
    liste_contact[i].nom := edit1.Text;
    ....
  end;

@+

Merci cs_yanb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_yanb
Meilleure réponse
Utilisateur anonyme - 18 déc. 2012 à 13:03
3
Merci
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
0
Merci
Merci pour ces réponses et cette rapidité, vous m'avez été d'un grand secours.
Commenter la réponse de odjija

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.