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é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é1,Côté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é1,Côté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é1 |côté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é1 |côté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.