778 lines
20 KiB
ObjectPascal
Raw Permalink Blame History

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls, Buttons,
UInit, UDessin, Uedit, UES, UDessinComposant, UPage, Spin, UExec, UTest,
ExtDlgs;
type
TForm1 = class(TForm)
Pnl_Haut: TPanel;
MainMenu: TMainMenu;
Fichier1: TMenuItem;
Memo1: TMemo;
Nouveau: TMenuItem;
M_Ouvrir: TMenuItem;
M_Enregistrer_sous: TMenuItem;
Pnl_Composants: TPanel;
Im_al1: TImage;
Im_al2: TImage;
Im_al3: TImage;
Im_cx: TImage;
Im_rl4: TImage;
Im_rl1: TImage;
Im_rl10: TImage;
Im_rl7: TImage;
Im_rl8: TImage;
Im_rl5: TImage;
Editer: TMenuItem;
M_Affichage: TMenuItem;
LoupeAg: TMenuItem;
LoupeRed: TMenuItem;
Grille: TMenuItem;
Taille_normale: TMenuItem;
Im_rl3: TImage;
Im_rl2: TImage;
Im_rl6: TImage;
Im_rl9: TImage;
Im_rl11: TImage;
Im_ct1: TImage;
Zoom_Max: TMenuItem;
Label1: TLabel;
Im_ct2: TImage;
Im_ct4: TImage;
Im_ct3: TImage;
Im_ct6: TImage;
Im_ct5: TImage;
OpenDialog1: TOpenDialog;
SaveDialog: TSaveDialog;
Im_ct7: TImage;
Im_ct8: TImage;
Im_ct9: TImage;
Zoom_min: TMenuItem;
M_Decalage: TMenuItem;
Vers_haut: TMenuItem;
Vers_bas: TMenuItem;
Vers_gauche: TMenuItem;
Vers_droite: TMenuItem;
Pnl_Image: TPanel;
Image: TImage;
SB_Hor: TScrollBar;
SB_Ver: TScrollBar;
Im_cp1: TImage;
Im_ct10: TImage;
Button1: TButton;
Executer: TMenuItem;
Pnl_Editer: TPanel;
BBtn_Supprime: TBitBtn;
SBtn_Selection: TSpeedButton;
SBtn_Deplace: TSpeedButton;
SBtn_Compo: TSpeedButton;
SBtn_Relier: TSpeedButton;
BBtn_Gauche: TBitBtn;
BBtn_Haut: TBitBtn;
BBtn_Bas: TBitBtn;
BBtn_Droite: TBitBtn;
SBtn_Label: TSpeedButton;
Pnl_Contact: TPanel;
CB_C_Manuel: TCheckBox;
CB_C_EtatI: TCheckBox;
Label2: TLabel;
Btn_C_ok: TButton;
Im_ct11: TImage;
Im_ct12: TImage;
Im_ct13: TImage;
Im_ct14: TImage;
Label7: TLabel;
CO_C_Nom: TComboBox;
CB_C_Visible: TCheckBox;
Label8: TLabel;
SP_C_dx: TSpinEdit;
Label9: TLabel;
SP_C_dy: TSpinEdit;
Timer1: TTimer;
Noir1: TMenuItem;
Potentiels1: TMenuItem;
Courants1: TMenuItem;
Im_ct15: TImage;
N2: TMenuItem;
VisuelRelais: TMenuItem;
Im_rl12: TImage;
Im_la1: TImage;
Im_la2: TImage;
Pnl_Lampe: TPanel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
ED_L_Nom: TEdit;
Btn_L_Ok: TButton;
SP_L_dx: TSpinEdit;
SP_L_dy: TSpinEdit;
CB_L_Visible: TCheckBox;
Pnl_Relais: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label10: TLabel;
ED_R_Nom: TEdit;
CB_R_EtatI: TCheckBox;
Btn_R_Ok: TButton;
SP_R_dx: TSpinEdit;
SP_R_dy: TSpinEdit;
CB_R_Visible: TCheckBox;
ED_R_Tempo: TEdit;
PNL_L0: TPanel;
PNL_L1: TPanel;
Label15: TLabel;
Label16: TLabel;
ColorDialog1: TColorDialog;
TmrPulse: TTimer;
SavePictureDialog1: TSavePictureDialog;
EnregistrerImage1: TMenuItem;
Visuelinteractif: TMenuItem;
Im_ct16: TImage;
Im_ct17: TImage;
Zoomajuster1: TMenuItem;
Memo2: TMemo;
Panel1: TPanel;
Button2: TButton;
Button4: TButton;
Button5: TButton;
Button3: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
procedure FormActivate(Sender: TObject);
procedure EditerClick(Sender: TObject);
procedure ImageDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
procedure ImageDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure LoupeAgClick(Sender: TObject);
procedure LoupeRedClick(Sender: TObject);
procedure Taille_normaleClick(Sender: TObject);
procedure GrilleClick(Sender: TObject);
procedure Zoom_MaxClick(Sender: TObject);
procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
procedure M_Enregistrer_sousClick(Sender: TObject);
procedure M_OuvrirClick(Sender: TObject);
procedure ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure NouveauClick(Sender: TObject);
procedure Zoom_minClick(Sender: TObject);
procedure Vers_hautClick(Sender: TObject);
procedure Vers_gaucheClick(Sender: TObject);
procedure Vers_basClick(Sender: TObject);
procedure Vers_droiteClick(Sender: TObject);
procedure SB_HorChange(Sender: TObject);
procedure SB_VerChange(Sender: TObject);
procedure BBtn_SupprimeClick(Sender: TObject);
procedure ImageContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
procedure Button1Click(Sender: TObject);
procedure ExecuterClick(Sender: TObject);
procedure SBtn_CompoClick(Sender: TObject);
procedure SBtn_SelectionClick(Sender: TObject);
procedure SBtn_DeplaceClick(Sender: TObject);
procedure SBtn_RelierClick(Sender: TObject);
procedure SBtn_LabelClick(Sender: TObject);
procedure BBtn_BasClick(Sender: TObject);
procedure BBtn_HautClick(Sender: TObject);
procedure BBtn_GaucheClick(Sender: TObject);
procedure BBtn_DroiteClick(Sender: TObject);
procedure Btn_C_okClick(Sender: TObject);
procedure Btn_R_OkClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Memo1DblClick(Sender: TObject);
procedure Fichier1Click(Sender: TObject);
procedure Noir1Click(Sender: TObject);
procedure Potentiels1Click(Sender: TObject);
procedure Courants1Click(Sender: TObject);
procedure VisuelRelaisClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ED_R_TempoKeyPress(Sender: TObject; var Key: Char);
procedure Btn_L_OkClick(Sender: TObject);
procedure PNLCLRClick(Sender: TObject);
procedure TmrPulseTimer(Sender: TObject);
procedure EnregistrerImage1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure VisuelinteractifClick(Sender: TObject);
procedure Zoomajuster1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ D<>clarations priv<69>es }
public
{ D<>clarations publiques }
end;
var
Form1: TForm1;
const rmax=999;
implementation
{$R *.dfm}
// * Initialisation *
procedure TForm1.FormActivate(Sender: TObject);
begin
Initialisation;
end;
// * Zoom *
procedure TForm1.LoupeAgClick(Sender: TObject);
begin
If Zoom>0.5 then Zoom:=Zoom/1.15;
Affichage;
end;
procedure TForm1.LoupeRedClick(Sender: TObject);
begin
If Zoom<1.75 then Zoom:=Zoom*1.15;
Affichage;
end;
procedure TForm1.Taille_normaleClick(Sender: TObject);
begin
Zoom:=1;
Affichage;
end;
procedure TForm1.Zoom_minClick(Sender: TObject);
begin
Zoom:=2.1;
Affichage;
end;
procedure TForm1.Zoom_MaxClick(Sender: TObject);
begin
Zoom:=0.43;
Affichage;
end;
// * Grille *
procedure TForm1.GrilleClick(Sender: TObject);
begin
Grille.Checked:=not(Grille.Checked);
Affichage;
end;
// * D<>calage Image *
procedure TForm1.Vers_hautClick(Sender: TObject);
begin
Decalage(0,1);
end;
procedure TForm1.Vers_gaucheClick(Sender: TObject);
begin
Decalage(1,0);
end;
procedure TForm1.Vers_basClick(Sender: TObject);
begin
Decalage(0,-1);
end;
procedure TForm1.Vers_droiteClick(Sender: TObject);
begin
Decalage(-1,0);
end;
procedure TForm1.SB_HorChange(Sender: TObject);
begin
Affichage;
end;
procedure TForm1.SB_VerChange(Sender: TObject);
begin
Affichage;
end;
// * Menu Fichier *
procedure TForm1.M_Enregistrer_sousClick(Sender: TObject);
begin
Enregistrer;
end;
procedure TForm1.M_OuvrirClick(Sender: TObject);
begin
Ouvrir;
Affichage;
ListeNom;
end;
procedure TForm1.NouveauClick(Sender: TObject);
begin
Initialisation;
end;
// * Menu Editer *
procedure TForm1.EditerClick(Sender: TObject);
begin
bEdit:=true;
bExec:=false;
Panneaux;
end;
procedure TForm1.ImageDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=Sender is TImage;
end;
procedure TForm1.ImageDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
// memo1.Lines.Add('ok '+(Source as TImage).Name);
AjouteComposant((Source as TImage).Name,X,Y);
end;
procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
bRelier:=SBtn_Relier.Down and bEdit;
bSelectionner:= SBtn_Selection.Down and bEdit;
dx:=cordo(x)+Form1.SB_Hor.Position*sbx;
dy:=cordo(y)+Form1.SB_Ver.Position*sby;
fx:=cordo(x)+Form1.SB_Hor.Position*sbx;
fy:=cordo(y)+Form1.SB_Ver.Position*sby;
if bRelier then bLier:=true; // not (ssShift in Shift) and
if bSelectionner then bSelection:=true;
if bExec then SourisBas;
// if (ssShift in Shift) then RechercheComposant;
// if (ssCtrl in Shift) and (CompoEnCours<>'') then Deplacer:=true;
// ssShift, ssAlt, ssCtrl,
// ssLeft, ssRight, ssMiddle, ssDouble
// memo1.Lines.Add('MouseDown');
// if (ssShift in Shift) then memo1.Lines.Add('ssShift');
// if (ssAlt in Shift) then memo1.Lines.Add('ssAlt');
// if (ssCtrl in Shift) then memo1.Lines.Add('ssCtrl');
end;
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if bLier or bSelection then begin
fx:=cordo(x)+Form1.SB_Hor.Position*sbx;
fy:=cordo(y)+Form1.SB_Ver.Position*sby;
Affichage;
end;
end;
procedure TForm1.ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
fx:=cordo(x)+Form1.SB_Hor.Position*sbx;
fy:=cordo(y)+Form1.SB_Ver.Position*sby;
if bLier and ((fx<>dx) or (fy<>dy)) then AjouteSegment;
if bSelection then SelectionComposants;
if bExec then SourisHaut;
bLier:=false;
bSelection:=false;
if not bExec then Affichage;
end;
procedure TForm1.BBtn_SupprimeClick(Sender: TObject);
begin
SupprimeComposant;
end;
procedure TForm1.ImageContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
if bEdit then PanneauEdition(MousePos.X,MousePos.Y);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Resegmentation;
end;
procedure TForm1.ExecuterClick(Sender: TObject);
begin
bEdit:=false;
bExec:=true;
Panneaux;
RAZSelection;
Resegmentation;
InitExec;
Affichage;
end;
procedure TForm1.SBtn_CompoClick(Sender: TObject);
begin
Panneaux;
end;
procedure TForm1.SBtn_SelectionClick(Sender: TObject);
begin
Panneaux;
end;
procedure TForm1.SBtn_DeplaceClick(Sender: TObject);
begin
Panneaux;
end;
procedure TForm1.SBtn_RelierClick(Sender: TObject);
begin
Panneaux;
end;
procedure TForm1.SBtn_LabelClick(Sender: TObject);
begin
Panneaux;
end;
procedure TForm1.BBtn_BasClick(Sender: TObject);
begin
DeplaceSelection(0,-1);
end;
procedure TForm1.BBtn_HautClick(Sender: TObject);
begin
DeplaceSelection(0,1);
end;
procedure TForm1.BBtn_GaucheClick(Sender: TObject);
begin
DeplaceSelection(1,0);
end;
procedure TForm1.BBtn_DroiteClick(Sender: TObject);
begin
DeplaceSelection(-1,0);
end;
procedure TForm1.Btn_C_okClick(Sender: TObject);
var i:integer;
begin
for i:=0 to Nb_Contact-1 do if L_Contact[i].Select then begin
L_Contact[i].EtatI:=CB_C_EtatI.Checked;
L_Contact[i].Manuel:=CB_C_Manuel.Checked;
L_Contact[i].nom:=CO_C_Nom.Text;
L_Contact[i].visible:=CB_C_visible.Checked;
L_Contact[i].Pd.X:=SP_C_dx.Value;
L_Contact[i].Pd.Y:=SP_C_dy.Value;
end;
RAZPanneauEdition;
ListeNom;
Affichage;
end;
procedure TForm1.Btn_R_OkClick(Sender: TObject);
var i:integer;
begin
for i:=0 to Nb_Relais-1 do if L_Relais[i].Select then begin
/// L_Relais[i].EtatI:=CB_R_EtatI.Checked;
L_Relais[i].Visible:=CB_R_Visible.Checked;
L_Relais[i].nom:=Ed_R_Nom.Text;
L_Relais[i].Pd.X:=SP_R_dx.Value;
L_Relais[i].Pd.Y:=SP_R_dy.Value;
L_Relais[i].tpr:=StrToInt('0'+Ed_R_Tempo.Text);
end;
RAZPanneauEdition;
ListeNom;
Affichage;
end;
procedure TForm1.Button2Click(Sender: TObject);
var F:TextFile;
S:string;
i,j:integer;
begin
AssignFile(F,'List.csv');
Rewrite(F);
Writeln(F,'Segments,');
Writeln(F,'n<>,P1,P2,C<>t<EFBFBD>1,C<>t<EFBFBD>2,Branche');
for i:=0 to Nb_Segment-1 do begin
s:=IntToStr(i)+',';
s:=s+'('+IntToStr(L_Segment[i].P1.X)+';'+IntToStr(L_Segment[i].P1.Y)+'),';
s:=s+'('+IntToStr(L_Segment[i].P2.X)+';'+IntToStr(L_Segment[i].P2.Y)+'),';
S:=s+L_Segment[i].Cote1+','+L_Segment[i].Cote2+',';
s:=s+IntToStr(L_Segment[i].AppaBranche)+',';
Writeln(F,s);
end;
Writeln(F,',');
Writeln(F,'Branches,');
Writeln(F,'n<>,C<>t<EFBFBD>1,C<>t<EFBFBD>2,Pot,S1,S2,S3,S4,S5,S6,S7,S8');
for i:=0 to length(L_Branche)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Branche[i].Cote1+','+L_Branche[i].Cote2+',';
s:=s+IntToStr(L_Branche[i].AppaPotentiel)+',';
for j:=0 to length(L_Branche[i].CompSegments)-1 do s:=s+IntToStr(L_Branche[i].CompSegments[j])+',';
Writeln(F,s);
end;
Writeln(F,',');
Writeln(F,'Potentiels,');
Writeln(F,'n<>,B1,B2,B3,B4,B5,B6,B7,B8');
for i:=0 to length(L_Potentiel)-1 do begin
s:=IntToStr(i)+',';
for j:=0 to length(L_Potentiel[i].CompBranches)-1 do s:=s+IntToStr(L_Potentiel[i].CompBranches[j])+',';
Writeln(F,s);
end;
CloseFile(F);
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
s:string;
begin
test('Segments');
for i:=0 to Nb_Segment-1 do begin
s:=IntToStr(i)+',';
s:=s+'('+IntToStr(L_Segment[i].P1.X)+';'+IntToStr(L_Segment[i].P1.Y)+'),';
s:=s+'('+IntToStr(L_Segment[i].P2.X)+';'+IntToStr(L_Segment[i].P2.Y)+'),';
S:=s+L_Segment[i].Cote1+','+L_Segment[i].Cote2+',';
s:=s+IntToStr(L_Segment[i].AppaBranche)+',';
test(s);
end;
test2('Branches');
for i:=0 to length(L_Branche)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Branche[i].Cote1+','+L_Branche[i].Cote2+',';
s:=s+IntToStr(L_Branche[i].AppaPotentiel)+',';
S:=S+'C'+IntToStr(L_Branche[i].Courant);
for j:=0 to length(L_Branche[i].CompSegments)-1 do s:=s+IntToStr(L_Branche[i].CompSegments[j])+',';
test2(s);
end;
test('');
test('Potentiels');
for i:=0 to length(L_Potentiel)-1 do begin
s:=IntToStr(i)+',';
S:=S+IntToStr(L_Potentiel[i].Rp)+','+IntToStr(L_Potentiel[i].Rm)+',';
for j:=0 to length(L_Potentiel[i].CompBranches)-1 do s:=s+IntToStr(L_Potentiel[i].CompBranches[j])+',';
test(s);
end;
test('Fonctions');
for i:=0 to length(L_Fonction)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Fonction[i].comp+',';
s:=s+L_Fonction[i].nom+',';
s:=s+IntToStr(L_Fonction[i].x)+',';
test(s);
end;
test('Relais');
for i:=0 to length(L_Relais)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Relais[i].nom+',';
// s:=s+IntToStr(L_Relais[i].Fonction)+',';
S:=S+' 0:'+IntToStr(L_Relais[i].AppPot[0])+' 1:'+IntToStr(L_Relais[i].AppPot[1])+',';
test(s);
end;
test('Lampe');
for i:=0 to length(L_Lampe)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Lampe[i].nom+',';
// s:=s+IntToStr(L_Lampe[i].Fonction)+',';
//S:=S+' 0:'+IntToStr(L_Lampe[i].AppPot[0])+' 1:'+IntToStr(L_Lampe[i].AppPot[1])+',';
test(s);
end;
test('Contact');
for i:=0 to length(L_Contact)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Contact[i].nom+',';
s:=s+IntToStr(L_Contact[i].Fonction)+',';
test(s);
end;
end;
procedure TForm1.Memo1DblClick(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.Fichier1Click(Sender: TObject);
begin
bExec:=false;
end;
procedure TForm1.Noir1Click(Sender: TObject);
begin
ExecCouleur(1);
end;
procedure TForm1.Potentiels1Click(Sender: TObject);
begin
ExecCouleur(2);
end;
procedure TForm1.Courants1Click(Sender: TObject);
begin
ExecCouleur(3);
end;
procedure TForm1.VisuelRelaisClick(Sender: TObject);
begin
ExecVisuel;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
s:string;
begin
test('');
test('Potentiels');
for i:=0 to length(L_Potentiel)-1 do begin
s:=IntToStr(i)+',';
S:=S+IntToStr(L_Potentiel[i].Rp)+','+IntToStr(L_Potentiel[i].Rm);
// for j:=0 to length(L_Potentiel[i].CompBranches)-1 do s:=s+IntToStr(L_Potentiel[i].CompBranches[j])+',';
test(s);
end;
test('Relais');
for i:=0 to length(L_Relais)-1 do begin
s:=IntToStr(i)+',';
s:=s+L_Relais[i].nom+',';
// s:=s+IntToStr(L_Relais[i].Fonction)+',';
// S:=S+' 0:'+IntToStr(L_Relais[i].AppPot[0])+' 1:'+IntToStr(L_Relais[i].AppPot[1])+',';
// S:=S+' '+IntToStr(L_Relais[i].AppPot[0])+' 1:'+IntToStr(L_Relais[i].AppPot[1])+',';
S:=S+' '+ IntToStr(L_Potentiel[L_Relais[i].AppPot[0]].Rp)+','+IntToStr(L_Potentiel[L_Relais[i].AppPot[0]].Rm)+' ; '+IntToStr(L_Potentiel[L_Relais[i].AppPot[1]].Rp)+','+IntToStr(L_Potentiel[L_Relais[i].AppPot[1]].Rm);
test(s);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Temporisations;
end;
procedure TForm1.ED_R_TempoKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [#8, '0'..'9']) then Key := #0;
end;
procedure TForm1.Btn_L_OkClick(Sender: TObject);
var i:integer;
begin
for i:=0 to Nb_Lampe-1 do if L_Lampe[i].Select then begin
L_lampe[i].Visible:=CB_L_Visible.Checked;
L_lampe[i].nom:=Ed_L_Nom.Text;
L_lampe[i].Pd.X:=SP_L_dx.Value;
L_lampe[i].Pd.Y:=SP_L_dy.Value;
L_Lampe[i].Clr0:=PNL_L0.Color;
L_Lampe[i].Clr1:=PNL_L1.Color;
end;
RAZPanneauEdition;
ListeNom;
Affichage;
end;
procedure TForm1.PNLCLRClick(Sender: TObject);
begin
if ColorDialog1.Execute then begin
if (Sender is TPanel) then (Sender as TPanel).Color:=ColorDialog1.Color;
end;
end;
procedure TForm1.TmrPulseTimer(Sender: TObject);
begin
pulse:=not pulse;
if bExec then CycleExec;
end;
procedure TForm1.EnregistrerImage1Click(Sender: TObject);
begin
if SavePictureDialog1.Execute then Image.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// DoubleBuffered := true;
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:integer;
begin
for i:=0 to Nb_Fonction-1 do begin
test2(L_Fonction[i].nom+' '+IntToStr(L_Fonction[i].x));
end;
end;
procedure TForm1.VisuelinteractifClick(Sender: TObject);
begin
ExecInteractif;
end;
procedure TForm1.Zoomajuster1Click(Sender: TObject);
begin
// Zoom:=0.43;
Affichage;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
memo2.Visible:=false;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
memo2.Visible:=true;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
memo2.Clear;
end;
procedure TForm1.Button9Click(Sender: TObject);
var i:integer;
s:string;
begin
memo2.Lines.Add('SEGMENTS');
s:=' # | xa, ya| xb, yb|c<>t<EFBFBD>1 |c<>t<EFBFBD>2 |Bra|S1|S2';
memo2.Lines.Add(s);
for i:=0 to Nb_Segment-1 do begin
s:=format('%3d|%3d,%3d|%3d,%3d|%-6s|%-6s|%3d|%-.2s|%-.2s',
[i,L_Segment[i].P1.X,L_Segment[i].P1.Y,L_Segment[i].P2.X,L_Segment[i].P2.Y,L_Segment[i].Cote1,L_Segment[i].Cote2,L_Segment[i].AppaBranche,VartoStr(L_Segment[i].Select1),VartoStr(L_Segment[i].Select1)]);
memo2.Lines.Add(s);
end;
memo2.Lines.Add('BRANCHES');
s:=' # |c<>t<EFBFBD>1 |c<>t<EFBFBD>2 |Cou|Par';
memo2.Lines.Add(s);
for i:=0 to length(L_Branche)-1 do begin
s:=format('%3d|%-6s|%-6s|%3d|%3d',
[i,L_Branche[i].Cote1,L_Branche[i].Cote2,L_Branche[i].Courant,L_Branche[i].Parcouru]);
memo2.Lines.Add(s);
end;
{
T_Branche = record
AppaPotentiel : integer;
EtatP, EtatF : boolean;
CompSegments :array of integer;
Cote1,Cote2 : string;
Courant:integer;
Parcouru :integer;
end;
}
end;
end.