V10.82
This commit is contained in:
BIN
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
object FormAnalyseCDM: TFormAnalyseCDM
|
||||
Left = 206
|
||||
Top = 145
|
||||
Left = 210
|
||||
Top = 94
|
||||
AutoScroll = False
|
||||
Caption = 'Fen'#234'tre r'#233'seau CDM'
|
||||
ClientHeight = 596
|
||||
@@ -62,7 +62,7 @@ object FormAnalyseCDM: TFormAnalyseCDM
|
||||
object Label5: TLabel
|
||||
Left = 1005
|
||||
Top = 528
|
||||
Width = 24
|
||||
Width = 12
|
||||
Height = 13
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = '+ -'
|
||||
|
||||
+36
-17
@@ -73,7 +73,6 @@ type
|
||||
procedure ImageCDMMouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
procedure ButtonAnimeClick(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure ImageCDMMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
procedure ImageCDMMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
@@ -220,6 +219,8 @@ function isole_valeur(var s : string; chercher : string;afficheErr : boolean) :
|
||||
var i : integer;
|
||||
serr : string;
|
||||
begin
|
||||
chercher:=lowercase(chercher);
|
||||
s:=lowercase(s);
|
||||
i:=pos(chercher,s);
|
||||
if i=0 then
|
||||
begin
|
||||
@@ -235,8 +236,8 @@ begin
|
||||
delete(s,1,i+length(chercher)-1);
|
||||
|
||||
repeat
|
||||
if s[1]=' ' then delete(s,1,1);
|
||||
until (s[1]<>' ') or (length(s)=0);
|
||||
if (s[1]=' ') or (s[1]='=') then delete(s,1,1);
|
||||
until ((s[1]<>' ') and (s[1]<>'=')) or (length(s)=0);
|
||||
|
||||
i:=pos(' ',s);
|
||||
if i<>0 then isole_valeur:=copy(s,1,i-1) else isole_valeur:=s;
|
||||
@@ -301,7 +302,28 @@ begin
|
||||
Segment[nSeg-1].periph[nperiph-1].location:=i;
|
||||
|
||||
s:=AnsiLowerCase(lignes[nligne]);
|
||||
// ne pas faire inc(nligne) car on va regarder la ligne suivante en indiçant en +1
|
||||
inc(nligne);
|
||||
|
||||
{non utilisé mais doit être pris en compte
|
||||
Actionneurs Tickets horaire ou gestionnaire de voie unique,
|
||||
tickets = le type de l'actionneur, soit :
|
||||
0 = ACT_STD, Actionneur standard.
|
||||
1 = ACT_MANO, Actionneur manuel, non actionné par les trains mais par un clic souris.
|
||||
2 = ACT_VUH Actionneur Voie Unique ou Tickets Horaire, actionné dans les deux sens par les trains. Ils vont toujours par paire.
|
||||
Twined = RefIndex de l'actionneur associé en cas d'un ACT_VUH.
|
||||
}
|
||||
s2:=isole_valeur(s,'tckets',false); // nouveau
|
||||
if s2<>'' then
|
||||
begin
|
||||
s:=AnsiLowerCase(lignes[nligne]);
|
||||
inc(nLigne);
|
||||
end;
|
||||
s2:=isole_valeur(s,'tickets',false); // nouveau Tickets = 0 Twined = 0
|
||||
if s2<>'' then
|
||||
begin
|
||||
s:=AnsiLowerCase(lignes[nligne]);
|
||||
inc(nLigne);
|
||||
end;
|
||||
|
||||
s2:=isole_valeur(s,'address',true);
|
||||
val(s2,i,erreur);
|
||||
@@ -325,7 +347,7 @@ begin
|
||||
val(s2,i,erreur);
|
||||
Segment[nSeg-1].periph[nperiph-1].status:=i;
|
||||
|
||||
// peut être suivi de 'On device port' si une adresse de détecteur ou d'actionneur se trouve sur l'appareil de voie
|
||||
// peut être suivi de 'on device port' si une adresse de détecteur ou d'actionneur se trouve sur l'appareil de voie
|
||||
Segment[nSeg-1].periph[nperiph-1].OnDevicePort:=-1; // marqueur d'invalidité
|
||||
s:=AnsiLowerCase(lignes[nligne+1]);
|
||||
if pos('on device port',s)<>0 then
|
||||
@@ -343,6 +365,7 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
|
||||
procedure compile_inter;
|
||||
var i,erreur : integer;
|
||||
s,s2: string;
|
||||
@@ -370,6 +393,7 @@ begin
|
||||
s2:=isole_valeur(s,'type:',true);
|
||||
Segment[nSeg-1].inter[nInter-1].typ:=s2;
|
||||
|
||||
// nouvelle ligne: Mirror: Z= 1416
|
||||
s:=AnsiLowerCase(lignes[nligne]);
|
||||
inc(nLigne);
|
||||
s2:=isole_valeur(s,'z=',true);
|
||||
@@ -4328,7 +4352,7 @@ begin
|
||||
s:=lowercase(Formprinc.fenRich.Lines[0]);
|
||||
if pos('module',s)=0 then
|
||||
begin
|
||||
Affiche('Pas de module CDM détecté',clred);
|
||||
Affiche('Pas de module CDM détecté - Abandon',clred);
|
||||
exit;
|
||||
end;
|
||||
end
|
||||
@@ -4387,7 +4411,12 @@ begin
|
||||
end;
|
||||
inc(nligne);
|
||||
until (nligne>nombre);
|
||||
Affiche('Fin de la compilation des segments',cllime);
|
||||
if nseg<>0 then Affiche('Fin de la compilation des segments',cllime)
|
||||
else
|
||||
begin
|
||||
Affiche('Aucun segment trouvé - Abandon',clred);
|
||||
exit;
|
||||
end;
|
||||
|
||||
// balayer les segments pour transformer les bjd en créant 1 croisement et 4 aiguillages dans les segments, puis on supprime la bjd des segments
|
||||
i:=0;
|
||||
@@ -5555,19 +5584,9 @@ begin
|
||||
sleep(40);
|
||||
Application.processMessages;
|
||||
until x>800;
|
||||
|
||||
//until x>500;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TFormAnalyseCDM.Button1Click(Sender: TObject);
|
||||
begin
|
||||
dessine_det(523);
|
||||
end;
|
||||
|
||||
procedure TFormAnalyseCDM.ImageCDMMouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ object FormClock: TFormClock
|
||||
OnResize = FormResize
|
||||
DesignSize = (
|
||||
234
|
||||
212)
|
||||
211)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object BitBtnMarHor: TBitBtn
|
||||
|
||||
+35
-17
@@ -1,6 +1,6 @@
|
||||
object FormConfig: TFormConfig
|
||||
Left = 265
|
||||
Top = 106
|
||||
Left = 404
|
||||
Top = 164
|
||||
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Configuration g'#233'n'#233'rale'
|
||||
@@ -1573,7 +1573,7 @@ object FormConfig: TFormConfig
|
||||
Top = 8
|
||||
Width = 633
|
||||
Height = 505
|
||||
ActivePage = TabSheetCDM
|
||||
ActivePage = TabSheetSig
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
@@ -1668,6 +1668,17 @@ object FormConfig: TFormConfig
|
||||
Height = 13
|
||||
Caption = 'Nom du fichier LAY '#224' utiliser au d'#233'marrage de CDM'
|
||||
end
|
||||
object SpeedButtonLay: TSpeedButton
|
||||
Left = 232
|
||||
Top = 192
|
||||
Width = 23
|
||||
Height = 22
|
||||
Hint = 'Choix du fichier LAY'
|
||||
Caption = '...'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnClick = SpeedButtonLayClick
|
||||
end
|
||||
object CheckVerifVersion: TCheckBox
|
||||
Left = 8
|
||||
Top = 56
|
||||
@@ -1729,7 +1740,7 @@ object FormConfig: TFormConfig
|
||||
object EditLAY: TEdit
|
||||
Left = 8
|
||||
Top = 192
|
||||
Width = 249
|
||||
Width = 217
|
||||
Height = 21
|
||||
Hint = 'Nom du LAY avec .lay'
|
||||
ParentShowHint = False
|
||||
@@ -2031,7 +2042,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckBoxVerifXpressNet: TCheckBox
|
||||
Left = 8
|
||||
Top = 90
|
||||
Top = 88
|
||||
Width = 233
|
||||
Height = 17
|
||||
Hint =
|
||||
@@ -2097,7 +2108,7 @@ object FormConfig: TFormConfig
|
||||
'S'#233'lection du style d'#39#39'affichage - Le style sera chang'#233' '#224' la ferm' +
|
||||
'eture de la fen'#234'tre'#39
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
@@ -2146,7 +2157,7 @@ object FormConfig: TFormConfig
|
||||
object Label4: TLabel
|
||||
Left = 16
|
||||
Top = 45
|
||||
Width = 135
|
||||
Width = 196
|
||||
Height = 26
|
||||
Caption = '2. Temporisation d'#39'envoi des octets de la trame (ms)'
|
||||
WordWrap = True
|
||||
@@ -2154,7 +2165,7 @@ object FormConfig: TFormConfig
|
||||
object Label5: TLabel
|
||||
Left = 16
|
||||
Top = 75
|
||||
Width = 148
|
||||
Width = 192
|
||||
Height = 26
|
||||
Caption =
|
||||
'3. Temporisation d'#39'attente de la r'#233'ponse de l'#39'interface (x 50 ms' +
|
||||
@@ -2419,8 +2430,11 @@ object FormConfig: TFormConfig
|
||||
Top = 24
|
||||
Width = 145
|
||||
Height = 21
|
||||
Hint = 'Echelle'
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxEchelleChange
|
||||
Items.Strings = (
|
||||
@@ -3779,7 +3793,7 @@ object FormConfig: TFormConfig
|
||||
Top = 56
|
||||
Width = 193
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxDecodeurPersoChange
|
||||
end
|
||||
@@ -3798,7 +3812,7 @@ object FormConfig: TFormConfig
|
||||
Width = 145
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxNationChange
|
||||
end
|
||||
@@ -3844,7 +3858,7 @@ object FormConfig: TFormConfig
|
||||
Width = 193
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 6
|
||||
OnChange = ComboBoxDecCdeChange
|
||||
end
|
||||
@@ -4057,7 +4071,7 @@ object FormConfig: TFormConfig
|
||||
Top = 96
|
||||
Width = 137
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxOperateurChange
|
||||
OnDrawItem = ComboBoxOperateurDrawItem
|
||||
@@ -4077,7 +4091,7 @@ object FormConfig: TFormConfig
|
||||
Top = 96
|
||||
Width = 161
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
@@ -4189,7 +4203,7 @@ object FormConfig: TFormConfig
|
||||
Width = 145
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 7
|
||||
OnChange = ComboBoxFLChange
|
||||
end
|
||||
@@ -4725,7 +4739,7 @@ object FormConfig: TFormConfig
|
||||
Hint = 'action par accessoire DCC ou commande COM/USB'
|
||||
Caption = 'Type d'#39'action'
|
||||
Items.Strings = (
|
||||
'Accessoire'
|
||||
'Accessoire DCC'
|
||||
'Commande COM/USB ou Socket')
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
@@ -4739,7 +4753,7 @@ object FormConfig: TFormConfig
|
||||
Height = 21
|
||||
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 10
|
||||
@@ -6499,7 +6513,7 @@ object FormConfig: TFormConfig
|
||||
Width = 153
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxUSBTrChange
|
||||
end
|
||||
@@ -6633,6 +6647,10 @@ object FormConfig: TFormConfig
|
||||
Hint = 'Copie tout le contenu en tant que texte dans le presse-papier'
|
||||
OnClick = outcopierentatquetexte1Click
|
||||
end
|
||||
object MenuListesCopier2: TMenuItem
|
||||
Caption = 'Coller'
|
||||
OnClick = MenuListesCopier2Click
|
||||
end
|
||||
end
|
||||
object ColorDialogFond: TColorDialog
|
||||
OnShow = ColorDialogFondShow
|
||||
|
||||
+186
-66
@@ -514,6 +514,8 @@ type
|
||||
Label15: TLabel;
|
||||
LabeledEditCr: TLabeledEdit;
|
||||
LabeledEditT: TLabeledEdit;
|
||||
SpeedButtonLay: TSpeedButton;
|
||||
MenuListesCopier2: TMenuItem;
|
||||
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure ListBoxAigMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
@@ -816,6 +818,8 @@ type
|
||||
procedure EditTempoSigChange(Sender: TObject);
|
||||
procedure LabeledEditCrChange(Sender: TObject);
|
||||
procedure LabeledEditTChange(Sender: TObject);
|
||||
procedure SpeedButtonLayClick(Sender: TObject);
|
||||
procedure MenuListesCopier2Click(Sender: TObject);
|
||||
|
||||
private
|
||||
{ Déclarations privées }
|
||||
@@ -931,6 +935,7 @@ Affcompteur_ch='AffCompteur';
|
||||
LargCompteur_ch='LargCompteur';
|
||||
LargComptC_ch='LargCompteurC';
|
||||
HautComptC_ch='HautCompteurC';
|
||||
ZoomSignaux_ch='ZoomSignaux';
|
||||
VerrouCompteur_ch='VerrouCompteur';
|
||||
Echelle_ch='Echelle';
|
||||
AffIconeTrCompteur_ch='AffIconeTrCompteur';
|
||||
@@ -1238,7 +1243,7 @@ begin
|
||||
end;
|
||||
|
||||
// vérifie si la config de la com série/usb est ok
|
||||
// COM7:9600,n,8,1
|
||||
// exemple s='COM7:9600,n,8,1'
|
||||
function config_com(s : string) : boolean;
|
||||
var sa : string;
|
||||
i,erreur,vitesse : integer;
|
||||
@@ -1467,7 +1472,7 @@ begin
|
||||
result:='';
|
||||
exit;
|
||||
end;
|
||||
if affevt then Affiche('Encode_sig_feux('+IntToSTR(i)+') : adresse='+IntToSTR(adresse),clyellow);
|
||||
if affevt then Affiche('Encode_signal('+IntToSTR(i)+') : adresse='+IntToSTR(adresse),clyellow);
|
||||
|
||||
s:=IntToSTR(adresse)+',';
|
||||
// forme - D=directionnel ajouter 10
|
||||
@@ -2048,7 +2053,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
// transforme l'action en chaine
|
||||
// encode l'action en chaine
|
||||
function encode_actions(i : integer) : string;
|
||||
var s : string;
|
||||
decl,action,Nb,j: integer;
|
||||
@@ -2121,7 +2126,6 @@ begin
|
||||
ActionAffecteMemoire : s:=s+','+intToSTR(Tablo_Action[i].tabloOP[j].adresse)+','+intToSTR(Tablo_Action[i].tabloOP[j].etat);
|
||||
ActionIncMemoire: s:=s+','+intToSTR(Tablo_Action[i].tabloOP[j].adresse);
|
||||
ActionDecMemoire: s:=s+','+intToSTR(Tablo_Action[i].tabloOP[j].adresse);
|
||||
|
||||
end;
|
||||
|
||||
if j<nb then s:=s+',';
|
||||
@@ -2223,7 +2227,7 @@ var s: string;
|
||||
fichierN : text;
|
||||
i,j,n,k : integer;
|
||||
begin
|
||||
assignFile(fichierN,NomConfig);
|
||||
assignFile(fichierN,repertoire_SC+'\'+NomConfig);
|
||||
rewrite(fichierN);
|
||||
|
||||
// entête
|
||||
@@ -2321,6 +2325,8 @@ begin
|
||||
writeln(fichierN,LargComptC_ch+'=',IntToSTR(LargComptC));
|
||||
writeln(fichierN,HautComptC_ch+'=',IntToSTR(HautComptC));
|
||||
|
||||
writeln(fichierN,ZoomSignaux_ch+'=',FloatToSTRF(RedAffSig,ffFixed,5,1,FormatSettings));
|
||||
|
||||
if VerrouilleCompteur then s:='1' else s:='0';
|
||||
writeln(fichierN,VerrouCompteur_ch+'=',s);
|
||||
|
||||
@@ -2727,7 +2733,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// trier les détecteurs
|
||||
// trier les détecteurs et affecte le tableau detecteur[]
|
||||
procedure trier_detecteurs;
|
||||
var i,j,temp : integer;
|
||||
begin
|
||||
@@ -3128,6 +3134,29 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// extrait les détecteurs des branches
|
||||
procedure compile_detecteurs_des_branches;
|
||||
var i,j,id : integer;
|
||||
begin
|
||||
id:=0;
|
||||
for i:=1 to NbreBranches do
|
||||
begin
|
||||
j:=1;
|
||||
while not(brancheN[i,j].Adresse=0) do
|
||||
begin
|
||||
if brancheN[i,j].BType=det then
|
||||
begin
|
||||
inc(id);
|
||||
// Affiche('Détecteur '+intToSTR(brancheN[i,j].adresse),clWhite);
|
||||
Adresse_detecteur[id]:=brancheN[i,j].adresse;
|
||||
end;
|
||||
inc(j);
|
||||
end;
|
||||
end;
|
||||
NDetecteurs:=id;
|
||||
trier_detecteurs; // et affecte le tableau detecteurs[]
|
||||
end;
|
||||
|
||||
// génère les informations calculées
|
||||
procedure genere_informations_BD;
|
||||
begin
|
||||
@@ -3137,6 +3166,7 @@ begin
|
||||
trier_cantons;
|
||||
trier_signaux;
|
||||
compile_id_routes;
|
||||
compile_detecteurs_des_branches;
|
||||
end;
|
||||
|
||||
procedure lit_config;
|
||||
@@ -4472,7 +4502,7 @@ const LessThanValue=-1;
|
||||
while s[1]=' ' do
|
||||
begin
|
||||
delete(s,1,1);
|
||||
end;
|
||||
end;
|
||||
if ((s[1]='-') or (s[1]='}')) and not bug then begin routePref[j][i].typ:=det;routePref[j][i].pos:=0;end
|
||||
else
|
||||
begin
|
||||
@@ -5884,6 +5914,16 @@ const LessThanValue=-1;
|
||||
val(s,HautComptC,erreur);
|
||||
end;
|
||||
|
||||
sa:=uppercase(ZoomSignaux_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i=1 then
|
||||
begin
|
||||
inc(nv);
|
||||
delete(s,i,length(sa));
|
||||
val(s,RedAffSig,erreur);
|
||||
end;
|
||||
|
||||
|
||||
sa:=uppercase(AffCompteur_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i=1 then
|
||||
@@ -6069,8 +6109,8 @@ const LessThanValue=-1;
|
||||
begin
|
||||
inc(nv);
|
||||
trouve_lay:=true;
|
||||
delete(s,i,length(sa));
|
||||
lay:=s;
|
||||
delete(sOrigine,i,length(sa));
|
||||
lay:=sOrigine;
|
||||
end;
|
||||
|
||||
sa:=uppercase(NomModuleCDM_ch)+'=';
|
||||
@@ -6396,6 +6436,7 @@ begin
|
||||
Aiguillage[i].EtatTJD:=4;
|
||||
Aiguillage[i].vitesse:=0;
|
||||
end;
|
||||
// initialisation des détecteurs
|
||||
for i:=1 to NbMaxDet do
|
||||
begin
|
||||
Detecteur[i].etat:=false;
|
||||
@@ -6403,12 +6444,16 @@ begin
|
||||
Detecteur[i].AdrTrain:=0;
|
||||
Detecteur[i].tempo0:=0;
|
||||
Detecteur[i].IndexTrainRoulant:=0;
|
||||
Detecteur[i].AdrTrainRes:=0;
|
||||
Detecteur[i].longueur:=0;
|
||||
Detecteur[i].distArret:=0;
|
||||
Detecteur[i].ModeArret:=0;
|
||||
Adresse_detecteur[i]:=0;
|
||||
Ancien_detecteur[i]:=false;
|
||||
end;
|
||||
|
||||
GetDir(0,s);
|
||||
Affiche('Lecture du fichier de configuration du répertoire',clYellow);
|
||||
Affiche(s,clyellow);
|
||||
Affiche(repertoire_SC,clyellow);
|
||||
|
||||
try
|
||||
assignFile(fichier,NomConfig);
|
||||
@@ -7431,16 +7476,16 @@ begin
|
||||
LabelValeur.caption:='';
|
||||
LabelVcms.Caption:='';
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
// index = index du train
|
||||
procedure clicListeTrains(index : integer);
|
||||
var s : string;
|
||||
i,t : integer;
|
||||
r : single;
|
||||
begin
|
||||
if affevt then Affiche('clicListeTrains '+intToSTR(index),clyellow);
|
||||
if index<1 then exit;
|
||||
if index<0 then exit;
|
||||
if Trains[index].nom_train='' then exit;
|
||||
clicListe:=true;
|
||||
|
||||
@@ -7456,9 +7501,6 @@ begin
|
||||
end;
|
||||
ButtonRdt.Caption:=s;
|
||||
|
||||
ListBoxTrains.ItemIndex:=index-1;
|
||||
ListBoxTrains.selected[index-1]:=true;
|
||||
|
||||
editNomTrain.text:=Trains[index].nom_train;
|
||||
LabelTitreTrain.Caption:=Trains[index].nom_train;
|
||||
editAdresseTrain.Text:=intToSTR(trains[index].adresse);
|
||||
@@ -7559,6 +7601,7 @@ begin
|
||||
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
// composants à repasser en style de base car on change la couleur de fond
|
||||
|
||||
EditP1.StyleName:='Windows';
|
||||
EditP2.StyleName:='Windows';
|
||||
EditP3.StyleName:='Windows';
|
||||
@@ -7584,6 +7627,10 @@ begin
|
||||
end;
|
||||
{$IFEND}
|
||||
|
||||
MenuListesCopier2.Visible:=false; // coller liste dans la listbox des signaux est neutralisé, crée des problemes pour les structures de signaux
|
||||
ComboBoxEchelle.hint:='L''échelle est utilisée pour le calcul des vitesses des trains'+#13+
|
||||
'ainsi que pour les distances d''arrêt';
|
||||
|
||||
editAdrIPCDM.Hint:='Adresse IP du PC sur lequel CDM rail s''exécute'+#13+'ou 127.0.0.1 pour indiquer ce pc';
|
||||
ValueListEditor.Visible:=true;
|
||||
ImageAffiche.stretch:=true;
|
||||
@@ -8760,6 +8807,7 @@ begin
|
||||
|
||||
if clicproprietesSig then clicListeSignal(IndexSignalClic);
|
||||
clicproprietesSig:=false;
|
||||
|
||||
if clicproprietesTrains then clicListeTrains(ligneclicTrain+1);
|
||||
clicproprietesTrains:=false;
|
||||
|
||||
@@ -9328,10 +9376,9 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
// mise à jour des champs du signal d'après le tableau signaux
|
||||
Procedure aff_champs_signaux(index : integer);
|
||||
var j,l,d,p,k,nc,decodeur : integer;
|
||||
var j,l,d,p,k,nc,decodeur,lIcone,hIcone : integer;
|
||||
s : string;
|
||||
begin
|
||||
if Affevt then affiche('Aff_champs_sig_feux('+intToSTR(index)+')',clyellow);
|
||||
@@ -9344,7 +9391,7 @@ begin
|
||||
Picture.Bitmap.TransparentMode:=tmAuto;
|
||||
Picture.Bitmap.TransparentColor:=clblue;
|
||||
Transparent:=true;
|
||||
picture.Bitmap:=Select_dessin_Signal(Signaux[index].aspect);
|
||||
picture.Bitmap:=Select_dessin_Signal(Signaux[index].aspect,lIcone,hIcone);
|
||||
end;
|
||||
|
||||
if Signaux[index].contrevoie then inverse_image(formConfig.ImageSignal,Formprinc.ImageSignal20);
|
||||
@@ -9434,26 +9481,26 @@ begin
|
||||
// affiche ou non les checkbox en fonction de l'aspect
|
||||
if (((d=2) or (d>=5)) and (d<10)) or (d=20) then
|
||||
begin
|
||||
checkBoxFB.Visible:=true;
|
||||
checkBoxFB.Visible:=true; // ne pas afficher checkbox feu blanc
|
||||
Label69.Visible:=true;
|
||||
MemoBlanc.Visible:=true;
|
||||
end
|
||||
else
|
||||
begin
|
||||
checkBoxFB.Visible:=false;
|
||||
checkBoxFB.Visible:=false; // ne pas afficher checkbox feu blanc
|
||||
Label69.Visible:=false;
|
||||
MemoBlanc.Visible:=false;
|
||||
end;
|
||||
|
||||
if d>2 then
|
||||
begin
|
||||
checkFVC.Visible:=true;
|
||||
checkFRC.Visible:=true;
|
||||
checkFVC.Visible:=true; // afficher checkbox feu vert clignotant
|
||||
checkFRC.Visible:=true; // afficher checkbox feu rouge clignotant
|
||||
end
|
||||
else
|
||||
begin
|
||||
checkFVC.Visible:=false;
|
||||
checkFRC.Visible:=false;
|
||||
checkFVC.Visible:=false; // ne pas afficher checkbox feu vert clignotant
|
||||
checkFRC.Visible:=false; // na pas afficher checkbox feu rouge clignotant
|
||||
end;
|
||||
|
||||
if ((d>3) and (d<10)) or (d=20) then CheckVerrouCarre.Visible:=true else CheckVerrouCarre.Visible:=false;
|
||||
@@ -10112,6 +10159,7 @@ begin
|
||||
formconfig.ListBoxAig.selected[ligneclicAig]:=true;
|
||||
end;
|
||||
|
||||
// vitesse spécifique franchissement aiguillage en position déviée
|
||||
procedure vitesse_spec;
|
||||
var s : string;
|
||||
AdrAig,erreur,index,v : integer;
|
||||
@@ -10167,6 +10215,7 @@ begin
|
||||
formconfig.ListBoxAig.selected[ligneclicAig]:=true;
|
||||
end;
|
||||
|
||||
// vérifie la cohérence entre le décodeur et la cible de signal (aspect)
|
||||
function verif_dec_sig(aff : boolean) : boolean;
|
||||
var Adr,i,dec,aspect,indexAspect : integer;
|
||||
begin
|
||||
@@ -10660,7 +10709,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ComboBoxAspChange(Sender: TObject);
|
||||
var indexTCO,x,y,i,index,aspect,adresseFeu : integer;
|
||||
var indexTCO,x,y,i,index,aspect,adresseSig,lIcone,hIcone : integer;
|
||||
s : string;
|
||||
bm :tbitmap;
|
||||
begin
|
||||
@@ -10680,7 +10729,7 @@ begin
|
||||
11 : aspect:=20;
|
||||
else aspect:=i+6;
|
||||
end;
|
||||
index:=ligneClicSig+1; // index du feu
|
||||
index:=ligneClicSig+1; // index du signal
|
||||
if index<1 then
|
||||
begin
|
||||
ComboBoxAsp.ItemIndex:=-1;
|
||||
@@ -10702,8 +10751,8 @@ begin
|
||||
|
||||
ListBoxSig.Selected[ligneClicSig]:=true;
|
||||
|
||||
// change l'image du feu dans la feuille graphique principale
|
||||
bm:=Select_dessin_Signal(Signaux[index].aspect);
|
||||
// change l'image du signal dans la feuille graphique principale
|
||||
bm:=Select_dessin_Signal(Signaux[index].aspect,lIcone,hicone);
|
||||
if bm=nil then exit;
|
||||
Signaux[index].Img.picture.Bitmap:=bm;
|
||||
dessine_signal_mx(Signaux[index].Img.Canvas,0,0,1,1,Signaux[index].adresse,1); // dessine les feux du signal
|
||||
@@ -10718,8 +10767,8 @@ begin
|
||||
begin
|
||||
if TCO[indexTCO,x,y].BImage=Id_Signal then
|
||||
begin
|
||||
AdresseFeu:=Signaux[index].adresse;
|
||||
if tco[IndexTCO,x,y].Adresse=AdresseFeu then affiche_tco(indexTCO);
|
||||
AdresseSig:=Signaux[index].adresse;
|
||||
if tco[IndexTCO,x,y].Adresse=AdresseSig then affiche_tco(indexTCO);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -10767,7 +10816,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ButtonrestaureClick(Sender: TObject);
|
||||
var index : integer;
|
||||
var index,lIcone,hIcone : integer;
|
||||
begin
|
||||
if (Signal_sauve.adresse<>0) and (ligneClicSig>=0) then
|
||||
begin
|
||||
@@ -10778,9 +10827,9 @@ begin
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
aff_champs_signaux(index); // réaffiche les champs
|
||||
Maj_Hint_Signal(index);
|
||||
// change l'image du feu dans la feuille graphique principale
|
||||
Signaux[index].Img.picture.Bitmap:=Select_dessin_Signal(Signaux[index].aspect);
|
||||
dessine_signal_mx(Signaux[index].Img.Canvas,0,0,1,1,Signaux[index].adresse,1); // dessine les feux du signal
|
||||
// change l'image du signal dans la feuille graphique principale
|
||||
Signaux[index].Img.picture.Bitmap:=Select_dessin_Signal(Signaux[index].aspect,lIcone,hIcone);
|
||||
dessine_signal_mx(Signaux[index].Img.Canvas,0,0,1,1,Signaux[index].adresse,1); // dessine les feux du signal, échelle 1
|
||||
clicListe:=false;
|
||||
end;
|
||||
end;
|
||||
@@ -10888,7 +10937,7 @@ begin
|
||||
if affevt then affiche('Evt bouton nouveau acc',clyellow);
|
||||
if maxtablo_act>=Max_action then
|
||||
begin
|
||||
Affiche('Nombre maximal d''actionneurs atteint',clred);
|
||||
Affiche('Nombre maximal d''actions atteint',clred);
|
||||
exit;
|
||||
end;
|
||||
clicliste:=true;
|
||||
@@ -11157,7 +11206,7 @@ begin
|
||||
end;
|
||||
if ss='' then exit;
|
||||
|
||||
s:='Voulez vous supprimer ';
|
||||
s:='Voulez vous supprimer';
|
||||
if n=1 then s:=s+' l''action ' else s:=s+' les actions ';
|
||||
s:=s+ss+' ?';
|
||||
|
||||
@@ -11171,6 +11220,7 @@ begin
|
||||
repeat
|
||||
if formconfig.ListBoxActions.selected[i-1] then
|
||||
begin
|
||||
Affiche('Suppression action '+tablo_action[i].NomAction,clOrange);
|
||||
for j:=i to maxTablo_act-1 do
|
||||
begin
|
||||
formconfig.ListBoxActions.selected[j-1]:=formconfig.ListBoxActions.selected[j];
|
||||
@@ -11404,7 +11454,7 @@ begin
|
||||
perform(WM_VSCROLL,SB_BOTTOM,0);
|
||||
end;
|
||||
|
||||
formCOnfig.LabelInfo.caption:='';
|
||||
formConfig.LabelInfo.caption:='';
|
||||
ligneClicSig:=i-1;
|
||||
AncligneClicSig:=ligneClicSig;
|
||||
aff_champs_signaux(i);
|
||||
@@ -11467,15 +11517,14 @@ begin
|
||||
Signaux[i].Lbl.free; // supprime le label
|
||||
Signaux[i].Lbl:=nil;
|
||||
Tablo_Index_Signal[Signaux[i].adresse]:=0;
|
||||
if Signaux[i].checkFB<>nil then
|
||||
begin
|
||||
Signaux[i].checkFB.Free;
|
||||
Signaux[i].CheckFB:=nil;
|
||||
end; // supprime le check du feu blanc s'il existait
|
||||
if Signaux[i].checkFB<>nil then Signaux[i].checkFB.Free; // supprime le check du feu blanc s'il existait
|
||||
Signaux[i].CheckFB:=nil;
|
||||
Signaux[i].FeuBlanc:=false;
|
||||
|
||||
for j:=i to NbreSignaux-1 do
|
||||
begin
|
||||
Signaux[j]:=Signaux[j+1];
|
||||
//Affiche('Signal '+intToSTR(j)+' affecté',clred);
|
||||
tablo_index_signal[signaux[j].adresse]:=j;
|
||||
if Signaux[j].img=nil then affiche('erreur',clred)
|
||||
else
|
||||
@@ -11504,7 +11553,20 @@ begin
|
||||
Left:=10+ (LargImg+5)*((j-1) mod (NbreImagePLigne));
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
Affiche('Efface signal'+intToSTR(NbreSignaux),clred);
|
||||
Signaux[NbreSignaux].Img.free; // supprime l'image, ce qui efface le signal du tableau graphique
|
||||
Signaux[NbreSignaux].Img:=nil;
|
||||
Signaux[NbreSignaux].Lbl.free; // supprime le label
|
||||
Signaux[NbreSignaux].Lbl:=nil;
|
||||
Tablo_Index_Signal[Signaux[NbreSignaux].adresse]:=0;
|
||||
if Signaux[NbreSignaux].checkFB<>nil then Signaux[NbreSignaux].checkFB.Free; // supprime le check du feu blanc s'il existait
|
||||
Signaux[NbreSignaux].CheckFB:=nil;
|
||||
Signaux[NbreSignaux].FeuBlanc:=false;
|
||||
}
|
||||
dec(NbreSignaux);
|
||||
|
||||
i:=0;
|
||||
end;
|
||||
inc(i);
|
||||
@@ -12739,8 +12801,8 @@ begin
|
||||
if not(oksignal) then
|
||||
begin
|
||||
Affiche('Erreur 14: le signal '+IntToSTR(adresse)+' '+decodeur[dec]+' occupe '+intToSTR(nc)+' adresses de '+intToSTR(adresse)+
|
||||
' à '+intToSTR(adresse+nc-1)+' et chevauche le(s) détecteur(s) ',clred);
|
||||
affiche(s,clred);
|
||||
' à '+intToSTR(adresse+nc-1)+' et chevauche le(s) détecteur(s) suivant(s)',clred);
|
||||
Affiche(s,clred);
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -12989,7 +13051,7 @@ begin
|
||||
end;
|
||||
if ss='' then exit;
|
||||
|
||||
s:='Voulez vous supprimer ';
|
||||
s:='Voulez vous supprimer';
|
||||
if n=1 then s:=s+' l''aiguillage ' else s:=s+' les aiguillages ';
|
||||
s:=s+ss+' ?';
|
||||
|
||||
@@ -13556,11 +13618,20 @@ end;
|
||||
|
||||
procedure valide_branches;
|
||||
var s: string;
|
||||
ligne,esp : integer;
|
||||
ligne,esp,i : integer;
|
||||
ok : boolean;
|
||||
begin
|
||||
ligne:=1;
|
||||
ok:=true;
|
||||
|
||||
// vider les tableaux des détecteurs
|
||||
for i:=1 to NbMaxDet do
|
||||
begin
|
||||
Adresse_detecteur[i]:=0;
|
||||
detecteur[i].index:=0;
|
||||
end;
|
||||
NDetecteurs:=0;
|
||||
|
||||
repeat
|
||||
s:=AnsiUpperCase(formConfig.RichBranche.Lines[ligne-1]);
|
||||
if s<>'' then
|
||||
@@ -13609,6 +13680,7 @@ begin
|
||||
modif_branches:=false;
|
||||
end
|
||||
else FormConfig.labelResult.Caption:='Erreur de syntaxe';
|
||||
trier_detecteurs;
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ButtonValLigneClick(Sender: TObject);
|
||||
@@ -13642,6 +13714,7 @@ begin
|
||||
if j=0 then result:=0 else result:=j+1;
|
||||
end;
|
||||
|
||||
|
||||
// compile une branche de réseau sous forme de texte, et la stocke dans le tableau des branches
|
||||
// crée les index dans la structure détecteurs et des aiguillages
|
||||
// i = index de la branche à stocker
|
||||
@@ -13756,7 +13829,7 @@ begin
|
||||
until ((bd=NDetecteurs+1) or trouve) or (bd>NbMaxDet) ;
|
||||
if not(trouve) then
|
||||
begin
|
||||
Adresse_detecteur[bd]:=detect;
|
||||
Adresse_detecteur[bd]:=detect; // stocke le détecteur de la branche dans la liste des détecteurs
|
||||
NDetecteurs:=bd;
|
||||
end;
|
||||
end;
|
||||
@@ -14428,9 +14501,17 @@ begin
|
||||
end;
|
||||
l:=Trains[index].Icone.width;
|
||||
h:=Trains[index].Icone.Height;
|
||||
if h=0 then
|
||||
if h=0 then // si pas d'icone de train dessiner un rectangle
|
||||
begin
|
||||
result:=0;
|
||||
l:=image_train[index].Width;
|
||||
h:=image_train[index].Height;
|
||||
with Iimage.Canvas do
|
||||
begin
|
||||
brush.Color:=coulfond;
|
||||
pen.Color:=coulfond;
|
||||
rectangle(0,0,l,h);
|
||||
end;
|
||||
exit;
|
||||
end;
|
||||
rd:=l/h;
|
||||
@@ -14473,12 +14554,6 @@ begin
|
||||
|
||||
ligneclicTrain:=ListBoxTrains.ItemIndex;
|
||||
|
||||
//Affiche(intToSTR(lc),clyellow);
|
||||
|
||||
if ligneclicTrain+1>ntrains then
|
||||
begin
|
||||
ligneclicTrain:=ntrains-1;
|
||||
end;
|
||||
if ligneclicTrain<0 then exit;
|
||||
s:=ListBoxTrains.items[ligneclicTrain];
|
||||
if s='' then exit;
|
||||
@@ -14665,7 +14740,7 @@ begin
|
||||
end;
|
||||
if ss='' then exit;
|
||||
|
||||
s:='Voulez vous supprimer ';
|
||||
s:='Voulez vous supprimer';
|
||||
if n=1 then s:=s+' le train ' else s:=s+' les trains ';
|
||||
s:=s+ss+' ?';
|
||||
|
||||
@@ -15443,7 +15518,7 @@ begin
|
||||
ListBoxSig.Items.Clear;
|
||||
for i:=1 to NbreSignaux do
|
||||
begin
|
||||
s:=encode_signal(i); // encode la ligne depuis le tableau feux
|
||||
s:=encode_signal(i); // encode la ligne depuis le tableau signaux
|
||||
if s<>'' then
|
||||
begin
|
||||
ListBoxSig.Items.Add(s);
|
||||
@@ -16610,7 +16685,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.FormActivate(Sender: TObject);
|
||||
var i : integer;
|
||||
var i : integer;
|
||||
s : string;
|
||||
begin
|
||||
if affevt or (debug=1) then affiche('FormConfig activate',clLime);
|
||||
@@ -16835,7 +16910,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ListBoxOperationsDrawItem(Control: TWinControl;
|
||||
Index: Integer; Rect: TRect; State: TOwnerDrawState);var
|
||||
Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||||
var
|
||||
i,erreur: Integer;
|
||||
ItemText: string;
|
||||
begin
|
||||
@@ -16851,7 +16927,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ListBoxOperationsMouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
ClicAction:=ListBoxOperations.ItemIndex;
|
||||
end;
|
||||
|
||||
@@ -16916,7 +16993,6 @@ end;
|
||||
procedure TFormConfig.ListBoxOperationsDblClick(Sender: TObject);
|
||||
var s : string;
|
||||
op,i : integer;
|
||||
|
||||
begin
|
||||
if (clicAction<0) or (ligneclicAct<0) or clicliste then exit;
|
||||
Tablo_Action[ligneclicAct+1].tabloOp[clicaction+1].valide:=not(Tablo_Action[ligneclicAct+1].tabloOp[clicaction+1].valide);
|
||||
@@ -16935,7 +17011,10 @@ end;
|
||||
|
||||
|
||||
procedure TFormConfig.SpeedButtonOuvreClick(Sender: TObject);
|
||||
var s,repini :string; i : integer;begin if ligneclicTrain<0 then exit;
|
||||
var s,repini :string;
|
||||
i : integer;
|
||||
begin
|
||||
if ligneclicTrain<0 then exit;
|
||||
i:=ligneclicTrain+1;
|
||||
s:=rep_icones;
|
||||
repIni:=GetCurrentDir; // si le repertoire icones n'existe pas, il passe au supérieur
|
||||
@@ -16960,7 +17039,8 @@ var s,repini :string; i : integer;begin if ligneclicTrain<0 then exit;
|
||||
end;
|
||||
|
||||
procedure TFormConfig.EditIconeChange(Sender: TObject);
|
||||
var s,Nom,repIni : string;begin
|
||||
var s,Nom,repIni : string;
|
||||
begin
|
||||
if ligneclicTrain<0 then exit;
|
||||
if clicliste then exit;
|
||||
repIni:=GetCurrentDir;
|
||||
@@ -16977,7 +17057,8 @@ var s,Nom,repIni : string;begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.LabeledEditTempoDChange(Sender: TObject);
|
||||
var erreur,i :integer;begin
|
||||
var erreur,i :integer;
|
||||
begin
|
||||
if clicliste then exit;
|
||||
if affevt then affiche('Evt change temps démarre train',clyellow);
|
||||
if (ligneclicTrain<0) or (ligneclicTrain>=ntrains) or (ntrains<1) then exit;
|
||||
@@ -16989,7 +17070,8 @@ var erreur,i :integer;begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.CheckBoxSensClick(Sender: TObject);
|
||||
begin if clicliste then exit;
|
||||
begin
|
||||
if clicliste then exit;
|
||||
if affevt then affiche('Evt inverse train',clyellow);
|
||||
if (ligneclicTrain<0) or (ligneclicTrain>=ntrains) or (ntrains<1) then exit;
|
||||
|
||||
@@ -17000,7 +17082,8 @@ end;
|
||||
|
||||
|
||||
procedure TFormConfig.ButtonImRCDMClick(Sender: TObject);
|
||||
var nPeriph,ia,i,j,adr : integer; ctyp : string;
|
||||
var nPeriph,ia,i,j,adr : integer;
|
||||
ctyp : string;
|
||||
begin
|
||||
if nSeg=0 then begin LabelInfo.caption:='Pas de structure réseau CDM trouvée';exit;end
|
||||
else LabelInfo.caption:='';
|
||||
@@ -19979,6 +20062,43 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormConfig.SpeedButtonLayClick(Sender: TObject);
|
||||
var i : integer;
|
||||
s : string;
|
||||
begin
|
||||
if ligneclicTrain<0 then exit;
|
||||
i:=ligneclicTrain+1;
|
||||
s:=rep_icones;
|
||||
OpenDialogSon.InitialDir:='';
|
||||
OpenDialogSon.DefaultExt:='bmp';
|
||||
OpenDialogSon.Title:='Choix du fichier LAY de CDM';
|
||||
OpenDialogSon.Filter:='Fichiers LAY (*.LAY)|*.lay|Tous fichiers (*.*)|*.*';
|
||||
if openDialogSon.execute then
|
||||
begin
|
||||
s:=openDialogSon.filename;
|
||||
EditLAY.Text:=ExtractFileName(s); // ne pas mettre le chemin pour l'ouverture du LAY avec CDM
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormConfig.MenuListesCopier2Click(Sender: TObject);
|
||||
var tl: TListBox;
|
||||
i : integer;
|
||||
s : string;
|
||||
begin
|
||||
tl:=(Tpopupmenu(Tmenuitem(sender).GetParentMenu).PopupComponent) as TlistBox ;
|
||||
//ClipBoard.SetTextBuf(tl.Items.GetText);
|
||||
if not Clipboard.HasFormat(CF_TEXT) then Exit;
|
||||
tl.Items.Text := Clipboard.AsText;
|
||||
|
||||
for i:=1 to tl.items.count do
|
||||
begin
|
||||
s:=tl.Items[i-1];
|
||||
if not(decode_ligne_signal(s,i)) then // décode la chaine et stocke en tableau signal
|
||||
Affiche('Erreur 59 : définition inccorecte du signal '+intToSTR(i),clred);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ begin
|
||||
//YclicCell[indexTCO]:=YclicC;
|
||||
|
||||
xc:=xClicC;yc:=yClicC;
|
||||
origine_canton(xc,yc);
|
||||
origine_canton(indexTCO,xc,yc);
|
||||
|
||||
idCanton:=index_canton(indexTCO,xC,yC);
|
||||
|
||||
@@ -671,7 +671,7 @@ begin
|
||||
begin
|
||||
FormConfCellTCO.LabelNumC.caption:='Elément de canton';
|
||||
x:=xClicC;y:=yClicC;
|
||||
origine_canton(x,y);
|
||||
origine_canton(indexTCO,x,y);
|
||||
i:=tco[indexTCO,x,y].NumCanton;
|
||||
if i>0 then FormConfCellTCO.EditCanton.text:=intToSTR(i);
|
||||
end;
|
||||
|
||||
+2
-2
@@ -384,9 +384,9 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Caption = '(10 maximum)'
|
||||
end
|
||||
object Label17: TLabel
|
||||
Left = 146
|
||||
Left = 144
|
||||
Top = 202
|
||||
Width = 49
|
||||
Width = 51
|
||||
Height = 26
|
||||
Alignment = taRightJustify
|
||||
Caption = 'Epaisseur des voies'
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
unit UnitInfo;
|
||||
|
||||
// afiche une info dans le TCO
|
||||
// affiche une info dans le TCO
|
||||
|
||||
interface
|
||||
|
||||
@@ -40,7 +40,7 @@ end;
|
||||
|
||||
procedure TFormInfo.FormActivate(Sender: TObject);
|
||||
begin
|
||||
TickInfo:=5;
|
||||
TickInfo:=5; // temps de fermeture de la fenetre pour le timer
|
||||
end;
|
||||
|
||||
procedure TFormInfo.FormCreate(Sender: TObject);
|
||||
|
||||
+7
-4
@@ -16,10 +16,13 @@ object FormMesure: TFormMesure
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 56
|
||||
Top = 16
|
||||
Width = 272
|
||||
Height = 13
|
||||
Caption = 'S'#233'lection d'#39'un train plac'#233' sur le TCO pour son '#233'talonnage'
|
||||
Top = 0
|
||||
Width = 289
|
||||
Height = 29
|
||||
Caption =
|
||||
'S'#233'lection d'#39'un train plac'#233' sur le TCO pour son '#233'talonnage. Le pa' +
|
||||
'rcours doit '#234'tre boucl'#233'.'
|
||||
WordWrap = True
|
||||
end
|
||||
object LabelEtat: TLabel
|
||||
Left = 24
|
||||
|
||||
+13
-13
@@ -1,6 +1,6 @@
|
||||
unit UnitMesure;
|
||||
|
||||
// mesure de la vitesse des trains
|
||||
// mesure de la vitesse des trains pour l'étalonnage
|
||||
|
||||
interface
|
||||
|
||||
@@ -112,19 +112,19 @@ begin
|
||||
cv.brush.color:=clWindow;
|
||||
cv.fillrect(rect);
|
||||
end;
|
||||
// Affichage du texte
|
||||
cv.font.style:=canvas.font.style+[fsbold];
|
||||
cv.textout(rect.left+largDest+5,rect.top,ComboBoxTrains.items[index]);
|
||||
if (odSelected in state) then
|
||||
begin
|
||||
cv.brush.color:=clWindowFrame;
|
||||
cv.fillrect(rect);
|
||||
//cv.font.color:=clblue;
|
||||
cv.textout(rect.left+largDest+5,rect.top,ComboBoxTrains.items[index]);
|
||||
end;
|
||||
// Affichage du texte
|
||||
cv.font.style:=canvas.font.style+[fsbold];
|
||||
cv.textout(rect.left+largDest+5,rect.top,ComboBoxTrains.items[index]);
|
||||
if (odSelected in state) then
|
||||
begin
|
||||
cv.brush.color:=clWindowFrame;
|
||||
cv.fillrect(rect);
|
||||
//cv.font.color:=clblue;
|
||||
cv.textout(rect.left+largDest+5,rect.top,ComboBoxTrains.items[index]);
|
||||
end;
|
||||
|
||||
TransparentBlt(cv.Handle,rect.Left+2,rect.Top,largDest,hautDest,
|
||||
Trains[index+1].Icone.canvas.Handle,0,0,l,h,clWhite);
|
||||
TransparentBlt(cv.Handle,rect.Left+2,rect.Top,largDest,hautDest,
|
||||
Trains[index+1].Icone.canvas.Handle,0,0,l,h,clWhite);
|
||||
end;
|
||||
|
||||
procedure TFormMesure.ComboBoxTrainsChange(Sender: TObject);
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ begin
|
||||
|
||||
NewRule.Applicationname:=fichier;
|
||||
NewRule.Protocol:=NET_FW_IP_PROTOCOL_TCP;
|
||||
NewRule.LocalPorts :=''; // sans spécif=tous ports
|
||||
NewRule.LocalPorts:=''; // sans spécif=tous ports
|
||||
//NewRule.LocalPorts := '9999'; // '80,443,4520-4533'
|
||||
NewRule.Direction:=net_fw_rule_dir_in;
|
||||
NewRule.Enabled:=True;
|
||||
|
||||
+10
-6
@@ -132,7 +132,7 @@ var
|
||||
EtatSignalPilote : word;
|
||||
AdrPilote : integer;
|
||||
tableLEB : array[1..41,1..19] of
|
||||
record
|
||||
record // pour le décodeur LEB :
|
||||
offset, // offset en mode linéaire
|
||||
sortie, // numéro de sortie en mode linéaire
|
||||
code // code de pilotage en mode binaire
|
||||
@@ -153,13 +153,11 @@ begin
|
||||
i:=Index_Signal(AdrPilote); // adresse du signal d'origine
|
||||
if i<>0 then
|
||||
|
||||
//ImagePilote.Picture.Bitmap:=FormPilote.ImagePilote.picture.bitmap;
|
||||
EtatSignalPilote:=Signaux[0].EtatSignal;
|
||||
AncienEtat:=Signaux[0].ancienEtat;
|
||||
Vcanvas:=FormPilote.ImagePilote.picture.bitmap.Canvas;
|
||||
|
||||
case Signaux[i].aspect of
|
||||
// feux de signalisation
|
||||
2 : dessine_signal2(Vcanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
3 : dessine_signal3(Vcanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
4 : dessine_signal4(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
@@ -426,7 +424,8 @@ if ord(Key) = VK_RETURN then
|
||||
end;
|
||||
|
||||
procedure TFormPilote.FormActivate(Sender: TObject);
|
||||
var n,i,d : integer;
|
||||
var n,i,d,l,h : integer;
|
||||
b : tBitmap;
|
||||
begin
|
||||
if fermeSC then exit;
|
||||
// mise à jour du champ décodeur
|
||||
@@ -497,12 +496,16 @@ begin
|
||||
Picture.Bitmap.TransparentMode:=tmAuto;
|
||||
Picture.Bitmap.TransparentColor:=clblue;
|
||||
Transparent:=true;
|
||||
Picture.BitMap:=Signaux[i].Img.Picture.Bitmap;
|
||||
//left:=groupBox1.width+50;
|
||||
picture.Bitmap.canvas.Brush.Color:=clBtnFace;
|
||||
picture.Bitmap.Canvas.Rectangle(0,0,width,height);
|
||||
|
||||
b:=Select_dessin_Signal(n,l,h);
|
||||
Picture.BitMap:=b;
|
||||
end;
|
||||
|
||||
LabelTitrePilote.Caption:='Pilotage du signal '+intToSTR(AdrPilote);
|
||||
Signaux[0].EtatSignal:=Signaux[i].EtatSignal;
|
||||
dessine_signal_pilote;
|
||||
|
||||
if isDirectionnel(i) then
|
||||
begin
|
||||
@@ -578,6 +581,7 @@ end;
|
||||
|
||||
// initialisation de l'unité
|
||||
begin
|
||||
// tableau de pilotage du décodeur LEB
|
||||
// les offsets sont incrémentés tous les 2, on alterne les sorties entre droit et dévié ;
|
||||
// offset et sortie sont pour le mode linéaire ; code est pour le mode binaire
|
||||
// cible 1 vert rouge
|
||||
|
||||
+417
-46
@@ -1,11 +1,11 @@
|
||||
object FormPrinc: TFormPrinc
|
||||
Left = 134
|
||||
Top = 277
|
||||
Left = 104
|
||||
Top = 192
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
BorderStyle = bsNone
|
||||
Caption = 'Signaux complexes'
|
||||
ClientHeight = 513
|
||||
ClientWidth = 847
|
||||
ClientWidth = 1019
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
@@ -22,7 +22,7 @@ object FormPrinc: TFormPrinc
|
||||
OnKeyDown = FormKeyDown
|
||||
OnResize = FormResize
|
||||
DesignSize = (
|
||||
847
|
||||
1019
|
||||
513)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
@@ -40,8 +40,8 @@ object FormPrinc: TFormPrinc
|
||||
ParentFont = False
|
||||
end
|
||||
object Image9feux: TImage
|
||||
Left = 1072
|
||||
Top = 32
|
||||
Left = 848
|
||||
Top = 16
|
||||
Width = 57
|
||||
Height = 105
|
||||
Picture.Data = {
|
||||
@@ -230,8 +230,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image7feux: TImage
|
||||
Left = 440
|
||||
Top = 8
|
||||
Left = 72
|
||||
Top = 32
|
||||
Width = 57
|
||||
Height = 105
|
||||
Picture.Data = {
|
||||
@@ -398,7 +398,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image5feux: TImage
|
||||
Left = 696
|
||||
Left = 416
|
||||
Top = 0
|
||||
Width = 41
|
||||
Height = 89
|
||||
@@ -498,8 +498,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image4feux: TImage
|
||||
Left = 664
|
||||
Top = 8
|
||||
Left = 384
|
||||
Top = 0
|
||||
Width = 41
|
||||
Height = 97
|
||||
Picture.Data = {
|
||||
@@ -590,7 +590,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image3feux: TImage
|
||||
Left = 200
|
||||
Left = 256
|
||||
Top = 8
|
||||
Width = 33
|
||||
Height = 57
|
||||
@@ -671,10 +671,10 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image2feux: TImage
|
||||
Left = 1072
|
||||
Top = 144
|
||||
Width = 33
|
||||
Height = 57
|
||||
Left = 288
|
||||
Top = 16
|
||||
Width = 25
|
||||
Height = 41
|
||||
Picture.Data = {
|
||||
07544269746D617026080000424D260800000000000036040000280000001A00
|
||||
0000240000000100080000000000F0030000C40E0000C40E0000000100000001
|
||||
@@ -745,8 +745,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image2Dir: TImage
|
||||
Left = 624
|
||||
Top = 8
|
||||
Left = 296
|
||||
Top = 0
|
||||
Width = 41
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -820,8 +820,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image3Dir: TImage
|
||||
Left = 808
|
||||
Top = 32
|
||||
Left = 104
|
||||
Top = 24
|
||||
Width = 49
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -898,8 +898,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image4Dir: TImage
|
||||
Left = 744
|
||||
Top = 32
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 57
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -986,8 +986,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image5Dir: TImage
|
||||
Left = 856
|
||||
Top = 32
|
||||
Left = 160
|
||||
Top = 24
|
||||
Width = 65
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -1084,8 +1084,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image6Dir: TImage
|
||||
Left = 920
|
||||
Top = 32
|
||||
Left = 744
|
||||
Top = 8
|
||||
Width = 81
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -1192,8 +1192,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object ImageSignal20: TImage
|
||||
Left = 1048
|
||||
Top = 424
|
||||
Left = 984
|
||||
Top = 64
|
||||
Width = 57
|
||||
Height = 105
|
||||
Picture.Data = {
|
||||
@@ -1431,7 +1431,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object LabelClock: TLabel
|
||||
Left = 755
|
||||
Left = 927
|
||||
Top = 0
|
||||
Width = 85
|
||||
Height = 22
|
||||
@@ -5040,8 +5040,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object ImageTachro: TImage
|
||||
Left = 976
|
||||
Top = 112
|
||||
Left = 904
|
||||
Top = 24
|
||||
Width = 106
|
||||
Height = 37
|
||||
Picture.Data = {
|
||||
@@ -5421,7 +5421,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 545
|
||||
Left = 717
|
||||
Top = 4
|
||||
Width = 89
|
||||
Height = 13
|
||||
@@ -5429,7 +5429,7 @@ object FormPrinc: TFormPrinc
|
||||
Caption = 'Nombre de trains : '
|
||||
end
|
||||
object LabelNbTrains: TLabel
|
||||
Left = 641
|
||||
Left = 813
|
||||
Top = 2
|
||||
Width = 9
|
||||
Height = 19
|
||||
@@ -5442,10 +5442,356 @@ object FormPrinc: TFormPrinc
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Image3feux2x: TImage
|
||||
Left = 552
|
||||
Top = 0
|
||||
Width = 52
|
||||
Height = 88
|
||||
Picture.Data = {
|
||||
07544269746D617016160000424D161600000000000036040000280000003400
|
||||
0000580000000100080000000000E0110000C40E0000C40E0000000100000001
|
||||
000000000000000080000080000000808000800000008000800080800000C0C0
|
||||
C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020
|
||||
E00000400000004020000040400000406000004080000040A0000040C0000040
|
||||
E00000600000006020000060400000606000006080000060A0000060C0000060
|
||||
E00000800000008020000080400000806000008080000080A0000080C0000080
|
||||
E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0
|
||||
E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0
|
||||
E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0
|
||||
E00040000000400020004000400040006000400080004000A0004000C0004000
|
||||
E00040200000402020004020400040206000402080004020A0004020C0004020
|
||||
E00040400000404020004040400040406000404080004040A0004040C0004040
|
||||
E00040600000406020004060400040606000406080004060A0004060C0004060
|
||||
E00040800000408020004080400040806000408080004080A0004080C0004080
|
||||
E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0
|
||||
E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0
|
||||
E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0
|
||||
E00080000000800020008000400080006000800080008000A0008000C0008000
|
||||
E00080200000802020008020400080206000802080008020A0008020C0008020
|
||||
E00080400000804020008040400080406000804080008040A0008040C0008040
|
||||
E00080600000806020008060400080606000806080008060A0008060C0008060
|
||||
E00080800000808020008080400080806000808080008080A0008080C0008080
|
||||
E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0
|
||||
E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0
|
||||
E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0
|
||||
E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000
|
||||
E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020
|
||||
E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040
|
||||
E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060
|
||||
E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080
|
||||
E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0
|
||||
E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0
|
||||
A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
|
||||
FF00FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC000000000000000000000000
|
||||
00000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC00000000000000000000000000000000FCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000000000000000
|
||||
00000000000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFC0000000000000000000000000000000000000000
|
||||
00000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000
|
||||
000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000FFFFFFFFFFFF
|
||||
FFFFFFFFFFFF00000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFC0000000000000000FFFFFFFF000000000000000000000000FFFFFFFF0000
|
||||
000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000000000000000FFFF
|
||||
FFFF000000000000000000000000FFFFFFFF0000000000000000FCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC000000000000FFFFFFFF0000000000000000000000000000
|
||||
000000000000FFFFFFFF000000000000FCFCFCFCFCFCFCFCFCFCFCFC00000000
|
||||
0000FFFFFFFF0000000000000000000000000000000000000000FFFFFFFF0000
|
||||
00000000FCFCFCFCFCFCFCFCFCFC000000000000FFFF00000000000000000000
|
||||
000000000000000000000000000000000000FFFF000000000000FCFCFCFCFCFC
|
||||
FCFC000000000000FFFF00000000000000000000000000000000000000000000
|
||||
000000000000FFFF000000000000FCFCFCFCFCFC000000000000FFFF00000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
00000000FCFCFCFC000000000000FFFF00000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF000000000000FCFCFCFC00000000
|
||||
FFFF000000000000000000000000000052525252525252520000000000000000
|
||||
000000000000FFFF00000000FCFCFCFC00000000FFFF00000000000000000000
|
||||
0000000052525252525252520000000000000000000000000000FFFF00000000
|
||||
FCFC000000000000FFFF00000000000000000000000052525252525252525252
|
||||
5252000000000000000000000000FFFF000000000000000000000000FFFF0000
|
||||
0000000000000000000052525252525252525252525200000000000000000000
|
||||
0000FFFF00000000000000000000FFFF00000000000000000000000052525252
|
||||
525252525252525252525252000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000052525252525252525252525252525252
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000052525252525252525252525252525252000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000005252525252525252
|
||||
5252525252525252000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000005252525252525252525252525252525200000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
52525252525252525252525252525252000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000525252525252525252525252
|
||||
52525252000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000525252525252525252525252525252520000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000005252
|
||||
525252525252525252520000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000005252525252525252525252520000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000000000525252525252525200000000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000000052525252
|
||||
5252525200000000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000000000525252525252525200000000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000000052525252
|
||||
5252525200000000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000000000525252525252525252525252000000000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
00005252525252525252525252520000000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000525252525252525252525252
|
||||
52525252000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000525252525252525252525252525252520000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000052525252
|
||||
525252525252525252525252000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000052525252525252525252525252525252
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000052525252525252525252525252525252000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000005252525252525252
|
||||
5252525252525252000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000005252525252525252525252525252525200000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
52525252525252525252525252525252000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000000052525252525252525252
|
||||
52520000000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000000052525252525252525252525200000000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000000000
|
||||
525252525252525200000000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000000000525252525252525200000000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000000000
|
||||
525252525252525200000000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000000000525252525252525200000000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000005252525252525252525252520000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000525252525252
|
||||
5252525252520000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000005252525252525252525252525252525200000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
52525252525252525252525252525252000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000525252525252525252525252
|
||||
52525252000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000525252525252525252525252525252520000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000052525252
|
||||
525252525252525252525252000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000052525252525252525252525252525252
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000052525252525252525252525252525252000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000005252525252525252
|
||||
5252525252525252000000000000000000000000FFFF00000000000000000000
|
||||
FFFF000000000000000000000000525252525252525252525252000000000000
|
||||
000000000000FFFF000000000000000000000000FFFF00000000000000000000
|
||||
0000525252525252525252525252000000000000000000000000FFFF00000000
|
||||
0000FCFC00000000FFFF00000000000000000000000000005252525252525252
|
||||
0000000000000000000000000000FFFF00000000FCFCFCFC00000000FFFF0000
|
||||
0000000000000000000000005252525252525252000000000000000000000000
|
||||
0000FFFF00000000FCFCFCFC000000000000F6F6000000000000000000000000
|
||||
0000000000000000000000000000000000000000FFFF000000000000FCFCFCFC
|
||||
000000000000F6F6000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF000000000000FCFCFCFCFCFC000000000000FFFF0000
|
||||
0000000000000000000000000000000000000000000000000000FFFF00000000
|
||||
0000FCFCFCFCFCFCFCFC000000000000FFFF0000000000000000000000000000
|
||||
0000000000000000000000000000FFFF000000000000FCFCFCFCFCFCFCFCFCFC
|
||||
000000000000FFFFFFFF0000000000000000000000000000000000000000FFFF
|
||||
FFFF000000000000FCFCFCFCFCFCFCFCFCFCFCFC000000000000FFFFFFFF0000
|
||||
000000000000000000000000000000000000FFFFFFFF000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFC0000000000000000FFFFFFFF00000000000000000000
|
||||
0000FFFFFFFF0000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000
|
||||
000000000000FFFFFFFF000000000000000000000000FFFFFFFF000000000000
|
||||
0000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000FFFF
|
||||
FFFFFFFFFFFFFFFFFFFF00000000000000000000FCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF0000
|
||||
0000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
000000000000000000000000000000000000000000000000FCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC000000000000000000000000
|
||||
000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
00000000000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFC}
|
||||
Visible = False
|
||||
end
|
||||
object Image2feux2x: TImage
|
||||
Left = 608
|
||||
Top = 0
|
||||
Width = 52
|
||||
Height = 72
|
||||
Picture.Data = {
|
||||
07544269746D6170D6120000424DD61200000000000036040000280000003400
|
||||
0000480000000100080000000000A00E0000C40E0000C40E0000000100000001
|
||||
000000000000000080000080000000808000800000008000800080800000C0C0
|
||||
C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020
|
||||
E00000400000004020000040400000406000004080000040A0000040C0000040
|
||||
E00000600000006020000060400000606000006080000060A0000060C0000060
|
||||
E00000800000008020000080400000806000008080000080A0000080C0000080
|
||||
E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0
|
||||
E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0
|
||||
E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0
|
||||
E00040000000400020004000400040006000400080004000A0004000C0004000
|
||||
E00040200000402020004020400040206000402080004020A0004020C0004020
|
||||
E00040400000404020004040400040406000404080004040A0004040C0004040
|
||||
E00040600000406020004060400040606000406080004060A0004060C0004060
|
||||
E00040800000408020004080400040806000408080004080A0004080C0004080
|
||||
E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0
|
||||
E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0
|
||||
E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0
|
||||
E00080000000800020008000400080006000800080008000A0008000C0008000
|
||||
E00080200000802020008020400080206000802080008020A0008020C0008020
|
||||
E00080400000804020008040400080406000804080008040A0008040C0008040
|
||||
E00080600000806020008060400080606000806080008060A0008060C0008060
|
||||
E00080800000808020008080400080806000808080008080A0008080C0008080
|
||||
E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0
|
||||
E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0
|
||||
E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0
|
||||
E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000
|
||||
E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020
|
||||
E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040
|
||||
E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060
|
||||
E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080
|
||||
E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0
|
||||
E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0
|
||||
A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
|
||||
FF00FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC000000000000000000000000
|
||||
00000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC00000000000000000000000000000000FCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000000000000000
|
||||
00000000000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFC0000000000000000000000000000000000000000
|
||||
00000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000
|
||||
000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000FFFFFFFFFFFF
|
||||
FFFFFFFFFFFF00000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFC0000000000000000FFFFFFFF000000000000000000000000FFFFFFFF0000
|
||||
000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000000000000000FFFF
|
||||
FFFF000000000000000000000000FFFFFFFF0000000000000000FCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC000000000000FFFFFFFF0000000000000000000000000000
|
||||
000000000000FFFFFFFF000000000000FCFCFCFCFCFCFCFCFCFCFCFC00000000
|
||||
0000FFFFFFFF0000000000000000000000000000000000000000FFFFFFFF0000
|
||||
00000000FCFCFCFCFCFCFCFCFCFC000000000000FFFF00000000000000000000
|
||||
000000000000000000000000000000000000FFFF000000000000FCFCFCFCFCFC
|
||||
FCFC000000000000FFFF00000000000000000000000000000000000000000000
|
||||
000000000000FFFF000000000000FCFCFCFCFCFC000000000000FFFF00000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
00000000FCFCFCFC000000000000FFFF00000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF000000000000FCFCFCFC00000000
|
||||
FFFF000000000000000000000000000052525252525252520000000000000000
|
||||
000000000000FFFF00000000FCFCFCFC00000000FFFF00000000000000000000
|
||||
0000000052525252525252520000000000000000000000000000FFFF00000000
|
||||
FCFC000000000000FFFF00000000000000000000000052525252525252525252
|
||||
5252000000000000000000000000FFFF000000000000000000000000FFFF0000
|
||||
0000000000000000000052525252525252525252525200000000000000000000
|
||||
0000FFFF00000000000000000000FFFF00000000000000000000000052525252
|
||||
525252525252525252525252000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000052525252525252525252525252525252
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000052525252525252525252525252525252000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000005252525252525252
|
||||
5252525252525252000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000005252525252525252525252525252525200000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
52525252525252525252525252525252000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000525252525252525252525252
|
||||
52525252000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000525252525252525252525252525252520000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000005252
|
||||
525252525252525252520000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000005252525252525252525252520000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000000000525252525252525200000000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000000052525252
|
||||
5252525200000000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000000000000
|
||||
525252525252525200000000000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000000000000525252525252525200000000
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000000005252525252525252525252520000000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000000000525252525252
|
||||
5252525252520000000000000000000000000000FFFF0000000000000000FFFF
|
||||
0000000000000000000000005252525252525252525252525252525200000000
|
||||
0000000000000000FFFF0000000000000000FFFF000000000000000000000000
|
||||
52525252525252525252525252525252000000000000000000000000FFFF0000
|
||||
000000000000FFFF000000000000000000000000525252525252525252525252
|
||||
52525252000000000000000000000000FFFF0000000000000000FFFF00000000
|
||||
0000000000000000525252525252525252525252525252520000000000000000
|
||||
00000000FFFF0000000000000000FFFF00000000000000000000000052525252
|
||||
525252525252525252525252000000000000000000000000FFFF000000000000
|
||||
0000FFFF00000000000000000000000052525252525252525252525252525252
|
||||
000000000000000000000000FFFF0000000000000000FFFF0000000000000000
|
||||
0000000052525252525252525252525252525252000000000000000000000000
|
||||
FFFF0000000000000000FFFF0000000000000000000000005252525252525252
|
||||
5252525252525252000000000000000000000000FFFF00000000000000000000
|
||||
FFFF000000000000000000000000525252525252525252525252000000000000
|
||||
000000000000FFFF000000000000000000000000FFFF00000000000000000000
|
||||
0000525252525252525252525252000000000000000000000000FFFF00000000
|
||||
0000FCFC00000000FFFF00000000000000000000000000005252525252525252
|
||||
0000000000000000000000000000FFFF00000000FCFCFCFC00000000FFFF0000
|
||||
0000000000000000000000005252525252525252000000000000000000000000
|
||||
0000FFFF00000000FCFCFCFC000000000000FFFF000000000000000000000000
|
||||
0000000000000000000000000000000000000000FFFF000000000000FCFCFCFC
|
||||
000000000000FFFF000000000000000000000000000000000000000000000000
|
||||
0000000000000000FFFF000000000000FCFCFCFCFCFC000000000000FFFF0000
|
||||
0000000000000000000000000000000000000000000000000000FFFF00000000
|
||||
0000FCFCFCFCFCFCFCFC000000000000FFFF0000000000000000000000000000
|
||||
0000000000000000000000000000FFFF000000000000FCFCFCFCFCFCFCFCFCFC
|
||||
000000000000FFFFFFFF0000000000000000000000000000000000000000FFFF
|
||||
FFFF000000000000FCFCFCFCFCFCFCFCFCFCFCFC000000000000FFFFFFFF0000
|
||||
000000000000000000000000000000000000FFFFFFFF000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFC0000000000000000FFFFFFFF00000000000000000000
|
||||
0000FFFFFFFF0000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0000
|
||||
000000000000FFFFFFFF000000000000000000000000FFFFFFFF000000000000
|
||||
0000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000FFFF
|
||||
FFFFFFFFFFFFF6F6FFFF00000000000000000000FCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFC00000000000000000000FFFFFFFFFFFFFFFFF6F6FFFF0000
|
||||
0000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
000000000000000000000000000000000000000000000000FCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC000000000000000000000000
|
||||
000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFC00000000000000000000000000000000FCFCFCFC
|
||||
FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
00000000000000000000000000000000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
|
||||
FCFC}
|
||||
Visible = False
|
||||
end
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Top = 491
|
||||
Width = 847
|
||||
Width = 1019
|
||||
Height = 22
|
||||
Panels = <
|
||||
item
|
||||
@@ -5896,8 +6242,8 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
end
|
||||
object GroupBoxCV: TGroupBox
|
||||
Left = 617
|
||||
Top = 128
|
||||
Left = 577
|
||||
Top = 144
|
||||
Width = 265
|
||||
Height = 81
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -5964,7 +6310,7 @@ object FormPrinc: TFormPrinc
|
||||
Top = 200
|
||||
Width = 393
|
||||
Height = 265
|
||||
ActivePage = TabSheetComp
|
||||
ActivePage = TabSheetSig
|
||||
Anchors = []
|
||||
TabOrder = 5
|
||||
OnChange = PageControlChange
|
||||
@@ -5987,6 +6333,24 @@ object FormPrinc: TFormPrinc
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
end
|
||||
object TrackBarSig: TTrackBar
|
||||
Left = 352
|
||||
Top = 0
|
||||
Width = 37
|
||||
Height = 217
|
||||
Hint = 'Zoom signaux'
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
Orientation = trVertical
|
||||
ParentShowHint = False
|
||||
Frequency = 20
|
||||
Position = 10
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
ThumbLength = 15
|
||||
TickMarks = tmTopLeft
|
||||
TickStyle = tsManual
|
||||
OnChange = TrackBarSigChange
|
||||
end
|
||||
end
|
||||
object TabSheetTrains: TTabSheet
|
||||
Caption = 'Trains'
|
||||
@@ -6060,7 +6424,7 @@ object FormPrinc: TFormPrinc
|
||||
Top = 8
|
||||
end
|
||||
object MainMenu1: TMainMenu
|
||||
Left = 536
|
||||
Left = 464
|
||||
object Afficher1: TMenuItem
|
||||
Caption = 'Afficher'
|
||||
object Affichagenormal1: TMenuItem
|
||||
@@ -6461,15 +6825,16 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
end
|
||||
object OpenDialog: TOpenDialog
|
||||
Left = 584
|
||||
Top = 16
|
||||
Left = 616
|
||||
Top = 32
|
||||
end
|
||||
object SaveDialog: TSaveDialog
|
||||
Left = 744
|
||||
Left = 464
|
||||
Top = 32
|
||||
end
|
||||
object PopupMenuFenRich: TPopupMenu
|
||||
Left = 192
|
||||
Top = 8
|
||||
Left = 528
|
||||
Top = 32
|
||||
object outslectionner1: TMenuItem
|
||||
Caption = 'Tout s'#233'lectionner'
|
||||
OnClick = Toutslectionner1Click
|
||||
@@ -6488,7 +6853,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object PopupMenuSignal: TPopupMenu
|
||||
OnPopup = PopupMenuSignalPopup
|
||||
Left = 504
|
||||
Left = 496
|
||||
Top = 32
|
||||
object Proprits1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's du signal'
|
||||
@@ -6501,7 +6866,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object PopupMenuTrains: TPopupMenu
|
||||
OnPopup = PopupMenuTrainsPopup
|
||||
Left = 480
|
||||
Left = 528
|
||||
object Propritsdutrain1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's du train'
|
||||
OnClick = Propritsdutrain1Click
|
||||
@@ -6516,7 +6881,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object PopupMenuCompteurs: TPopupMenu
|
||||
OnPopup = PopupMenuCompteursPopup
|
||||
Left = 512
|
||||
Left = 496
|
||||
object Propritsdescompteurs1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's des compteurs'
|
||||
OnClick = Propritsdescompteurs1Click
|
||||
@@ -6526,4 +6891,10 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = Dtacherlecompteur1Click
|
||||
end
|
||||
end
|
||||
object Timer2: TTimer
|
||||
Interval = 50
|
||||
OnTimer = Timer2Timer
|
||||
Left = 688
|
||||
Top = 16
|
||||
end
|
||||
end
|
||||
|
||||
+394
-210
File diff suppressed because it is too large
Load Diff
+1
-3
@@ -97,7 +97,6 @@ implementation
|
||||
// renvoie l'adresse du signal du train sur détecteur
|
||||
function Adresse_signal_det_train(detect,IndexTrain : integer) : integer;
|
||||
var voie1,voie2,indexSig1,IndexSig2,AdrSig1,AdrSig2,IndexSig,AdrSig : integer;
|
||||
s : string;
|
||||
begin
|
||||
if detect=0 then
|
||||
begin
|
||||
@@ -160,9 +159,8 @@ end;
|
||||
// démarre un train si le signal n'est pas au rouge
|
||||
// appelé par gestion des horaires dans le timer ou bouton rouler 1 train ou rouler tous les trains
|
||||
function demarre_index_train(indexTrain : integer) : boolean;
|
||||
var i,n,det1,el2,vitesse,AdrTrain,idcanton,voie1,voie2,indexSig1,indexSig2,AdrSig1,AdrSig2,AdrSig,
|
||||
var i,vitesse,AdrTrain,idcanton,
|
||||
detect,indexSig,etsign : integer;
|
||||
tel2 : tequipement;
|
||||
trouve : boolean;
|
||||
Train,s : string;
|
||||
|
||||
|
||||
+25
-28
@@ -718,7 +718,7 @@ procedure Affiche_temps_arret(IdTrain,tps : integer);
|
||||
procedure titre_fenetre(indexTCO : integer);
|
||||
function IsVoieDroite(i : integer) : boolean;
|
||||
function trouve_canton(el1 : integer;tel1 : tequipement;el2 : integer;tel2 : tequipement) : integer;
|
||||
procedure origine_canton(var x,y : integer);
|
||||
procedure origine_canton(idt : integer;var x,y : integer);
|
||||
procedure Supprimer_TCO(TcoS : integer);
|
||||
procedure toggle_bandeau(indexTCO : integer);
|
||||
function sens_train_canton(AdrTrain,Idcanton : integer) : integer;
|
||||
@@ -828,8 +828,6 @@ begin
|
||||
else result:=0;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
// renvoie l'index de canton encadré par les 2 éléments el1 et el2
|
||||
// il faudrait faire par détecteur.
|
||||
// ex (526,det,513,det)= 1
|
||||
@@ -10277,7 +10275,8 @@ begin
|
||||
s:=canton[i].nom;
|
||||
if s<>'' then
|
||||
begin
|
||||
font.Size:=round(RedFonte*((Larg*10) div 30)+1); //((LargCell*5) div 29);
|
||||
font.Size:=round(RedFonte*((Larg*10) div 30)+1); //((LargCell*5) div 29);
|
||||
|
||||
Brush.Color:=coul;
|
||||
dy:=TextWidth(s) div 2;
|
||||
dx:=TextHeight(s) div 2;
|
||||
@@ -10336,11 +10335,12 @@ begin
|
||||
s:=canton[i].NomTrain;
|
||||
l:=TextWidth(s);
|
||||
Brush.Color:=coul;
|
||||
if l<dy-yt then
|
||||
//if l<dy-yt then
|
||||
if yt+l<yf then
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
begin
|
||||
font.orientation:=900;
|
||||
Textout(xi,yi,s);
|
||||
font.orientation:=-900;
|
||||
Textout(xt,yt,s);
|
||||
end;
|
||||
{$ELSE}
|
||||
AffTexteIncliBordeTexture(PCanvasTCO[indexTCO],xt,yt,
|
||||
@@ -10454,6 +10454,7 @@ end;
|
||||
procedure dessin_canton(indexTCO : integer;Canvas : Tcanvas;x,y,mode : integer); overload;
|
||||
begin
|
||||
if PcanvasTCO[indexTCO]=nil then exit;
|
||||
origine_canton(indexTCO,x,y); // revenir au point d'origine du canton
|
||||
if isCantonV(indexTCO,x,y) then
|
||||
begin
|
||||
dessin_cantonV(indexTCO,Canvas,x,y,mode);
|
||||
@@ -11363,10 +11364,11 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure origine_canton(var x,y : integer);
|
||||
// renvoie les coordonnées X Y d'origine du canton de la cellule x,y du TCO idt du canton
|
||||
procedure origine_canton(idt : integer;var x,y : integer);
|
||||
var Bimage : integer;
|
||||
begin
|
||||
Bimage:=tco[indexTCOCourant,x,y].BImage;
|
||||
Bimage:=tco[idt,x,y].BImage;
|
||||
if isCantonH(Bimage) then
|
||||
begin
|
||||
x:=x-(Bimage-Id_cantonH); // revenir à la coordonnée X du début du canton
|
||||
@@ -11419,8 +11421,7 @@ begin
|
||||
// affiche d'abord l'icone de la cellule et colore la voie si zone ou détecteur actionnée selon valeur mode
|
||||
dessine_icone(indexTCO,PCanvasTCO[indexTCO],Bimage,X,Y,mode);
|
||||
// dessin du train sur le canton
|
||||
if (Bimage=Id_CantonH) or (Bimage=Id_CantonV) then dessin_canton(indexTCO,PCanvasTCO[indexTCO],x,y,0);
|
||||
|
||||
if (Bimage=Id_CantonH) or (Bimage=Id_CantonV) then dessin_canton(indexTCO,PCanvasTCO[indexTCO],x,y,0);
|
||||
|
||||
if LargCell>24 then
|
||||
begin
|
||||
@@ -12275,7 +12276,7 @@ end;
|
||||
// sinon mode = couleur du train
|
||||
procedure affiche_trajet(indexTCO,train,AdrTrain,ir,mode : integer);
|
||||
var i,sx,sy,x,y,ax,ay,Bimage,adresse,IdCanton,IdTrain,AncTrain,elPrec,
|
||||
DernierDet,sens : integer;
|
||||
DernierDet : integer;
|
||||
TypePrec: tEquipement;
|
||||
cant : boolean;
|
||||
begin
|
||||
@@ -14616,7 +14617,7 @@ begin
|
||||
if isCantonH(tco[indexTCO,colonne,y].BImage) then
|
||||
begin
|
||||
yc:=y;xc:=colonne;
|
||||
origine_canton(xc,yc);
|
||||
origine_canton(indexTCO,xc,yc);
|
||||
n:=tco[indexTCO,xc,yc].NumCanton;
|
||||
if n<>0 then
|
||||
begin
|
||||
@@ -14714,7 +14715,7 @@ begin
|
||||
if isCantonV(tco[indexTCO,x,ligne].BImage) then
|
||||
begin
|
||||
xc:=x;yc:=ligne;
|
||||
origine_canton(xc,yc);
|
||||
origine_canton(indexTCO,xc,yc);
|
||||
n:=tco[indexTCO,xc,yc].NumCanton;
|
||||
if n<>0 then
|
||||
begin
|
||||
@@ -14845,7 +14846,7 @@ begin
|
||||
begin
|
||||
//Affiche('xy='+IntToSTR(x)+','+intToSTR(y)+' Bimage='+intToSTR(Bimage),clYellow);
|
||||
Xcanton:=x;Ycanton:=y;
|
||||
origine_canton(Xcanton,Ycanton);
|
||||
origine_canton(indexTCO,Xcanton,Ycanton);
|
||||
if xcanton=0 then // cas d'un canton supprimé
|
||||
begin
|
||||
// reconstituer le canton
|
||||
@@ -15504,7 +15505,7 @@ end;
|
||||
|
||||
procedure end_Drag(icone,x,y : integer;Sender, Target: TObject);
|
||||
var s : string;
|
||||
indexTCO,i,xclic,Yclic,bim,nc,maxi,libre : integer;
|
||||
indexTCO,i,xclic,Yclic,bim : integer;
|
||||
begin
|
||||
if not(Target is TImage) then exit;
|
||||
s:=(Target as TImage).Name;
|
||||
@@ -18030,17 +18031,16 @@ begin
|
||||
AdrPilote:=adresse;
|
||||
i:=Index_Signal(adresse);
|
||||
if i=0 then begin doubleclic:=false;exit;end;
|
||||
Signaux[0].EtatSignal:=Signaux[i].EtatSignal;
|
||||
|
||||
with formPilote do
|
||||
begin
|
||||
show;
|
||||
ImagePilote.Parent:=FormPilote;
|
||||
ImagePilote.Picture.Bitmap.TransparentMode:=tmAuto;
|
||||
ImagePilote.Picture.Bitmap.TransparentColor:=clblue;
|
||||
ImagePilote.Transparent:=true;
|
||||
|
||||
ImagePilote.Picture.BitMap:=Signaux[i].Img.Picture.Bitmap;
|
||||
LabelTitrePilote.Caption:='Pilotage du signal '+intToSTR(Adresse);
|
||||
Signaux[0].EtatSignal:=Signaux[i].EtatSignal;
|
||||
|
||||
LabelNbFeux.Visible:=False;
|
||||
EditNbreFeux.Visible:=false;
|
||||
@@ -18064,6 +18064,7 @@ begin
|
||||
GroupBox1.Visible:=true;
|
||||
if (Signaux[i].aspect<20) then GroupBox2.Visible:=true else GroupBox2.Visible:=false;
|
||||
end;
|
||||
show;
|
||||
end;
|
||||
end;
|
||||
//clicsouris:=false;
|
||||
@@ -18308,7 +18309,7 @@ begin
|
||||
begin
|
||||
FontDialog1.Font.Name:=tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].Fonte;
|
||||
FontDialog1.Font.Color:=tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].CoulFonte;
|
||||
FontDialog1.Font.Size:=round(RedFonte*tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].taillefonte);
|
||||
FontDialog1.Font.Size:=round(tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].taillefonte);
|
||||
|
||||
fs:=[];
|
||||
s:=tco[indextco,XclicCell[indexTCO],YclicCell[indexTCO]].FontStyle;
|
||||
@@ -18659,7 +18660,7 @@ begin
|
||||
if isCantonV(tco[indexTCO,x,ligne_supprime].BImage) then
|
||||
begin
|
||||
xc:=x;yc:=ligne_Supprime;
|
||||
origine_canton(xc,yc);
|
||||
origine_canton(indexTCO,xc,yc);
|
||||
n:=tco[indexTCO,xc,yc].NumCanton;
|
||||
if n<>0 then
|
||||
begin
|
||||
@@ -18780,7 +18781,7 @@ begin
|
||||
if isCantonH(tco[indexTCO,colonne_supprime,y].BImage) then
|
||||
begin
|
||||
yc:=y;xc:=colonne_Supprime;
|
||||
origine_canton(xc,yc);
|
||||
origine_canton(indexTCO,xc,yc);
|
||||
n:=tco[indexTCO,xc,yc].NumCanton;
|
||||
if n<>0 then
|
||||
begin
|
||||
@@ -19654,7 +19655,7 @@ begin
|
||||
y:=YClicCell[indexTCOCourant];
|
||||
if isCanton(TCO[indexTcoCourant,x,y].BImage) then
|
||||
begin
|
||||
origine_canton(x,y);
|
||||
origine_canton(indexTCOcourant,x,y);
|
||||
if (x<>0) and (y<>0) then
|
||||
begin
|
||||
idc:=Index_Canton_numero(tco[indexTCOcourant,x,y].NumCanton); //index canton
|
||||
@@ -19666,10 +19667,6 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormTCO.Optiondesroutes1Click(Sender: TObject);
|
||||
var GMode,l2,h2 : integer;
|
||||
XFormScale,XFormRot,XFormOld,XFormXLat,xform : TXForm;
|
||||
angle,Zoom : single;
|
||||
recta : trect;
|
||||
begin
|
||||
formRoute.Show;
|
||||
{ angle:=5;
|
||||
@@ -19810,7 +19807,7 @@ begin
|
||||
|
||||
Affiche('Suppression du TCO '+intToSTR(Tcos),clOrange);
|
||||
|
||||
// supprimer les cantons
|
||||
// supprimer les cantons du TCO avant de supprimer le TCO
|
||||
for y:=1 to NbreCellY[tcos] do
|
||||
for x:=1 to NbreCellX[tcos] do
|
||||
begin
|
||||
|
||||
+5
-4
@@ -15,7 +15,7 @@
|
||||
// The Original Code is Vcl.Styles.Ext.pas.
|
||||
//
|
||||
// The Initial Developer of the Original Code is Rodrigo Ruz V.
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2023 Rodrigo Ruz V.
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2025 Rodrigo Ruz V.
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// **************************************************************************************************
|
||||
@@ -97,11 +97,12 @@ type
|
||||
end;
|
||||
|
||||
{$REGION 'Documentation'}
|
||||
/// <summary>Helper class for the TStyleManager
|
||||
/// <summary>
|
||||
/// Helper class for the TStyleManager
|
||||
/// Vcl.Themes.TStyleManagerHelper in RAD Studio 11 prevents activate this class helper.
|
||||
/// </summary>
|
||||
{$ENDREGION}
|
||||
|
||||
TStyleManagerHelper = Class Helper for TStyleManager
|
||||
TStyleManagerHelper = class Helper for TStyleManager
|
||||
strict private
|
||||
class function GetStyleSourceInfo(const StyleName: string): TSourceInfo; static;
|
||||
class function GetStyles: TList<TCustomStyleServices>;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// The Original Code is Vcl.Styles.Utils.Graphics.pas.
|
||||
//
|
||||
// The Initial Developer of the Original Code is Rodrigo Ruz V.
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2023 Rodrigo Ruz V.
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2025 Rodrigo Ruz V.
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// **************************************************************************************************
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
//
|
||||
// The Original Code is Vcl.Styles.Utils.Misc.pas.
|
||||
//
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2023 Rodrigo Ruz V.
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2025 Rodrigo Ruz V.
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// **************************************************************************************************
|
||||
|
||||
+8
-2
@@ -590,6 +590,7 @@ begin
|
||||
if IdCantonSelect=0 then IdCantonSelect:=AncienIdCantonSelect;
|
||||
if affevt then Affiche('FormSelTrain.StringGridTrainsSelectCell col='+intToSTR(ACol)+' lig='+intToSTR(ARow),clYellow);
|
||||
if (Arow>nTrains) or (IdCantonSelect<1) then exit;
|
||||
|
||||
faire:=false;
|
||||
//------------change la sélection du train
|
||||
if (Arow>=1) and (ACol<=5) then
|
||||
@@ -607,7 +608,9 @@ begin
|
||||
idAutrecanton:=index_canton_numero(autreCanton);
|
||||
if (IdAutrecanton<>0) and (IdAutreCanton<>IdCantonSelect) then
|
||||
begin
|
||||
LabelInfo.caption:='Le train '+intToSTR(IndexTrainClic)+' '+trains[IndexTrainClic].nom_train+' est affecté au canton '+intToSTR(AutreCanton);
|
||||
s:='Le train '+intToSTR(IndexTrainClic)+' '+trains[IndexTrainClic].nom_train+' est affecté au canton '+intToSTR(AutreCanton);
|
||||
LabelInfo.caption:=s;
|
||||
StringGridTrains.hint:='Affectation impossible,'+#13+s;
|
||||
exit;
|
||||
end;
|
||||
|
||||
@@ -622,6 +625,7 @@ begin
|
||||
|
||||
supprime_route_train(indextrainclic);
|
||||
StringGridTrains.cells[7,ARow]:='';
|
||||
|
||||
end;
|
||||
|
||||
if faire then
|
||||
@@ -657,7 +661,9 @@ begin
|
||||
if (canton[IdCantonSelect].sensCirc<>0) then sensLoco:=canton[IdCantonSelect].sensCirc ;
|
||||
|
||||
affecte_Train_canton(trains[indexTrainClic].adresse,IdCantonSelect,sensLoco); // le train affecté contient la route du train razé
|
||||
LabelInfo.caption:='Affectation du train '+intToSTR(IndexTrainClic)+' '+trains[indexTrainClic].nom_train+' au canton '+intToSTR(canton[idcantonSelect].numero);
|
||||
s:='Affectation du train '+intToSTR(IndexTrainClic)+' '+trains[indexTrainClic].nom_train+' au canton '+intToSTR(canton[idcantonSelect].numero);
|
||||
LabelInfo.caption:=s;
|
||||
StringGridTrains.hint:=s;
|
||||
maj_signaux(false);
|
||||
end;
|
||||
end;
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ var
|
||||
f : textFile;
|
||||
|
||||
Const
|
||||
VersionSC = '10.8'; // sert à la comparaison de la version publiée
|
||||
VersionSC = '10.82'; // sert à la comparaison de la version publiée
|
||||
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
|
||||
// pour unzip
|
||||
SHCONTCH_NOPROGRESSBOX=4;
|
||||
@@ -559,7 +559,7 @@ begin
|
||||
formprinc.FenRich.SelStart:=length(formprinc.FenRich.Text);
|
||||
formprinc.FenRich.SelAttributes.Style:=[fsUnderline];
|
||||
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL/releases',clAqua);
|
||||
Affiche('ne comprend aucune version diffusée.',clOrange);
|
||||
Affiche('ne comprend actuellement aucune version diffusée.',clOrange);
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
||||
+5
-1
@@ -360,7 +360,11 @@ version 10.78 : Correction affichage aiguillages dans l'
|
||||
version 10.79 : Prise en compte du facteur réduction affichage windows pour les compteurs.
|
||||
version 10.8 : Amélioration de la création des compteurs de vitesse en mode CDM rail
|
||||
et de l'affectation des trains dans les cantons.
|
||||
Corrections diverses.
|
||||
version 10.81 : Prise en compte des nouveaux champs d'exportation de CDM pour l'importation du réseau.
|
||||
version 10.82 : Ajout d'une barre de zoom pour la fenetre des signaux.
|
||||
Ajout commande fonctions F trains pour la télécommande par serveur
|
||||
Corrections diverses
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user