Writeln etc.. :( [Delphi] - Programmation
Marsh Posté le 03-07-2002 à 01:47:02
a mon avis ca ecrit rien et ca te fais un gros plantage vu que tu declares une Edit1 en local , que tu ne le crees pas et que tu essayes apres de l'utiliser !
[pascal]procedure TestEcriture(nomfichier:string);
var
[...]
Edit1: TEdit;
begin
[...]
Writeln(F,Edit1.text);
[...]
end;[/pascal]
Marsh Posté le 03-07-2002 à 01:55:42
j'ai remodifié un peu:
cette fois le fichier text est vide et le texte "button2" n'apparaît plus...
[pascal]
var
Form1: TForm1;
Edit1: TEdit;
memo: string;
implementation
{$R *.dfm}
procedure TestEcriture(nomfichier:string);
var
F: TextFile;
begin
memo := Edit1.text;
AssignFile(F,nomfichier);
Rewrite(F);
Writeln(F,memo);
CloseFile(F);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TestEcriture('c:\test.txt'
end;
end.
[/pascal]
Marsh Posté le 03-07-2002 à 02:36:46
euh... ca devrait planter encore une fois...
ta procedure TestEcriture n'est pas une methode de TForm1 et donc ne "connait" pas le Edit1 que tu as posé sur ta Form.
ta procedure TestEcriture utilise donc le Edit1 que tu as déclaré en variable globale et qui, encore une fois, n'a pas été créé .
Si tu veux utiliser le Edit1 de ta form et non celui que tu redeclare, il faut que TestEcriture soit une methode de Form1
[pascal]
TForm1 = class(TForm)
Button2: TButton;
Edit1: TEdit;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure TestEcriture(nomfichier:string);
public
{ Public declarations }
end;
procedure TForm1.TestEcriture(nomfichier:string);
[...]
[/pascal]
Marsh Posté le 03-07-2002 à 09:41:02
ou alors en garde le même style de fonction que ce que tu avais fait :
Writeln(F, Form1.Edit1.Text);
(sans redéclarer Edit1 dans la fonction, puisque ça ne sert à rien)
Marsh Posté le 03-07-2002 à 01:40:05
je veux écrire dans un fichier le contenue d'un Edit1 ,pour cela, je fais ça :
[pascal]
procedure TestEcriture(nomfichier:string);
var
F: TextFile;
Edit1: TEdit;
begin
AssignFile(F,nomfichier);
Rewrite(F);
Writeln(F,Edit1.text);
CloseFile(F);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TestEcriture('c:\test.txt'
end;
[/pascal]
Le programme se lance tranquillement, je clique sur "button2",j'ouvre mon fichier test.txt, et la je vois "button2" , au lieu de ce que j'ai écris dans l'édit1.
Message édité par tssstare le 03-07-2002 à 01:59:37