Bonjour,
J'ai une appli qui contient des Edit et je voudrai récupérer les données des Edit dans un fichier txt.
J'ai repris le prg de DelphiProg concernant la récupération de données de zones Edit en le modifiant, mais les Edit font partie de la même fenêtre que les Buttons de lancement du prg de récup. Tandis que moi je voudrai avoir une fenêtre contenant les Buttons de lancement du prg (le prg récupérant les données d'une fenêtre de mon appli).
Faut-il définir, dans le prg, les Edit de manière à ce que le prg prenne les Edit de la fenetre "test" ? Exemple : test.Edit1, ...
Je ne sais comment faire, je débute en prg Delphi.
Merci de m'aider
Voici le prg modifié :
unit UMultiEditForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMultiEditForm = class(TForm)
btnSaveEdits: TButton;
btnReloadEdits: TButton;
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Memo1: TMemo;
btnVerifyFile: TButton;
Button1: TButton;
Button2: TButton;
Memo2: TMemo;
procedure btnSaveEditsClick(Sender: TObject);
procedure btnReloadEditsClick(Sender: TObject);
procedure btnVerifyFileClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
MultiEditForm: TMultiEditForm;
const
//Nom du fichier où seront sauvegardés les contenus des TEdit
FileName = 'Fichier.txt';
//SectionName
Section = 'Edits';
implementation
{$R *.dfm}
uses
IniFiles;
Var
EditsFileName,line : string;
F : textfile;
St : TStringList;
procedure TMultiEditForm.btnSaveEditsClick(Sender: TObject);
var
i : integer;
Ini : TIniFile;
Edit : TEdit;
begin
Ini := TIniFile.Create(EditsFileName);
try
//parcourir les composants sur la fiche
for i:=0 to ComponentCount - 1 do
//si le composant trouvé est du type recherché
if Components[i] is TEdit then
begin
Edit := TEdit(Components[i]);
//écrire un entrée avec le nom et le contenu du contrôle
Ini.WriteString(Section, Edit.Name, Edit.Text+';');
end;
btnVerifyFile.Enabled := True;
finally
Ini.Free;
end;
end;
procedure TMultiEditForm.btnReloadEditsClick(Sender: TObject);
var
i : integer;
Ini : TIniFile;
Edit : TEdit;
begin
Ini := TIniFile.Create(EditsFileName);
try
For i:=0 to ComponentCount - 1 do
if Components[i] is Tedit then
begin
Edit := Components[i] as TEdit;
Edit.Text := Ini.ReadString(Section, Edit.Name, 'Non trouvé');
end;
finally
Ini.Free;
end;
end;
procedure TMultiEditForm.btnVerifyFileClick(Sender: TObject);
begin
Memo1.Clear;
if FileExists(EditsFileName) then
Memo1.Lines.LoadFromFile(EditsFileName);
end;
procedure TMultiEditForm.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('c:\yoyo.txt');
end;
procedure TMultiEditForm.Button2Click(Sender: TObject);
var G:textfile;
I:integer;
begin
AssignFile(G,'c:\yuyu.txt');
Append(G);
For I:=2 to Memo1.Lines.count do
Writeln(G,Memo1.Lines[1]+Memo1.Lines[2]);
CloseFile(G);
Memo1.Clear;
end;
Initialization
//Construire le nom du fichier de sauvegarde
EditsFileName := ExtractFilePath(Application.ExeName) + FileName;
end.