194 lines
6.6 KiB
ObjectPascal

unit UES;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls,IniFiles,
UInit,UTest;
procedure Enregistrer;
procedure Ouvrir;
implementation
uses Unit1;
procedure Enregistrer;
var
F:TIniFile;
i:integer;
begin
if Form1.SaveDialog.Execute then begin
F:=TIniFile.Create(Form1.SaveDialog.FileName);
F.WriteInteger('CP','R',Nb_Relais);
F.WriteInteger('CP','L',Nb_Lampe);
F.WriteInteger('CP','X',Nb_Connect);
F.WriteInteger('CP','C',Nb_Contact);
F.WriteInteger('CP','P',Nb_Compo);
F.WriteInteger('CP','S',Nb_Segment);
F.WriteInteger('CP','A',Nb_Alim);
for i:=0 to Nb_Relais-1 do begin
F.WriteInteger('R'+IntToStr(i),'x',L_Relais[i].P.x);
F.WriteInteger('R'+IntToStr(i),'y',L_Relais[i].P.y);
F.WriteInteger('R'+IntToStr(i),'dx',L_Relais[i].Pd.X);
F.WriteInteger('R'+IntToStr(i),'dy',L_Relais[i].Pd.Y);
F.WriteInteger('R'+IntToStr(i),'t',L_Relais[i].tpr);
F.WriteString('R'+IntToStr(i),'m',L_Relais[i].modele);
F.WriteString('R'+IntToStr(i),'n',L_Relais[i].nom);
F.WriteBool('R'+IntToStr(i),'v',L_Relais[i].Visible);
end;
for i:=0 to Nb_Lampe-1 do begin
F.WriteInteger('L'+IntToStr(i),'x',L_Lampe[i].P.x);
F.WriteInteger('L'+IntToStr(i),'y',L_Lampe[i].P.y);
F.WriteInteger('L'+IntToStr(i),'dx',L_Lampe[i].Pd.X);
F.WriteInteger('L'+IntToStr(i),'dy',L_Lampe[i].Pd.Y);
F.WriteInteger('L'+IntToStr(i),'C0',L_Lampe[i].Clr0);
F.WriteInteger('L'+IntToStr(i),'C1',L_Lampe[i].Clr1);
F.WriteString('L'+IntToStr(i),'m',L_Lampe[i].modele);
F.WriteString('L'+IntToStr(i),'n',L_Lampe[i].nom);
F.WriteBool('L'+IntToStr(i),'v',L_Lampe[i].Visible);
end;
for i:=0 to Nb_Connect-1 do begin
F.WriteInteger('X'+IntToStr(i),'x',L_Connect[i].P.X);
F.WriteInteger('X'+IntToStr(i),'y',L_Connect[i].P.Y);
end;
for i:=0 to Nb_Contact-1 do begin
F.WriteInteger('C'+IntToStr(i),'x',L_Contact[i].P.x);
F.WriteInteger('C'+IntToStr(i),'y',L_Contact[i].P.y);
F.WriteString('C'+IntToStr(i),'m',L_Contact[i].modele);
F.WriteBool('C'+IntToStr(i),'i',L_Contact[i].EtatI);
F.WriteBool('C'+IntToStr(i),'j',L_Contact[i].Manuel);
F.WriteString('C'+IntToStr(i),'n',L_Contact[i].nom);
F.WriteBool('C'+IntToStr(i),'v',L_Contact[i].Visible);
F.WriteInteger('C'+IntToStr(i),'dx',L_Contact[i].Pd.X);
F.WriteInteger('C'+IntToStr(i),'dy',L_Contact[i].Pd.Y);
end;
for i:=0 to Nb_Compo-1 do begin
F.WriteInteger('P'+IntToStr(i),'x',L_Compo[i].P.x);
F.WriteInteger('P'+IntToStr(i),'y',L_Compo[i].P.y);
F.WriteString('P'+IntToStr(i),'m',L_Compo[i].modele);
end;
for i:=0 to Nb_Segment-1 do begin
F.WriteInteger('S'+IntToStr(i),'xa',L_Segment[i].P1.X);
F.WriteInteger('S'+IntToStr(i),'ya',L_Segment[i].P1.Y);
F.WriteInteger('S'+IntToStr(i),'xb',L_Segment[i].P2.X);
F.WriteInteger('S'+IntToStr(i),'yb',L_Segment[i].P2.Y);
end;
for i:=0 to Nb_Alim-1 do begin
F.WriteInteger('A'+IntToStr(i),'x',L_Alim[i].P.x);
F.WriteInteger('A'+IntToStr(i),'y',L_Alim[i].P.y);
F.WriteString('A'+IntToStr(i),'m',L_Alim[i].modele);
end;
F.Free;
end;
end;
procedure Ouvrir;
var
F:TIniFile;
i:integer;
begin
if Form1.OpenDialog1.Execute then begin
Initialisation;
F:=TIniFile.Create(Form1.OpenDialog1.FileName);
Nb_Relais:=F.ReadInteger('CP','R',0);
Nb_Lampe:=F.ReadInteger('CP','L',0);
Nb_Connect:=F.ReadInteger('CP','X',0);
Nb_Contact:=F.ReadInteger('CP','C',0);
Nb_Compo:=F.ReadInteger('CP','P',0);
Nb_Segment:=F.ReadInteger('CP','S',0);
Nb_Alim:=F.ReadInteger('CP','A',0);
SetLength(L_Relais,Nb_Relais);
for i:=0 to Nb_Relais-1 do begin
L_Relais[i].P.x:=F.ReadInteger('R'+IntToStr(i),'x',0);
L_Relais[i].P.y:=F.ReadInteger('R'+IntToStr(i),'y',0);
L_Relais[i].Pd.X:=F.ReadInteger('R'+IntToStr(i),'dx',0);
L_Relais[i].Pd.Y:=F.ReadInteger('R'+IntToStr(i),'dy',0);
L_Relais[i].tpr:=F.ReadInteger('R'+IntToStr(i),'t',0);
L_Relais[i].modele:=F.ReadString('R'+IntToStr(i),'m','');
L_Relais[i].nom:=F.ReadString('R'+IntToStr(i),'n','');
L_Relais[i].Visible:=F.ReadBool('R'+IntToStr(i),'v',false);
end;
SetLength(L_Lampe,Nb_Lampe);
for i:=0 to Nb_Lampe-1 do begin
L_Lampe[i].P.x:=F.ReadInteger('L'+IntToStr(i),'x',0);
L_Lampe[i].P.y:=F.ReadInteger('L'+IntToStr(i),'y',0);
L_Lampe[i].Pd.X:=F.ReadInteger('L'+IntToStr(i),'dx',0);
L_Lampe[i].Pd.Y:=F.ReadInteger('L'+IntToStr(i),'dy',0);
L_Lampe[i].Clr0:=F.ReadInteger('L'+IntToStr(i),'C0',RGB(160,160,160));
L_Lampe[i].Clr1:=F.ReadInteger('L'+IntToStr(i),'C1',RGB(255,0,0));
L_Lampe[i].modele:=F.ReadString('L'+IntToStr(i),'m','');
L_Lampe[i].nom:=F.ReadString('L'+IntToStr(i),'n','');
L_Lampe[i].Visible:=F.ReadBool('L'+IntToStr(i),'v',false);
end;
SetLength(L_Connect,Nb_Connect);
for i:=0 to Nb_Connect-1 do begin
L_Connect[i].P.X:=F.ReadInteger('X'+IntToStr(i),'x',0);
L_Connect[i].P.Y:=F.ReadInteger('X'+IntToStr(i),'y',0);
end;
SetLength(L_Contact,Nb_Contact);
for i:=0 to Nb_Contact-1 do begin
L_Contact[i].P.x:=F.ReadInteger('C'+IntToStr(i),'x',0);
L_Contact[i].P.y:=F.ReadInteger('C'+IntToStr(i),'y',0);
L_Contact[i].modele:=F.ReadString('C'+IntToStr(i),'m','');
L_Contact[i].EtatI:=F.ReadBool('C'+IntToStr(i),'i',false);
L_Contact[i].Manuel:=F.ReadBool('C'+IntToStr(i),'j',false);
L_Contact[i].nom:=F.ReadString('C'+IntToStr(i),'n','');
L_Contact[i].Visible:=F.ReadBool('C'+IntToStr(i),'v',false);
L_Contact[i].Pd.X:=F.ReadInteger('C'+IntToStr(i),'dx',0);
L_Contact[i].Pd.Y:=F.ReadInteger('C'+IntToStr(i),'dy',0);
L_Contact[i].Select:=false;
end;
SetLength(L_Compo,Nb_Compo);
for i:=0 to Nb_Compo-1 do begin
L_Compo[i].P.x:=F.ReadInteger('P'+IntToStr(i),'x',0);
L_Compo[i].P.y:=F.ReadInteger('P'+IntToStr(i),'y',0);
L_Compo[i].modele:=F.ReadString('P'+IntToStr(i),'m','');
end;
SetLength(L_Segment,Nb_Segment);
for i:=0 to Nb_Segment-1 do begin
L_Segment[i].P1.X:=F.ReadInteger('S'+IntToStr(i),'xa',0);
L_Segment[i].P1.Y:=F.ReadInteger('S'+IntToStr(i),'ya',0);
L_Segment[i].P2.X:=F.ReadInteger('S'+IntToStr(i),'xb',0);
L_Segment[i].P2.Y:=F.ReadInteger('S'+IntToStr(i),'yb',0);
end;
SetLength(L_Alim,Nb_Alim);
for i:=0 to Nb_Alim-1 do begin
L_Alim[i].P.x:=F.ReadInteger('A'+IntToStr(i),'x',0);
L_Alim[i].P.y:=F.ReadInteger('A'+IntToStr(i),'y',0);
L_Alim[i].modele:=F.ReadString('A'+IntToStr(i),'m','');
end;
F.Free;
end;
end;
end.