Compare commits
10
Commits
659c39512c
...
3702de2726
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3702de2726 | ||
|
|
7daf7e28aa | ||
|
|
4b997f5de1 | ||
|
|
a70da188fd | ||
|
|
f806646a5d | ||
|
|
2ef4c7b07a | ||
|
|
e1c2f6b40c | ||
|
|
f053df40f9 | ||
|
|
aad2526b3d | ||
|
|
c1fe725ab3 |
No files matched your search
+39
-39
@@ -1,4 +1,4 @@
|
||||
/ Fichier de configuration de signaux_complexes_GL version 10.53
|
||||
/ Fichier de configuration de signaux_complexes_GL version 10.79
|
||||
Chemin_progCDM=C:\Program Files (x86)
|
||||
LargeurF=1120
|
||||
HauteurF=681
|
||||
@@ -208,30 +208,30 @@ Clignote,
|
||||
0
|
||||
/------------
|
||||
[section_sig]
|
||||
176,7,0,1,(520,A20),1,FVC0,FRC0
|
||||
190,7,0,1,(523,526),0,FVC0,FRC0
|
||||
204,9,0,1,(527,A7),1,FVC0,FRC0
|
||||
218,7,0,1,(525,A17),0,FVC0,FRC0
|
||||
232,2,1,1,(516,A6),0,FVC0,FRC0,CFB(A6D)
|
||||
274,3,0,1,(524,521),0,FVC0,FRC0
|
||||
288,7,0,1,(522,A103),1,FVC0,FRC0
|
||||
302,9,0,1,(526,A9),1,FVC0,FRC0
|
||||
316,7,1,1,(515,A5),1,FVC0,FRC0
|
||||
330,7,0,1,(519,A2),1,FVC0,FRC0
|
||||
344,9,0,1,(528,A10),1,FVC0,FRC0
|
||||
358,9,0,1,(517,A102),1,FVC0,FRC0
|
||||
372,D3,1,(A10D)(A19S)(A19D,A22D)(A19D,A22S)
|
||||
382,D3,1,(A29S,A10S)(A19S)(A19D,A22D)(A19D,A22S)
|
||||
392,3,0,1,(535,533),1,FVC0,FRC0
|
||||
406,9,0,1,(534,A23),1,FVC0,FRC0
|
||||
420,7,0,1,(529,A25,530,A27,537,A27),1,FVC1,FRC1
|
||||
448,7,0,1,(533,A24),1,FVC0,FRC0
|
||||
462,9,0,1,(513,A29),1,FVC0,FRC0
|
||||
476,9,0,1,(538,A105),1,FVC0,FRC0
|
||||
497,9,0,4,(531,A19),1,FVC0,FRC0,U14,L1
|
||||
520,9,1,1,(518,A1),1,FVC0,FRC0,(A1S,A3S,A5S),CFB(A1S,A3D,A4D,A6S)
|
||||
620,7,0,0,(521,A8),1,FVC0,FRC0
|
||||
820,4,0,0,(519,A7),0,FVC0,FRC0
|
||||
176,7,0,1,(520,A20),1,FVC0,FRC0,T0
|
||||
190,7,0,1,(523,526),0,FVC0,FRC0,T0
|
||||
204,9,0,1,(527,A7),1,FVC0,FRC0,T0
|
||||
218,7,0,1,(525,A17),0,FVC0,FRC0,T0
|
||||
232,2,1,1,(516,A6),0,FVC0,FRC0,CFB(A6D),T0
|
||||
274,3,0,1,(524,521),0,FVC0,FRC0,T0
|
||||
288,7,0,1,(522,A103),1,FVC0,FRC0,T0
|
||||
302,9,0,1,(526,A9),1,FVC0,FRC0,T0
|
||||
316,7,1,1,(515,A5),1,FVC0,FRC0,T0
|
||||
330,7,0,1,(519,A2),1,FVC0,FRC0,T0
|
||||
344,9,0,1,(528,A10),1,FVC0,FRC0,T0
|
||||
358,9,0,1,(517,A102),1,FVC0,FRC0,T0
|
||||
372,D3,1,(A10D)(A19S)(A19D,A22D)(A19D,A22S),T0
|
||||
382,D3,1,(A29S,A10S)(A19S)(A19D,A22D)(A19D,A22S),T0
|
||||
392,3,0,1,(535,533),1,FVC0,FRC0,T0
|
||||
406,9,0,1,(534,A23),1,FVC0,FRC0,T0
|
||||
420,7,0,1,(529,A25,530,A27,537,A27),1,FVC1,FRC1,T0
|
||||
448,7,0,1,(533,A24),1,FVC0,FRC0,T0
|
||||
462,9,0,1,(513,A29),1,FVC0,FRC0,T0
|
||||
476,9,0,1,(538,A105),1,FVC0,FRC0,T0
|
||||
497,9,0,4,(531,A19),1,FVC0,FRC0,U14,L1,T0
|
||||
520,9,1,1,(518,A1),1,FVC0,FRC0,(A1S,A3S,A5S),CFB(A1S,A3D,A4D,A6S),T0
|
||||
620,7,0,0,(521,A8),1,FVC0,FRC0,T0
|
||||
820,4,0,0,(519,A7),0,FVC0,FRC0,T0
|
||||
0
|
||||
/------------
|
||||
[section_PN]
|
||||
@@ -257,7 +257,7 @@ BB16024,3,120,100,60,BB16024.BMP,7,0,0,0,0,0,0.00,0.00,0.00,0,0,0
|
||||
CC406526,4,120,100,80,CC406526.BMP,10,0,0,0,0,0,0.00,0.00,0.00,0,0,0
|
||||
[route_par_pont],0,1
|
||||
{519->2droit->12dev->517->102crois->18dev->11dev->101crois->525->17dev->528->10dev->101crois->19dev->531->518->1droit->100crois->523}
|
||||
CAMERA,6,120,0,0,EAD.BMP,8,0,0,0,0,0,0.00,0.00,0.00,0,0,0
|
||||
CAMERA,6,120,120,60,EAD.BMP,8,0,0,0,0,0,0.00,0.00,0.00,0,0,0
|
||||
0
|
||||
/------------
|
||||
[section_placement]
|
||||
@@ -351,22 +351,19 @@ DureeMinute=1
|
||||
0
|
||||
/------------
|
||||
[section_logique]
|
||||
/--- Fonction 1
|
||||
"0"
|
||||
FF
|
||||
0
|
||||
/------------
|
||||
[section_blocs_USB]
|
||||
B1,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B2,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B3,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B4,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B5,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B6,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B7,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B8,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B9,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B10,,BR0,0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0,B0,0,0
|
||||
B1,,BR0,0,0,1,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B2,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B3,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B4,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B5,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B6,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B7,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B8,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B9,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
B10,,BR0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0,B0,0,0,0
|
||||
0
|
||||
/------------
|
||||
[section_compteurs]
|
||||
@@ -376,16 +373,19 @@ Graduations=FFFFFF
|
||||
Numeros=FFFFFF
|
||||
Fond=000000
|
||||
Arc=008000
|
||||
Increment=3
|
||||
Compteur2
|
||||
Aiguille=0000FF
|
||||
Graduations=000000
|
||||
Numeros=FF0000
|
||||
Fond=808080
|
||||
Arc=008000
|
||||
Increment=3
|
||||
Compteur3
|
||||
Aiguille=0000FF
|
||||
Graduations=FFFFFF
|
||||
Numeros=FFFFFF
|
||||
Fond=000000
|
||||
Arc=008000
|
||||
Increment=3
|
||||
0
|
||||
Binary file not shown.
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 = '+ -'
|
||||
|
||||
+37
-18
@@ -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;
|
||||
@@ -4765,7 +4794,7 @@ var pt : Tpoint;
|
||||
canvasI : Tcanvas;
|
||||
begin
|
||||
clic:=true;
|
||||
pt:= formAnalyseCDM.ImageCDM.ScreenToClient(Mouse.CursorPos); // coordonnées par rapport à l'image
|
||||
pt:=formAnalyseCDM.ImageCDM.ScreenToClient(Mouse.CursorPos); // coordonnées par rapport à l'image
|
||||
xSouris:=pt.x;
|
||||
ySouris:=pt.y;
|
||||
|
||||
@@ -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
|
||||
|
||||
+13
-13
@@ -1,6 +1,6 @@
|
||||
unit UnitCDF;
|
||||
|
||||
// configuration des décodeurs CDM et Digikeijs
|
||||
// configuration des décodeurs CDF et Digikeijs
|
||||
|
||||
interface
|
||||
|
||||
@@ -195,25 +195,25 @@ begin
|
||||
i:=0;
|
||||
|
||||
//ImagePilote.Picture.Bitmap:=FormPilote.ImagePilote.picture.bitmap;
|
||||
EtatFeuPilote:=Signaux[i].EtatSignal;
|
||||
EtatSignalPilote:=Signaux[i].EtatSignal;
|
||||
AncienEtat:=Signaux[i].AncienEtat;
|
||||
dessineCDF:=true; // demande dessin CDF pour les clignotements
|
||||
Vcanvas:=FormCDF.ImageDigi.picture.bitmap.Canvas;
|
||||
|
||||
case Signaux[i].aspect of
|
||||
// feux de signalisation
|
||||
2 : dessine_signal2(Vcanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
3 : dessine_signal3(Vcanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
4 : dessine_signal4(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
5 : dessine_signal5(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
7 : dessine_signal7(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
9 : dessine_signal9(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
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);
|
||||
5 : dessine_signal5(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
7 : dessine_signal7(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
9 : dessine_signal9(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
// indicateurs de direction
|
||||
12 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,2);
|
||||
13 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,3);
|
||||
14 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,4);
|
||||
15 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,5);
|
||||
16 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,6);
|
||||
12 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,2);
|
||||
13 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,3);
|
||||
14 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,4);
|
||||
15 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,5);
|
||||
16 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,6);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ object FormClock: TFormClock
|
||||
OnResize = FormResize
|
||||
DesignSize = (
|
||||
234
|
||||
212)
|
||||
211)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object BitBtnMarHor: TBitBtn
|
||||
|
||||
+1
-1
@@ -487,7 +487,7 @@ end;
|
||||
procedure TFormClock.TjsVerClick(Sender: TObject);
|
||||
begin
|
||||
SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NoMove or SWP_NoSize);
|
||||
// le checked ne fonctionne pas sous D7, fonctionne sous D12.
|
||||
// le checked ne fonctionne pas sous D7, fonctionne sous D13.
|
||||
TjsDev.Checked:=true;
|
||||
Dverrouiller1.Checked:=false;
|
||||
VerrouilleClock:=true;
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
object FormCompteur: TFormCompteur
|
||||
Left = 550
|
||||
Top = 218
|
||||
Left = 614
|
||||
Top = 296
|
||||
Width = 258
|
||||
Height = 262
|
||||
BorderStyle = bsSizeToolWin
|
||||
|
||||
+73
-34
@@ -66,6 +66,7 @@ var
|
||||
Scompteur : TTCompteur; // Scompteur : associé à grande fenetre compteur
|
||||
ParamCompteur : array[1..3] of record
|
||||
coulAig,coulGrad,CoulNum,CoulFond,CoulArc : tcolor;
|
||||
increment : integer; // incrément rapide
|
||||
end;
|
||||
|
||||
VerrouilleCompteur,affTrainCompteur,VitCrans : boolean;
|
||||
@@ -162,7 +163,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// change l'aiguille du compteur
|
||||
// change l'aiguille du compteur "c" en fonction de la vitesse du train "idTrain" dans le composant "comp"
|
||||
// c : n° de fenetre du compteur idTrain : index du train comp : composant dans lequel se trouve le compteur (form, groupbox ou image)
|
||||
procedure aiguille_compteur(c,idTrain : integer ; comp : Tcomponent);
|
||||
var ComptLoc,x1,y1,x2,y2,x3,y3,x4,y4,vitesse,vitesseFin,lim,him : integer;
|
||||
@@ -278,6 +279,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// dessine le fond du compteur 2 (graduations et chiffres)
|
||||
procedure compteur_2(c : integer;bm : tbitmap;var param : tparamcompt);
|
||||
var n,v,rayon2,rayon3,rayon4,x1,y1,x2,y2,xt,yt,lim,him,rg : integer;
|
||||
angle,incr,r : single;
|
||||
@@ -376,6 +378,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// dessine le fond du compteur tachro
|
||||
procedure compteur_tachro(c : integer;bm : tbitmap;var param : tparamcompt);
|
||||
var l,av,n,v,rayon2,rayon3,rayon4,x1,y1,x2,y2,xt,yt,lim,him,rg : integer;
|
||||
angle,incr,r,a,sinA,cosA : single;
|
||||
@@ -488,7 +491,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
// dessine dans le FbitMap
|
||||
// dessine le fond du compteur pour tous les compteurs dans le FbitMap
|
||||
// le var est obligatoire
|
||||
// typecompt : type du compteur 1 2 ou 3
|
||||
procedure dessin_fond_compteur(var param : TparamCompt;i: integer ; Im : tbitmap;typCompt : integer);
|
||||
@@ -507,31 +510,37 @@ begin
|
||||
|
||||
// le compteurs 1 provient de bitmaps
|
||||
// le compteur 2 et 3 sont dessinés par
|
||||
|
||||
with param do
|
||||
begin
|
||||
case typCompt of
|
||||
1 : begin
|
||||
// le compteur 1 provient d'une image
|
||||
StretchDraw(rect(0,0,Lim,Him),Formprinc.ImageCompteur1.Picture.Bitmap);
|
||||
Brush.Style:=bsSolid;
|
||||
Brush.Color:=$1F1A17;
|
||||
font.color:=ParamCompteur[1].CoulNum;
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
font.orientation:=0;
|
||||
{$IFEND}
|
||||
font.size:=round(redx*10*RedFonte);
|
||||
TextOut(round(50*redX),round(128*redY),'0');
|
||||
TextOut(round(36*redX),round(90*redY),'20');
|
||||
TextOut(round(50*redX),round(54*redY),'40');
|
||||
TextOut(round(90*redX),round(36*redY),'60');
|
||||
TextOut(round(129*redX),round(53*redY),'80');
|
||||
TextOut(round(137*redX),round(91*redY),'100');
|
||||
TextOut(round(126*redX),round(126*redY),'120');
|
||||
// centre de l'aiguille
|
||||
AigCX:=round(98*redX);
|
||||
AigCY:=round(98*redY);
|
||||
rAig:=round(AigCX / 1.5);
|
||||
angleFin:=127; // en fait vitesse maxi compteur
|
||||
// le compteur 1 provient d'une image
|
||||
StretchDraw(rect(0,0,Lim,Him),Formprinc.ImageCompteur1.Picture.Bitmap);
|
||||
Brush.Style:=bsSolid;
|
||||
Brush.Color:=$1F1A17;
|
||||
font.color:=ParamCompteur[1].CoulNum;
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
font.orientation:=0;
|
||||
// centre de l'aiguille
|
||||
AigCX:=round(97*redX); // le centre de l'aiguille est en 97 97
|
||||
AigCY:=round(97*redY);
|
||||
{$ELSE}
|
||||
// centre de l'aiguille
|
||||
AigCX:=round(97*redX*RedFonte); // le centre de l'aiguille est en 97 97
|
||||
AigCY:=round(97*redY*RedFonte);
|
||||
{$IFEND}
|
||||
font.size:=round(redx*10*RedFonte);
|
||||
TextOut(round(50*redX),round(128*redY),'0');
|
||||
TextOut(round(40*redX),round(92*redY),'20');
|
||||
TextOut(round(56*redX),round(56*redY),'40');
|
||||
TextOut(round(94*redX),round(36*redY),'60');
|
||||
TextOut(round(129*redX),round(53*redY),'80');
|
||||
TextOut(round(137*redX),round(91*redY),'100');
|
||||
TextOut(round(124*redX),round(130*redY),'120');
|
||||
|
||||
rAig:=round(AigCX / 1.5);
|
||||
angleFin:=127; // en fait vitesse maxi compteur
|
||||
end;
|
||||
2 : begin
|
||||
// centre de l'aiguille et longueur
|
||||
@@ -564,12 +573,15 @@ begin
|
||||
init_compteur(1,FormCompteur[1]);
|
||||
end;
|
||||
|
||||
// initialise le compteur
|
||||
// i = rang du compteur
|
||||
// c : composant de destination
|
||||
Procedure Init_compteur(i : integer;c : Tcomponent);
|
||||
const ofs=30; // décalage entre la taille de l'image et de la fenetre
|
||||
// compteurs fenetre principale
|
||||
HautTb=10; // hauteur trackbar
|
||||
ofsGBH=15; // marge haut du groupbox
|
||||
ofsGBB=8; // marge bas du groupbox
|
||||
ofsGBB=8; // marge bas du groupbox
|
||||
|
||||
var comptLoc,l,h,lim,him,hfen,mini,maxi,vmax : integer;
|
||||
typDest : typ;
|
||||
@@ -590,10 +602,10 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
if (typDest=fen) or (typDest=gb) then ComptLoc:=compteur;
|
||||
if (typDest=fen) or (typDest=gb) then ComptLoc:=compteur; // compteur est une variable globale qui désigne le type de compteur de la grande fenetre de compteur
|
||||
if typDest=im then ComptLoc:=formconfig.ComboBoxCompt.ItemIndex+1;
|
||||
|
||||
case ComptLoc of
|
||||
case ComptLoc of // 1=compteur 1, 2=compteur 2 , 3=compteur tachro
|
||||
1 :
|
||||
begin
|
||||
mini:=-135;
|
||||
@@ -678,8 +690,18 @@ begin
|
||||
paramCompt.imgH:=him; //HautCompt-HautTb-ofsGBH-ofsGBB;
|
||||
Img.picture.Bitmap.Width:=lim;
|
||||
Img.picture.Bitmap.Height:=him; //HautCompt-HautTb-ofsGBH-ofsGBB;
|
||||
paramcompt.redX:=Lim/l;
|
||||
paramcompt.redY:=Him/h;
|
||||
|
||||
if ComptLoc=1 then
|
||||
begin
|
||||
paramcompt.redX:=Lim/l/RedFonte; // pour le compteur 1; il faut intégrer le facteur de réduction
|
||||
paramcompt.redY:=Him/h/RedFonte;
|
||||
end
|
||||
else
|
||||
begin
|
||||
paramcompt.redX:=Lim/l;
|
||||
paramcompt.redY:=Him/h;
|
||||
end;
|
||||
|
||||
paramcompt.ImgL:=Lim;
|
||||
paramcompt.ImgH:=Him;
|
||||
tb.Top:=him+ofsGBH; // position de la trackbar
|
||||
@@ -694,7 +716,7 @@ begin
|
||||
3 : compteurT[i].paramcompt.rav:=round(115*compteurT[i].paramcompt.redx);
|
||||
end;
|
||||
|
||||
//ne pas faire compteurT[i].FCBitMap.Free çà fait une exception si il est déja en nil, contrairement à D12.
|
||||
//ne pas faire compteurT[i].FCBitMap.Free çà fait une exception si il est déja en nil, contrairement à D13.
|
||||
compteurT[i].fcBitMap:=tbitmap.Create;
|
||||
with compteurT[i].FCBitMap do
|
||||
begin
|
||||
@@ -710,8 +732,17 @@ begin
|
||||
if typDest=fen then
|
||||
begin
|
||||
formCompteur[i].ImageCompteur.width:=Lim;
|
||||
Scompteur[i].paramcompt.redX:=Lim/l;
|
||||
Scompteur[i].paramcompt.redY:=Him/h;
|
||||
if ComptLoc=1 then
|
||||
begin
|
||||
Scompteur[i].paramcompt.redX:=Lim/l/RedFonte;
|
||||
Scompteur[i].paramcompt.redY:=Him/h/RedFonte;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Scompteur[i].paramcompt.redX:=Lim/l;
|
||||
Scompteur[i].paramcompt.redY:=Him/h;
|
||||
end;
|
||||
|
||||
Scompteur[i].paramcompt.ImgL:=Lim;
|
||||
Scompteur[i].paramcompt.ImgH:=Him;
|
||||
case compteur of
|
||||
@@ -802,8 +833,17 @@ begin
|
||||
Image.Width:=lim;
|
||||
Image.Height:=him;
|
||||
|
||||
paramcomptIm.redX:=Lim/l;
|
||||
paramcomptIm.redY:=Him/h;
|
||||
if ComptLoc=1 then
|
||||
begin
|
||||
paramcomptIm.redX:=Lim/l/RedFonte;
|
||||
paramcomptIm.redY:=Him/h/RedFonte;
|
||||
end
|
||||
else
|
||||
begin
|
||||
paramcomptIm.redX:=Lim/l;
|
||||
paramcomptIm.redY:=Him/h;
|
||||
end;
|
||||
|
||||
paramcomptIm.ImgL:=Lim;
|
||||
paramcomptIm.ImgH:=Him;
|
||||
i:=formconfig.ComboBoxCompt.Itemindex+1;
|
||||
@@ -981,7 +1021,6 @@ begin
|
||||
afficherIconeDuTrain1.Checked:=affTrainCompteur;
|
||||
init_compteur(1,formcompteur[1]);
|
||||
affiche_train_compteur(1);
|
||||
|
||||
end;
|
||||
|
||||
procedure TFormCompteur.Vitesseencrans1Click(Sender: TObject);
|
||||
|
||||
+248
-120
@@ -1,6 +1,6 @@
|
||||
object FormConfig: TFormConfig
|
||||
Left = 265
|
||||
Top = 106
|
||||
Left = 254
|
||||
Top = 172
|
||||
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Configuration g'#233'n'#233'rale'
|
||||
@@ -1542,12 +1542,12 @@ object FormConfig: TFormConfig
|
||||
Visible = False
|
||||
WordWrap = True
|
||||
end
|
||||
object LabelD12: TLabel
|
||||
object LabelD13: TLabel
|
||||
Left = 752
|
||||
Top = 64
|
||||
Width = 40
|
||||
Height = 31
|
||||
Caption = 'D12'
|
||||
Caption = 'D13'
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -27
|
||||
@@ -1573,7 +1573,7 @@ object FormConfig: TFormConfig
|
||||
Top = 8
|
||||
Width = 633
|
||||
Height = 505
|
||||
ActivePage = TabSheetAutonome
|
||||
ActivePage = TabSheetDet
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
@@ -1638,7 +1638,6 @@ object FormConfig: TFormConfig
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
Text = '123'
|
||||
end
|
||||
object ButtonPFCDM: TButton
|
||||
Left = 16
|
||||
@@ -1669,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
|
||||
@@ -1730,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
|
||||
@@ -2032,7 +2042,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckBoxVerifXpressNet: TCheckBox
|
||||
Left = 8
|
||||
Top = 90
|
||||
Top = 88
|
||||
Width = 233
|
||||
Height = 17
|
||||
Hint =
|
||||
@@ -2098,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
|
||||
@@ -2147,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
|
||||
@@ -2155,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' +
|
||||
@@ -2295,10 +2305,10 @@ object FormConfig: TFormConfig
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
Lines.Strings = (
|
||||
'3. Valeur maximale par tranche de 100 ms qui d'#233'finit le temps '
|
||||
'd'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's '
|
||||
'une trame qui lui est transf'#233'r'#233'e. Cette valeur est '#224' tester en '
|
||||
'fonction de votre interface. '
|
||||
'3. Valeur maximale par tranche de 50 ms qui d'#233'finit le temps '
|
||||
'd'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's une trame qui lui '
|
||||
'est transf'#233'r'#233'e. Cette valeur est '#224' tester en fonction de votre '
|
||||
'interface. '
|
||||
'En cas de d'#233'passement de la valeur, un message '#171' pas de '
|
||||
'r'#233'ponse de l'#39'interface '#187' sera affich'#233'.')
|
||||
ReadOnly = True
|
||||
@@ -2420,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 = (
|
||||
@@ -2917,7 +2930,7 @@ object FormConfig: TFormConfig
|
||||
OnClick = RadioButtonTJD4Click
|
||||
end
|
||||
end
|
||||
object ButtonPropage: TButton
|
||||
object ButtonPropageAig: TButton
|
||||
Left = 192
|
||||
Top = 56
|
||||
Width = 89
|
||||
@@ -2930,7 +2943,7 @@ object FormConfig: TFormConfig
|
||||
ShowHint = True
|
||||
TabOrder = 9
|
||||
WordWrap = True
|
||||
OnClick = ButtonPropageClick
|
||||
OnClick = ButtonPropageAigClick
|
||||
end
|
||||
end
|
||||
object ButtonNouvAig: TButton
|
||||
@@ -3140,21 +3153,6 @@ object FormConfig: TFormConfig
|
||||
object TabSheetSig: TTabSheet
|
||||
Caption = 'Signaux'
|
||||
ImageIndex = 4
|
||||
object Label15: TLabel
|
||||
Left = 0
|
||||
Top = 8
|
||||
Width = 531
|
||||
Height = 13
|
||||
Caption =
|
||||
'Liste de mod'#233'lisation des signaux - cliquez sur une ligne pour a' +
|
||||
'fficher la description du signal'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label35: TLabel
|
||||
Left = 72
|
||||
Top = 436
|
||||
@@ -3164,14 +3162,14 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBox12: TGroupBox
|
||||
Left = 328
|
||||
Top = 24
|
||||
Top = 8
|
||||
Width = 297
|
||||
Height = 449
|
||||
Height = 465
|
||||
Caption = 'Description du signal'
|
||||
TabOrder = 0
|
||||
object ImageSignal: TImage
|
||||
Left = 8
|
||||
Top = 48
|
||||
Top = 64
|
||||
Width = 81
|
||||
Height = 105
|
||||
end
|
||||
@@ -3190,30 +3188,30 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object LabelDec: TLabel
|
||||
Left = 92
|
||||
Top = 52
|
||||
Top = 76
|
||||
Width = 53
|
||||
Height = 13
|
||||
Caption = 'D'#233'codeur: '
|
||||
end
|
||||
object LabelDetAss: TLabel
|
||||
Left = 96
|
||||
Top = 104
|
||||
Top = 120
|
||||
Width = 86
|
||||
Height = 13
|
||||
Caption = 'D'#233'tecteur associ'#233
|
||||
end
|
||||
object LabelElSuiv: TLabel
|
||||
Left = 192
|
||||
Top = 104
|
||||
Top = 120
|
||||
Width = 75
|
||||
Height = 13
|
||||
Caption = 'Element suivant'
|
||||
end
|
||||
object Label17: TLabel
|
||||
Left = 8
|
||||
Top = 326
|
||||
Width = 115
|
||||
Height = 52
|
||||
Top = 344
|
||||
Width = 128
|
||||
Height = 39
|
||||
Hint =
|
||||
'Permet d'#39'afficher un carr'#233' si les aiguillages sont dans les posi' +
|
||||
'tions d'#233'crites ci dessous'
|
||||
@@ -3225,8 +3223,8 @@ object FormConfig: TFormConfig
|
||||
WordWrap = True
|
||||
end
|
||||
object Label24: TLabel
|
||||
Left = 104
|
||||
Top = 124
|
||||
Left = 120
|
||||
Top = 140
|
||||
Width = 8
|
||||
Height = 13
|
||||
Caption = '1'
|
||||
@@ -3238,8 +3236,8 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object Label25: TLabel
|
||||
Left = 104
|
||||
Top = 148
|
||||
Left = 120
|
||||
Top = 164
|
||||
Width = 8
|
||||
Height = 13
|
||||
Caption = '2'
|
||||
@@ -3251,8 +3249,8 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object Label26: TLabel
|
||||
Left = 104
|
||||
Top = 172
|
||||
Left = 120
|
||||
Top = 188
|
||||
Width = 8
|
||||
Height = 13
|
||||
Caption = '3'
|
||||
@@ -3264,8 +3262,8 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object Label27: TLabel
|
||||
Left = 104
|
||||
Top = 196
|
||||
Left = 120
|
||||
Top = 212
|
||||
Width = 8
|
||||
Height = 13
|
||||
Caption = '4'
|
||||
@@ -3278,22 +3276,22 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object Label33: TLabel
|
||||
Left = 104
|
||||
Top = 76
|
||||
Top = 100
|
||||
Width = 36
|
||||
Height = 13
|
||||
Caption = 'Aspect:'
|
||||
end
|
||||
object LabelUni: TLabel
|
||||
Left = 8
|
||||
Top = 176
|
||||
Top = 200
|
||||
Width = 72
|
||||
Height = 13
|
||||
Caption = 'Spec Unisemaf'
|
||||
Visible = False
|
||||
end
|
||||
object Label43: TLabel
|
||||
Left = 48
|
||||
Top = 160
|
||||
Left = 72
|
||||
Top = 176
|
||||
Width = 38
|
||||
Height = 16
|
||||
Caption = 'Voies:'
|
||||
@@ -3306,8 +3304,8 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object Label69: TLabel
|
||||
Left = 152
|
||||
Top = 326
|
||||
Width = 107
|
||||
Top = 350
|
||||
Width = 122
|
||||
Height = 39
|
||||
Hint =
|
||||
'Permet d'#39'afficher un feu blanc si les aiguillages sont dans les ' +
|
||||
@@ -3318,11 +3316,19 @@ object FormConfig: TFormConfig
|
||||
ShowHint = True
|
||||
WordWrap = True
|
||||
end
|
||||
object Label15: TLabel
|
||||
Left = 64
|
||||
Top = 46
|
||||
Width = 171
|
||||
Height = 13
|
||||
Caption = 'Temporisation commandes (x100ms)'
|
||||
WordWrap = True
|
||||
end
|
||||
object MemoCarre: TMemo
|
||||
Left = 8
|
||||
Top = 368
|
||||
Top = 392
|
||||
Width = 137
|
||||
Height = 73
|
||||
Height = 65
|
||||
Hint =
|
||||
'Une ligne contient les conditions en ET. Les lignes sont cha'#238'n'#233'e' +
|
||||
's en OU'
|
||||
@@ -3336,17 +3342,17 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object ComboBoxDec: TComboBox
|
||||
Left = 144
|
||||
Top = 48
|
||||
Top = 72
|
||||
Width = 137
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 1
|
||||
OnChange = ComboBoxDecChange
|
||||
end
|
||||
object EditDet1: TEdit
|
||||
Left = 136
|
||||
Top = 120
|
||||
Top = 136
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'D'#233'tecteur 1 (obligatoire) associ'#233' au signal'
|
||||
@@ -3357,7 +3363,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditSuiv1: TEdit
|
||||
Left = 200
|
||||
Top = 120
|
||||
Top = 136
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint =
|
||||
@@ -3370,7 +3376,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditDet2: TEdit
|
||||
Left = 136
|
||||
Top = 144
|
||||
Top = 160
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'D'#233'tecteur 2 (optionnel) associ'#233' au signal'
|
||||
@@ -3381,7 +3387,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditSuiv2: TEdit
|
||||
Left = 200
|
||||
Top = 144
|
||||
Top = 160
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint =
|
||||
@@ -3394,7 +3400,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditDet3: TEdit
|
||||
Left = 136
|
||||
Top = 168
|
||||
Top = 184
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'D'#233'tecteur 3 (optionnel) associ'#233' au signal'
|
||||
@@ -3405,7 +3411,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditSuiv3: TEdit
|
||||
Left = 200
|
||||
Top = 168
|
||||
Top = 184
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint =
|
||||
@@ -3418,7 +3424,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditDet4: TEdit
|
||||
Left = 136
|
||||
Top = 192
|
||||
Top = 208
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'D'#233'tecteur 4 (optionnel) associ'#233' au signal'
|
||||
@@ -3429,7 +3435,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditSuiv4: TEdit
|
||||
Left = 200
|
||||
Top = 192
|
||||
Top = 208
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint =
|
||||
@@ -3442,7 +3448,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckVerrouCarre: TCheckBox
|
||||
Left = 136
|
||||
Top = 216
|
||||
Top = 240
|
||||
Width = 137
|
||||
Height = 17
|
||||
Hint =
|
||||
@@ -3467,17 +3473,17 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object ComboBoxAsp: TComboBox
|
||||
Left = 144
|
||||
Top = 72
|
||||
Top = 96
|
||||
Width = 137
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxAspChange
|
||||
end
|
||||
object EditSpecUni: TEdit
|
||||
Left = 8
|
||||
Top = 192
|
||||
Top = 216
|
||||
Width = 33
|
||||
Height = 21
|
||||
TabOrder = 14
|
||||
@@ -3485,8 +3491,8 @@ object FormConfig: TFormConfig
|
||||
OnChange = EditSpecUniChange
|
||||
end
|
||||
object Buttonrestaure: TButton
|
||||
Left = 24
|
||||
Top = 272
|
||||
Left = 32
|
||||
Top = 288
|
||||
Width = 75
|
||||
Height = 25
|
||||
Hint = 'Restaure la configuration du feu d'#39'avant sa modification'
|
||||
@@ -3498,7 +3504,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckBoxFB: TCheckBox
|
||||
Left = 136
|
||||
Top = 264
|
||||
Top = 288
|
||||
Width = 153
|
||||
Height = 17
|
||||
Caption = 'Avec demande feu blanc'
|
||||
@@ -3506,8 +3512,8 @@ object FormConfig: TFormConfig
|
||||
OnClick = CheckBoxFBClick
|
||||
end
|
||||
object ButtonConfigSR: TButton
|
||||
Left = 24
|
||||
Top = 296
|
||||
Left = 32
|
||||
Top = 312
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Configuration'
|
||||
@@ -3517,7 +3523,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckFVC: TCheckBox
|
||||
Left = 136
|
||||
Top = 232
|
||||
Top = 256
|
||||
Width = 121
|
||||
Height = 17
|
||||
Hint = 'Remplace le feu vert par un feu vert clignotant'
|
||||
@@ -3529,7 +3535,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckFRC: TCheckBox
|
||||
Left = 136
|
||||
Top = 248
|
||||
Top = 272
|
||||
Width = 129
|
||||
Height = 17
|
||||
Hint = 'Remplace le s'#233'maphore par un feu rouge clignotant'
|
||||
@@ -3541,7 +3547,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckBoxVersContrevoie: TCheckBox
|
||||
Left = 136
|
||||
Top = 280
|
||||
Top = 304
|
||||
Width = 137
|
||||
Height = 17
|
||||
Hint = 'Permet d'#39'afficher le chevron si l'#39'aiguillage du signal est devi'#233
|
||||
@@ -3553,7 +3559,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckBoxContreVoie: TCheckBox
|
||||
Left = 136
|
||||
Top = 296
|
||||
Top = 320
|
||||
Width = 129
|
||||
Height = 17
|
||||
Hint = 'Signal clignotant'
|
||||
@@ -3565,9 +3571,9 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object MemoBlanc: TMemo
|
||||
Left = 152
|
||||
Top = 368
|
||||
Top = 392
|
||||
Width = 129
|
||||
Height = 73
|
||||
Height = 65
|
||||
Hint =
|
||||
'Une ligne contient les conditions en ET. Les lignes sont cha'#238'n'#233'e' +
|
||||
's en OU'
|
||||
@@ -3579,8 +3585,8 @@ object FormConfig: TFormConfig
|
||||
OnChange = MemoBlancChange
|
||||
end
|
||||
object RadioGroupLEB: TRadioGroup
|
||||
Left = 8
|
||||
Top = 224
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 113
|
||||
Height = 41
|
||||
Caption = 'Pilotage'
|
||||
@@ -3593,10 +3599,33 @@ object FormConfig: TFormConfig
|
||||
Visible = False
|
||||
OnClick = RadioGroupLEBClick
|
||||
end
|
||||
object EditTempoSig: TEdit
|
||||
Left = 240
|
||||
Top = 40
|
||||
Width = 33
|
||||
Height = 21
|
||||
TabOrder = 23
|
||||
OnChange = EditTempoSigChange
|
||||
end
|
||||
object ButtonPropageSig: TButton
|
||||
Left = 224
|
||||
Top = 16
|
||||
Width = 57
|
||||
Height = 17
|
||||
Hint =
|
||||
'Change les adresses dans les TCOs si on a chang'#233' l'#39'adresse d'#39'un ' +
|
||||
'signal'
|
||||
Caption = 'Propage'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 24
|
||||
WordWrap = True
|
||||
OnClick = ButtonPropageSigClick
|
||||
end
|
||||
end
|
||||
object ButtonNouvSig: TButton
|
||||
Left = 0
|
||||
Top = 32
|
||||
Top = 16
|
||||
Width = 65
|
||||
Height = 17
|
||||
Caption = 'Nouveau'
|
||||
@@ -3605,7 +3634,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object ButtonSupSig: TButton
|
||||
Left = 72
|
||||
Top = 32
|
||||
Top = 16
|
||||
Width = 65
|
||||
Height = 17
|
||||
Caption = 'Supprime'
|
||||
@@ -3614,7 +3643,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object ButtonInsSig: TButton
|
||||
Left = 144
|
||||
Top = 32
|
||||
Top = 16
|
||||
Width = 153
|
||||
Height = 17
|
||||
Caption = 'Ajouter le signal supprim'#233
|
||||
@@ -3642,7 +3671,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object ListBoxSig: TListBox
|
||||
Left = 0
|
||||
Top = 56
|
||||
Top = 48
|
||||
Width = 321
|
||||
Height = 337
|
||||
Color = clBlack
|
||||
@@ -3779,7 +3808,7 @@ object FormConfig: TFormConfig
|
||||
Top = 56
|
||||
Width = 193
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxDecodeurPersoChange
|
||||
end
|
||||
@@ -3798,7 +3827,7 @@ object FormConfig: TFormConfig
|
||||
Width = 145
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxNationChange
|
||||
end
|
||||
@@ -3844,7 +3873,7 @@ object FormConfig: TFormConfig
|
||||
Width = 193
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 6
|
||||
OnChange = ComboBoxDecCdeChange
|
||||
end
|
||||
@@ -4057,7 +4086,7 @@ object FormConfig: TFormConfig
|
||||
Top = 96
|
||||
Width = 137
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxOperateurChange
|
||||
OnDrawItem = ComboBoxOperateurDrawItem
|
||||
@@ -4077,7 +4106,7 @@ object FormConfig: TFormConfig
|
||||
Top = 96
|
||||
Width = 161
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
@@ -4147,8 +4176,8 @@ object FormConfig: TFormConfig
|
||||
OnChange = LabeledEditTrainChange
|
||||
end
|
||||
object RadioGroupOP: TRadioGroup
|
||||
Left = 48
|
||||
Top = 32
|
||||
Left = 72
|
||||
Top = 24
|
||||
Width = 89
|
||||
Height = 57
|
||||
Caption = 'Op'#233'rateur'
|
||||
@@ -4159,6 +4188,17 @@ object FormConfig: TFormConfig
|
||||
TabOrder = 4
|
||||
OnClick = RadioGroupOPClick
|
||||
end
|
||||
object LabeledEditZone: TLabeledEdit
|
||||
Left = 16
|
||||
Top = 44
|
||||
Width = 41
|
||||
Height = 21
|
||||
EditLabel.Width = 25
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Zone'
|
||||
TabOrder = 5
|
||||
OnChange = LabeledEditZoneChange
|
||||
end
|
||||
end
|
||||
object ButtonSupLog: TButton
|
||||
Left = 288
|
||||
@@ -4178,7 +4218,7 @@ object FormConfig: TFormConfig
|
||||
Width = 145
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 7
|
||||
OnChange = ComboBoxFLChange
|
||||
end
|
||||
@@ -4543,6 +4583,57 @@ object FormConfig: TFormConfig
|
||||
OnChange = EditDecalChange
|
||||
end
|
||||
end
|
||||
object GroupBox13: TGroupBox
|
||||
Left = 336
|
||||
Top = 272
|
||||
Width = 265
|
||||
Height = 137
|
||||
Caption = 'Changement de l'#39'adresse d'#39'un d'#233'tecteur'
|
||||
TabOrder = 5
|
||||
object Label85: TLabel
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 92
|
||||
Height = 13
|
||||
Caption = 'D'#233'tecteur courant :'
|
||||
end
|
||||
object LabelDetCour: TLabel
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 3
|
||||
Height = 13
|
||||
Caption = '.'
|
||||
end
|
||||
object LabeledNvleAdrDet: TLabeledEdit
|
||||
Left = 200
|
||||
Top = 48
|
||||
Width = 40
|
||||
Height = 21
|
||||
Hint = 'Nouvelle adresse du d'#233'tecteur'
|
||||
EditLabel.Width = 145
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Nouvelle adresse du d'#233'tecteur'
|
||||
EditLabel.Layout = tlBottom
|
||||
LabelPosition = lpLeft
|
||||
LabelSpacing = 40
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object ButtonValideDet: TButton
|
||||
Left = 72
|
||||
Top = 88
|
||||
Width = 137
|
||||
Height = 33
|
||||
Hint =
|
||||
'Propage l'#39'adresse du d'#233'tecteur dans les branches, les aiguillage' +
|
||||
's, les signaux et les TCO'
|
||||
Caption = 'Valider et propager le d'#233'tecteur'
|
||||
TabOrder = 1
|
||||
WordWrap = True
|
||||
OnClick = ButtonValideDetClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object TabSheetPN: TTabSheet
|
||||
Caption = 'PN'
|
||||
@@ -4714,7 +4805,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
|
||||
@@ -4728,7 +4819,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
|
||||
@@ -5088,7 +5179,7 @@ object FormConfig: TFormConfig
|
||||
Top = 16
|
||||
Width = 337
|
||||
Height = 457
|
||||
ActivePage = TabSheet1
|
||||
ActivePage = TabSheetTrGen
|
||||
TabOrder = 3
|
||||
object TabSheetTrGen: TTabSheet
|
||||
Caption = 'G'#233'n'#233'ral'
|
||||
@@ -5681,7 +5772,7 @@ object FormConfig: TFormConfig
|
||||
Left = 312
|
||||
Top = 72
|
||||
Width = 249
|
||||
Height = 265
|
||||
Height = 289
|
||||
Caption = 'Param'#232'tres de couleur'
|
||||
TabOrder = 0
|
||||
object Label76: TLabel
|
||||
@@ -5795,6 +5886,22 @@ object FormConfig: TFormConfig
|
||||
Height = 265
|
||||
end
|
||||
end
|
||||
object LabeledEditCr: TLabeledEdit
|
||||
Left = 152
|
||||
Top = 424
|
||||
Width = 33
|
||||
Height = 21
|
||||
Hint = 'Valeur de l'#39'incr'#233'ment en crans de vitesse (1-6)'
|
||||
EditLabel.Width = 98
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Incr'#233'ment de vitesse'
|
||||
LabelPosition = lpLeft
|
||||
LabelSpacing = 10
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
OnChange = LabeledEditCrChange
|
||||
end
|
||||
end
|
||||
object TabSheetPeriph: TTabSheet
|
||||
Caption = 'P'#233'riph'#233'riques'
|
||||
@@ -6081,7 +6188,7 @@ object FormConfig: TFormConfig
|
||||
Top = 328
|
||||
Width = 329
|
||||
Height = 110
|
||||
Hint = 'R'#233'f'#233'rences crois'#233'es de l'#39#39'utilisation des p'#233'riph'#233'riques'
|
||||
Hint = 'R'#233'f'#233'rences crois'#233'es de l'#39'utilisation des p'#233'riph'#233'riques'
|
||||
ParentShowHint = False
|
||||
ReadOnly = True
|
||||
ShowHint = True
|
||||
@@ -6302,7 +6409,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBoxBR: TGroupBox
|
||||
Left = 312
|
||||
Top = 176
|
||||
Top = 128
|
||||
Width = 260
|
||||
Height = 121
|
||||
Caption = 'Bouton rotatif'
|
||||
@@ -6378,13 +6485,13 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBoxBt: TGroupBox
|
||||
Left = 312
|
||||
Top = 320
|
||||
Top = 224
|
||||
Width = 260
|
||||
Height = 121
|
||||
Height = 145
|
||||
Caption = 'Bouton'
|
||||
TabOrder = 2
|
||||
object LabeledEditF: TLabeledEdit
|
||||
Left = 185
|
||||
Left = 193
|
||||
Top = 52
|
||||
Width = 40
|
||||
Height = 21
|
||||
@@ -6401,7 +6508,7 @@ object FormConfig: TFormConfig
|
||||
OnChange = LabeledEditFChange
|
||||
end
|
||||
object LabeledEditFn: TLabeledEdit
|
||||
Left = 201
|
||||
Left = 217
|
||||
Top = 76
|
||||
Width = 16
|
||||
Height = 21
|
||||
@@ -6418,7 +6525,7 @@ object FormConfig: TFormConfig
|
||||
OnChange = LabeledEditFnChange
|
||||
end
|
||||
object LabeledEditCT: TLabeledEdit
|
||||
Left = 185
|
||||
Left = 193
|
||||
Top = 20
|
||||
Width = 40
|
||||
Height = 21
|
||||
@@ -6434,6 +6541,23 @@ object FormConfig: TFormConfig
|
||||
TabOrder = 2
|
||||
OnChange = LabeledEditCTChange
|
||||
end
|
||||
object LabeledEditT: TLabeledEdit
|
||||
Left = 193
|
||||
Top = 108
|
||||
Width = 40
|
||||
Height = 21
|
||||
Hint = 'Temporisation de retomb'#233'e de la fonction F.'
|
||||
EditLabel.Width = 173
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Temporisation de retomb'#233'e (x100ms)'
|
||||
EditLabel.Layout = tlBottom
|
||||
LabelPosition = lpLeft
|
||||
LabelSpacing = 10
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
OnChange = LabeledEditTChange
|
||||
end
|
||||
end
|
||||
object GroupBoxBloc: TGroupBox
|
||||
Left = 312
|
||||
@@ -6455,7 +6579,7 @@ object FormConfig: TFormConfig
|
||||
Width = 153
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxUSBTrChange
|
||||
end
|
||||
@@ -6589,6 +6713,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
|
||||
@@ -6635,7 +6763,7 @@ object FormConfig: TFormConfig
|
||||
Left = 664
|
||||
Top = 72
|
||||
Bitmap = {
|
||||
494C010109000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
494C01010A000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000400000004000000001002000000000000040
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
@@ -6791,17 +6919,17 @@ object FormConfig: TFormConfig
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FF000000
|
||||
FF000000FF000000FF000000FF0000000000000000000000FF000000FF000000
|
||||
FF000000FF000000FF0000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000FF000000
|
||||
FF000000FF000000FF000000FF0000000000000000000000FF000000FF000000
|
||||
FF000000FF000000FF0000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
@@ -7155,11 +7283,11 @@ object FormConfig: TFormConfig
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000FFFF000000000000742E000000000000
|
||||
75EE000000000000546A00000000000025E4000000000000742E000000000000
|
||||
FFFF000000000000FFFF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000FFFF000000000000FB4700000000
|
||||
00000000000000000000000000000000FFFFFFFF00000000742EFFFF00000000
|
||||
75EEFFFF00000000546AC1830000000025E4C18300000000742EFFFF00000000
|
||||
FFFFFFFF00000000FFFFB6DB0000000000000000000000000000B6DB00000000
|
||||
00000000000000000000B6DB000000000000FFFF000000000000FFFF00000000
|
||||
0000FFFF000000000000FFFF000000000000FFFF000000000000FB4700000000
|
||||
0000F56F000000000000F56F000000000000F54F000000000000FB6F00000000
|
||||
0000FFFF00000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
|
||||
+919
-190
File diff suppressed because it is too large.
Load diff
@@ -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'
|
||||
|
||||
+8
-6
@@ -1,6 +1,6 @@
|
||||
object FormDebug: TFormDebug
|
||||
Left = 258
|
||||
Top = 1
|
||||
Left = 194
|
||||
Top = 132
|
||||
VertScrollBar.Increment = 67
|
||||
VertScrollBar.Tracking = True
|
||||
VertScrollBar.Visible = False
|
||||
@@ -41,7 +41,7 @@ object FormDebug: TFormDebug
|
||||
673)
|
||||
object LabelTitreDebug: TLabel
|
||||
Left = 475
|
||||
Top = 8
|
||||
Top = 4
|
||||
Width = 131
|
||||
Height = 18
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -55,7 +55,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 627
|
||||
Top = 10
|
||||
Top = 6
|
||||
Width = 108
|
||||
Height = 13
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -431,7 +431,9 @@ object FormDebug: TFormDebug
|
||||
Top = 16
|
||||
Width = 57
|
||||
Height = 49
|
||||
Hint = 'Test si des aiguillages sont d'#233'vi'#233's apr'#232's le signal'
|
||||
Hint =
|
||||
'Test si des aiguillages pris en pointe sont d'#233'vi'#233's apr'#232's le sign' +
|
||||
'al'
|
||||
Caption = 'Aig d'#233'vi'#233' apr'#232's signal'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
@@ -712,7 +714,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object EditNivDebug: TEdit
|
||||
Left = 751
|
||||
Top = 8
|
||||
Top = 4
|
||||
Width = 49
|
||||
Height = 21
|
||||
Anchors = [akTop, akRight]
|
||||
|
||||
+2
-2
@@ -214,7 +214,7 @@ begin
|
||||
visible:=false;
|
||||
RichDebug.clear;
|
||||
s:=DateToStr(date)+' '+TimeToStr(Time)+' ';
|
||||
// l'ascenseur de la fenetre dans D12 ------------
|
||||
// l'ascenseur de la fenetre dans D13 ------------
|
||||
// ne fonctionne que si le style est windows !!! (bug du VCL)
|
||||
// obligé d'utiliser une scrollBox
|
||||
|
||||
@@ -731,7 +731,7 @@ begin
|
||||
NivDebug:=3;
|
||||
erreur:=Signal_Precedent(Adr);
|
||||
NivDebug:=AncDebug;
|
||||
AfficheDebug('signal précédent='+intToSTR(erreur),clyellow);
|
||||
AfficheDebug('Signal précédent='+intToSTR(erreur),clyellow);
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -290,7 +290,7 @@ var
|
||||
DRect: TRect;
|
||||
couleur : tColor;
|
||||
Grid: TStringGrid;
|
||||
d12 : boolean;
|
||||
d13 : boolean;
|
||||
begin
|
||||
Grid:=Sender as TStringGrid;
|
||||
|
||||
@@ -338,15 +338,15 @@ begin
|
||||
end; }
|
||||
|
||||
|
||||
d12:=false;
|
||||
d13:=false;
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
d12:=true;
|
||||
d13:=true;
|
||||
{$IFEND}
|
||||
//Affiche(intToSTR(arow)+' '+intToSTR(aCol),clYellow);
|
||||
// couleur de fond
|
||||
if Arow=0 then
|
||||
begin
|
||||
if d12 then couleur:=grid.canvas.Pixels[35,6] else couleur:=$E0E0E0;
|
||||
if d13 then couleur:=grid.canvas.Pixels[35,6] else couleur:=$E0E0E0;
|
||||
with grid.canvas do
|
||||
begin
|
||||
Brush.Color := couleur;
|
||||
|
||||
+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);
|
||||
|
||||
+11
-10
@@ -4,7 +4,7 @@ object FormMemZone: TFormMemZone
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Activer / d'#233'sactiver des m'#233'moires de zone'
|
||||
ClientHeight = 173
|
||||
ClientWidth = 370
|
||||
ClientWidth = 405
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
@@ -19,15 +19,16 @@ object FormMemZone: TFormMemZone
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 24
|
||||
Top = 8
|
||||
Top = 0
|
||||
Width = 329
|
||||
Height = 33
|
||||
Height = 39
|
||||
Caption =
|
||||
'Les m'#233'moires de zone sont constitu'#233'es de deux d'#233'tecteurs contigu' +
|
||||
's'
|
||||
's. Si les deux d'#233'tecteurs sont s'#233'par'#233's par un ou des aiguillage(' +
|
||||
's), il doit '#234'tre correctement positionn'#233
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -13
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
@@ -40,28 +41,28 @@ object FormMemZone: TFormMemZone
|
||||
Height = 13
|
||||
end
|
||||
object Shape1: TShape
|
||||
Left = 216
|
||||
Left = 240
|
||||
Top = 88
|
||||
Width = 137
|
||||
Height = 9
|
||||
Brush.Color = clBlue
|
||||
end
|
||||
object Shape2: TShape
|
||||
Left = 232
|
||||
Left = 256
|
||||
Top = 83
|
||||
Width = 25
|
||||
Height = 20
|
||||
Brush.Color = clRed
|
||||
end
|
||||
object Shape3: TShape
|
||||
Left = 312
|
||||
Left = 336
|
||||
Top = 83
|
||||
Width = 25
|
||||
Height = 20
|
||||
Brush.Color = clRed
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 225
|
||||
Left = 249
|
||||
Top = 56
|
||||
Width = 35
|
||||
Height = 19
|
||||
@@ -74,7 +75,7 @@ object FormMemZone: TFormMemZone
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 304
|
||||
Left = 328
|
||||
Top = 56
|
||||
Width = 35
|
||||
Height = 19
|
||||
|
||||
+7
-7
@@ -78,7 +78,6 @@ end;
|
||||
|
||||
function valide_det : boolean;
|
||||
var erreur : integer;
|
||||
elsuiv : tEquipement;
|
||||
begin
|
||||
result:=false;
|
||||
val(FormMemZone.labeledEditDet1.text,det1Z,erreur);
|
||||
@@ -93,15 +92,16 @@ begin
|
||||
end;
|
||||
|
||||
val(FormMemZone.labeledEditDet2.text,det2Z,erreur);
|
||||
det_contigu(det1Z,det2Z,suivant,ElSuiv);
|
||||
|
||||
if suivant=0 then
|
||||
Det_Adj(det1Z); // renvoie les adresses des détecteurs adjacents au détecteur "det1Zrésultat dans adj1 et adj2
|
||||
if (adj1=det2Z) or (adj2=det2Z) then
|
||||
begin
|
||||
FormMemZone.LabelInfo.Caption:='Les détecteurs '+intToSTR(det1Z)+' / '+intToSTR(det2Z)+' ne sont pas contigus';
|
||||
result:=true;
|
||||
FormMemZone.LabelInfo.caption:='';
|
||||
exit;
|
||||
end;
|
||||
FormMemZone.LabelInfo.caption:='';
|
||||
result:=true;
|
||||
|
||||
FormMemZone.LabelInfo.Caption:='Les détecteurs '+intToSTR(det1Z)+' / '+intToSTR(det2Z)+' ne sont pas contigus';
|
||||
result:=false;
|
||||
end;
|
||||
|
||||
procedure TFormMemZone.ButtonActClick(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);
|
||||
|
||||
+60
-26
@@ -1,6 +1,6 @@
|
||||
object FormModifAction: TFormModifAction
|
||||
Left = 395
|
||||
Top = 166
|
||||
Left = 355
|
||||
Top = 223
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Modifier une action'
|
||||
ClientHeight = 443
|
||||
@@ -60,7 +60,7 @@ object FormModifAction: TFormModifAction
|
||||
Top = 64
|
||||
Width = 729
|
||||
Height = 337
|
||||
ActivePage = TabSheetDecl
|
||||
ActivePage = TabSheet1
|
||||
MultiLine = True
|
||||
TabOrder = 1
|
||||
object TabSheetDecl: TTabSheet
|
||||
@@ -255,9 +255,9 @@ object FormModifAction: TFormModifAction
|
||||
object Label6: TLabel
|
||||
Left = 258
|
||||
Top = 8
|
||||
Width = 118
|
||||
Width = 124
|
||||
Height = 13
|
||||
Caption = 'Condition '#224' observer'
|
||||
Caption = 'Conditions '#224' observer'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
@@ -265,6 +265,32 @@ object FormModifAction: TFormModifAction
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object SpeedButtonSupCond: TSpeedButton
|
||||
Left = 338
|
||||
Top = 255
|
||||
Width = 23
|
||||
Height = 22
|
||||
Hint = 'Supprime une condition de la liste'
|
||||
Glyph.Data = {
|
||||
F6000000424DF600000000000000760000002800000010000000100000000100
|
||||
04000000000080000000C40E0000C40E00001000000000000000000000000000
|
||||
8000008000000080800080000000800080008080000080808000C0C0C0000000
|
||||
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFF9FFFFFFF9
|
||||
9FFFFF999FFFFF9999FFF99999FFF999999F9999999F9999999FF99999999999
|
||||
99FFFF99999999999FFFFFF999999999FFFFFFFF9999999FFFFFFFF999999999
|
||||
FFFFFF99999999999FFFF9999999999999FF9999999F9999999F999999FFF999
|
||||
999FF9999FFFFF9999FFFF99FFFFFFF99FFFFFFFFFFFFFFFFFFF}
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnClick = SpeedButtonSupCondClick
|
||||
end
|
||||
object Label7: TLabel
|
||||
Left = 240
|
||||
Top = 258
|
||||
Width = 93
|
||||
Height = 13
|
||||
Caption = 'Supprimer condition'
|
||||
end
|
||||
object ListBoxCondTot: TListBox
|
||||
Left = 0
|
||||
Top = 60
|
||||
@@ -279,12 +305,13 @@ object FormModifAction: TFormModifAction
|
||||
Top = 28
|
||||
Width = 201
|
||||
Height = 201
|
||||
Hint = 'Condition de r'#233'alisation du d'#233'clencheur'
|
||||
Hint = 'Conditions (chainage en ET) de r'#233'alisation du d'#233'clencheur'
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
OnDrawItem = ListBoxConditionsDrawItem
|
||||
OnKeyDown = ListBoxConditionsKeyDown
|
||||
OnMouseDown = ListBoxConditionsMouseDown
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
@@ -449,6 +476,18 @@ object FormModifAction: TFormModifAction
|
||||
TabOrder = 3
|
||||
OnClick = ButtonAppCondClick
|
||||
end
|
||||
object ButtonAjCond: TButton
|
||||
Left = 128
|
||||
Top = 276
|
||||
Width = 75
|
||||
Height = 25
|
||||
Hint = 'Ajouter la condition s'#233'lectionn'#233'e dans la liste des conditions'
|
||||
Caption = 'Ajouter >>>'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
OnClick = ButtonAjCondClick
|
||||
end
|
||||
end
|
||||
object TabSheetOp: TTabSheet
|
||||
Caption = 'Op'#233'rations'
|
||||
@@ -517,7 +556,7 @@ object FormModifAction: TFormModifAction
|
||||
Top = 32
|
||||
Width = 217
|
||||
Height = 21
|
||||
ItemHeight = 13
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxFamilleChange
|
||||
end
|
||||
@@ -544,6 +583,7 @@ object FormModifAction: TFormModifAction
|
||||
Hint = 'Liste chronologique des op'#233'rations '#224' effectuer'
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
PopupMenu = PopupMenuOP
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
OnDblClick = ListBoxOperationsDblClick
|
||||
@@ -721,7 +761,7 @@ object FormModifAction: TFormModifAction
|
||||
Height = 21
|
||||
Hint = 'Nom du p'#233'riph'#233'rique 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 = 4
|
||||
@@ -837,29 +877,23 @@ object FormModifAction: TFormModifAction
|
||||
object OpenDialogSon: TOpenDialog
|
||||
Left = 680
|
||||
end
|
||||
object PopupMenuL: TPopupMenu
|
||||
Left = 692
|
||||
Top = 104
|
||||
object Monter1: TMenuItem
|
||||
Caption = 'Monter'
|
||||
object PopupMenuOP: TPopupMenu
|
||||
Left = 680
|
||||
Top = 32
|
||||
object Monteropration1: TMenuItem
|
||||
Caption = 'Monter op'#233'ration'
|
||||
OnClick = Monteropration1Click
|
||||
end
|
||||
object Descendre1: TMenuItem
|
||||
Caption = 'Descendre'
|
||||
object Descendreopration1: TMenuItem
|
||||
Caption = 'Descendre op'#233'ration'
|
||||
OnClick = Descendreopration1Click
|
||||
end
|
||||
object N1: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object Supprimer1: TMenuItem
|
||||
Caption = 'Supprimer'
|
||||
end
|
||||
object N2: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object outdployer1: TMenuItem
|
||||
Caption = 'Tout d'#233'ployer'
|
||||
end
|
||||
object outcontracter1: TMenuItem
|
||||
Caption = 'Tout contracter'
|
||||
object Supprimeropration1: TMenuItem
|
||||
Caption = 'Supprimer op'#233'ration'
|
||||
OnClick = Supprimeropration1Click
|
||||
end
|
||||
end
|
||||
end
|
||||
+284
-62
@@ -74,19 +74,19 @@ type
|
||||
RadioEtatSignal: TRadioGroup;
|
||||
SpinEditEtatop: TSpinEdit;
|
||||
LabelEtatOp: TLabel;
|
||||
PopupMenuL: TPopupMenu;
|
||||
Monter1: TMenuItem;
|
||||
Descendre1: TMenuItem;
|
||||
N1: TMenuItem;
|
||||
Supprimer1: TMenuItem;
|
||||
N2: TMenuItem;
|
||||
outdployer1: TMenuItem;
|
||||
outcontracter1: TMenuItem;
|
||||
ButtonFonction: TButton;
|
||||
ButtonVoirFonc: TButton;
|
||||
LabelInfoFonc: TLabel;
|
||||
Label2InfoFonction: TLabel;
|
||||
SpeedButton1: TSpeedButton;
|
||||
PopupMenuOP: TPopupMenu;
|
||||
Monteropration1: TMenuItem;
|
||||
Descendreopration1: TMenuItem;
|
||||
N1: TMenuItem;
|
||||
Supprimeropration1: TMenuItem;
|
||||
ButtonAjCond: TButton;
|
||||
SpeedButtonSupCond: TSpeedButton;
|
||||
Label7: TLabel;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure ListBoxOperDrawItem(Control: TWinControl; Index: Integer;
|
||||
Rect: TRect; State: TOwnerDrawState);
|
||||
@@ -142,6 +142,13 @@ type
|
||||
procedure ButtonFonctionClick(Sender: TObject);
|
||||
procedure ButtonVoirFoncClick(Sender: TObject);
|
||||
procedure SpeedButton1Click(Sender: TObject);
|
||||
procedure Supprimeropration1Click(Sender: TObject);
|
||||
procedure Monteropration1Click(Sender: TObject);
|
||||
procedure Descendreopration1Click(Sender: TObject);
|
||||
procedure ButtonAjCondClick(Sender: TObject);
|
||||
procedure SpeedButtonSupCondClick(Sender: TObject);
|
||||
procedure ListBoxConditionsKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -154,7 +161,7 @@ var
|
||||
ClicDeclenche,ClicAction,ClicCond,DeclencheurAffiche,OperationAffiche : integer;
|
||||
|
||||
function Info_action(i : integer) : string;
|
||||
procedure affecte_operation(i : integer;t: TListBox);
|
||||
function affecte_operation(i : integer) : string;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -219,21 +226,25 @@ begin
|
||||
end;
|
||||
|
||||
// ajoute à la listbox t une ligne avec son icone opérations[]
|
||||
// i numéro d'opération
|
||||
procedure affecte_operation(i : integer;t : tListBox);
|
||||
// i numéro d'opération dans le ytableau operations
|
||||
function affecte_operation(i : integer) : string;
|
||||
var s : string;
|
||||
io : integer;
|
||||
begin
|
||||
s:=operations[i].nom;
|
||||
if ligneclicAct>0 then if not(Tablo_Action[ligneclicact+1].tabloOp[i].valide) then s:=s+sd;
|
||||
if i<ActionBoutonTCO then t.Items.Add(Format('%d%s', [i-1, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionBoutonTCO then t.Items.Add(Format('%d%s', [IconeBouton, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionAffecteMemoire then t.Items.Add(Format('%d%s', [IconeActionAffecteMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionIncMemoire then t.Items.Add(Format('%d%s', [IconeActionIncMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionDecMemoire then t.Items.Add(Format('%d%s', [IconeActionDecMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
//if ligneClicAct>=0 then io:=Tablo_Action[ligneclicAct+1].tabloOp[i].numoperation else io:=0;
|
||||
s:='';
|
||||
if i<ActionBoutonTCO then s:=(Format('%d%s', [i-1, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionBoutonTCO then s:=(Format('%d%s', [IconeBouton, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionAffecteMemoire then s:=(Format('%d%s', [IconeActionAffecteMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionIncMemoire then s:=(Format('%d%s', [IconeActionIncMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if i=ActionDecMemoire then s:=(Format('%d%s', [IconeActionDecMemoire, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
s:=s+operations[i].nom;
|
||||
result:=s;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.FormCreate(Sender: TObject);
|
||||
var i,icone : integer;
|
||||
s : string;
|
||||
begin
|
||||
ListBoxOper.Style:=lbOwnerDrawVariable; // pour afficher des icones
|
||||
ListBoxDeclench.Style:=lbOwnerDrawVariable;
|
||||
@@ -262,7 +273,8 @@ begin
|
||||
|
||||
for i:=1 to NbreOperations do
|
||||
begin
|
||||
affecte_operation(i,formModifAction.ListBoxOper);
|
||||
s:=affecte_operation(i);
|
||||
formModifAction.ListBoxOper.Items.add(s);
|
||||
ListBoxOper.itemHeight:=16; // 16 mini taille des éléments pour l'icone
|
||||
end;
|
||||
|
||||
@@ -281,7 +293,7 @@ begin
|
||||
CondMemoireEgal : icone:=IconeCondMemoireEgal;
|
||||
CondMemoireInf : icone:=IconeCondMemoireInf;
|
||||
CondMemoireSup : icone:=IconeCondMemoireSup;
|
||||
|
||||
CondDetAct : Icone:=IconeDet;
|
||||
end;
|
||||
ListBoxCondTot.Items.Add(Format('%d%s', [icone, Conditions[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
ListBoxCondTot.itemHeight:=16; // 16 taille des éléments pour l'icone
|
||||
@@ -376,8 +388,9 @@ begin
|
||||
begin
|
||||
if (operations[i].famille=famille) or (famille=0) then
|
||||
begin
|
||||
s:=operations[i].nom;
|
||||
affecte_operation(i,formModifAction.ListBoxOper);
|
||||
//s:=operations[i].nom;
|
||||
s:=affecte_operation(i);
|
||||
formModifAction.ListBoxOper.items.Add(s);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -398,7 +411,7 @@ begin
|
||||
s:=s+'accessoire '+intToSTR(Tablo_Action[i].adresse);
|
||||
DeclDetAct :
|
||||
begin
|
||||
s:=s+'détecteur/Actionneur '+intToSTR(Tablo_Action[i].adresse);
|
||||
s:=s+'détecteur/Actionneur '+intToSTR(Tablo_Action[i].adresse)+' à '+intToSTR(Tablo_Action[i].etat);
|
||||
s:=s+' par le train "'+Tablo_Action[i].trainDecl+'"';
|
||||
end;
|
||||
DeclZoneDet :
|
||||
@@ -445,7 +458,7 @@ begin
|
||||
condMemoireEgal : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' à '+intToSTR(tablo_action[i].tabloCond[op].etat);
|
||||
condMemoireInf : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' < '+intToSTR(tablo_action[i].tabloCond[op].etat);
|
||||
condMemoireSup : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' > '+intToSTR(tablo_action[i].tabloCond[op].etat);
|
||||
|
||||
condDetAct : s:=s+'det/act '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' à '+intToSTR(tablo_action[i].tabloCond[op].etat)+' train:'+tablo_action[i].tabloCond[op].train;
|
||||
end;
|
||||
s:=s+#13;
|
||||
end;
|
||||
@@ -671,7 +684,7 @@ end;
|
||||
|
||||
// affiche les champs en fonction de l'index du tablo actionneur et de l'index de l'action
|
||||
procedure Aff_champs(index,IndexCond,IndexAction : integer);
|
||||
var i,decl,act,cond,icone : integer;
|
||||
var i,decl,act,cond,icone,adr : integer;
|
||||
s : string;
|
||||
begin
|
||||
if (index<1) then exit;
|
||||
@@ -718,7 +731,7 @@ begin
|
||||
if not(Tablo_Action[index].tabloOp[i].valide) then s:=s+' [dévalidé]';
|
||||
if act<1 then icone:=0 else icone:=act-1;
|
||||
|
||||
// listbox de la formmodifAction
|
||||
// listboxOperations de la formmodifAction
|
||||
if act<=ActionTempo then items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if act=ActionBoutonTCO then items.Add(Format('%d%s', [iconeBouton, s]));
|
||||
if act=ActionAffecteMemoire then items.Add(Format('%d%s', [iconeActionAffecteMemoire, s]));
|
||||
@@ -728,6 +741,9 @@ begin
|
||||
// listboxOperations de la formConfig
|
||||
if act<=ActionTempo then formConfig.ListBoxOperations.Items.add(Format('%d%s', [act-1, s]));
|
||||
if act=ActionBoutonTCO then formConfig.ListBoxOperations.items.Add(Format('%d%s', [IconeBouton, s]));
|
||||
if act=ActionAffecteMemoire then formConfig.ListBoxOperations.items.Add(Format('%d%s', [iconeActionAffecteMemoire, s]));
|
||||
if act=ActionIncMemoire then formConfig.ListBoxOperations.items.Add(Format('%d%s', [iconeActionIncMemoire, s]));
|
||||
if act=ActionDecMemoire then formConfig.ListBoxOperations.items.Add(Format('%d%s', [iconeActionDecMemoire, s]));
|
||||
|
||||
itemHeight:=16;
|
||||
end;
|
||||
@@ -742,23 +758,27 @@ begin
|
||||
for i:=1 to Tablo_Action[index].NbCond do
|
||||
begin
|
||||
cond:=Tablo_Action[index].tabloCond[i].numcondition;
|
||||
s:=conditions[cond].nom;
|
||||
case cond of
|
||||
CondVrai : icone:=iconeVrai;
|
||||
CondFaux : icone:=iconeFaux;
|
||||
CondVitTrain : icone:=IconeVitTrain;
|
||||
CondPosAcc : icone:=IconeAccessoire;
|
||||
condHorl : icone:=IconeLanceHorl;
|
||||
condTrainSig : icone:=IconeDeclSignal;
|
||||
condFonction : icone:=IconeFonction;
|
||||
condBouton : icone:=IconeBouton;
|
||||
condMemoireEgal: icone:=IconeCondMemoireEgal;
|
||||
condMemoireSup: icone:=IconeCondMemoireSup;
|
||||
condMemoireInf: icone:=IconeCondMemoireinf;
|
||||
end;
|
||||
|
||||
items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
if (cond<0) or (cond>CondDetAct) then Affiche('Erreur structure conditions',clred)
|
||||
else
|
||||
begin
|
||||
s:=conditions[cond].nom;
|
||||
case cond of
|
||||
CondVrai : icone:=iconeVrai;
|
||||
CondFaux : icone:=iconeFaux;
|
||||
CondVitTrain : icone:=IconeVitTrain;
|
||||
CondPosAcc : icone:=IconeAccessoire;
|
||||
condHorl : icone:=IconeLanceHorl;
|
||||
condTrainSig : icone:=IconeDeclSignal;
|
||||
condFonction : icone:=IconeFonction;
|
||||
condBouton : icone:=IconeBouton;
|
||||
condMemoireEgal: icone:=IconeCondMemoireEgal;
|
||||
condMemoireSup: icone:=IconeCondMemoireSup;
|
||||
condMemoireInf: icone:=IconeCondMemoireinf;
|
||||
condDetAct: icone:=IconeDet;
|
||||
end;
|
||||
|
||||
items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
end;
|
||||
itemHeight:=16;
|
||||
end;
|
||||
if indexCond<>0 then itemIndex:=indexCond-1;
|
||||
@@ -801,6 +821,7 @@ begin
|
||||
EditTrainDecl.Hint:='Chaîne ASCII';
|
||||
|
||||
LabelTrain.visible:=true;
|
||||
labelTrain.Width:=105;
|
||||
LabelTrain.Caption:='Commande du périphérique';
|
||||
RichEditInf.Lines.Add('Déclenchement par chaîne ASCII depuis un périphérique COM/USB - Socket');
|
||||
|
||||
@@ -913,6 +934,8 @@ begin
|
||||
EditTrainDecl.Visible:=true;
|
||||
EdittrainDecl.Hint:='Train déclencheur unique';
|
||||
EditTrainDecl.Text:=Tablo_Action[index].trainDecl;
|
||||
labelTrain.Width:=105;
|
||||
labelTrain.caption:='Train déclencheur';
|
||||
EditAdr.Text:=IntToSTR(Tablo_Action[index].adresse);
|
||||
RichEditInf.Lines.Add('Déclenchement par démarrage d''un train');
|
||||
ImageIcone.Picture:=nil;
|
||||
@@ -924,8 +947,10 @@ begin
|
||||
begin
|
||||
LabelTrain.visible:=true;
|
||||
EditTrainDecl.Visible:=true;
|
||||
labelTrain.caption:='Train déclencheur';
|
||||
EdittrainDecl.Hint:='Train déclencheur unique';
|
||||
EditTrainDecl.Text:=Tablo_Action[index].trainDecl;
|
||||
labelTrain.Width:=105;
|
||||
EditAdr.Text:=IntToSTR(Tablo_Action[index].adresse);
|
||||
RichEditInf.Lines.Add('Déclenchement par arrêt d''un train');
|
||||
ImageIcone.Picture:=nil;
|
||||
@@ -969,8 +994,8 @@ begin
|
||||
DeclClavier :
|
||||
begin
|
||||
LabelAdresse.Visible:=true; // numéro de fonction
|
||||
LabelAdresse.caption:='Code de touche';
|
||||
EditAdr.Hint:='Code de touche';
|
||||
LabelAdresse.caption:='Code ASCII de la touche';
|
||||
EditAdr.Hint:='Code ASCII de la touche';
|
||||
ButtonFonction.Visible:=false;
|
||||
EditAdr.Text:=IntToSTR(tablo_action[index].adresse);
|
||||
EditAdr.Visible:=true;
|
||||
@@ -1002,6 +1027,12 @@ begin
|
||||
champ1.Visible:=true;
|
||||
champ2.Visible:=true;
|
||||
ChampTrain.Visible:=true;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
end;
|
||||
CondPosAcc :
|
||||
begin
|
||||
@@ -1019,6 +1050,12 @@ begin
|
||||
SpinEditEtat2.visible:=true;
|
||||
SpinEditEtat2.MinValue:=0;
|
||||
SpinEditEtat2.MaxValue:=2;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
end;
|
||||
condHorl :
|
||||
begin
|
||||
@@ -1041,6 +1078,12 @@ begin
|
||||
champTrain.Text:=Tablo_Action[index].tabloCond[indexCond].train;
|
||||
champ1.Visible:=true;
|
||||
champTrain.Visible:=true;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
end;
|
||||
condFonction :
|
||||
begin
|
||||
@@ -1050,7 +1093,14 @@ begin
|
||||
champ1.Visible:=true;
|
||||
ButtonVoirFonc.Visible:=true;
|
||||
Label2InfoFonction.Visible:=true;
|
||||
Label2InfoFonction.Caption:=NomFonction[Tablo_Action[index].tabloCond[indexCond].adresse];
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
Adr:=Tablo_Action[index].tabloCond[indexCond].adresse;
|
||||
if Adr<100 then Label2InfoFonction.Caption:=NomFonction[adr] else Label2InfoFonction.Caption:='';
|
||||
end;
|
||||
condBouton :
|
||||
begin
|
||||
@@ -1058,6 +1108,12 @@ begin
|
||||
champ1.editLabel.Caption:='Numéro de bouton TCO';
|
||||
champTrain.Text:=Tablo_Action[index].tabloCond[indexCond].train;
|
||||
champ1.Visible:=true;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
end;
|
||||
condMemoireEgal,CondMemoireInf,CondMemoireSup :
|
||||
begin
|
||||
@@ -1067,8 +1123,33 @@ begin
|
||||
champ2.Text:=intToSTR(Tablo_Action[index].tabloCond[indexCond].etat);
|
||||
Champ2.EditLabel.Caption:='Valeur';
|
||||
Champ2.Visible:=true;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
end;
|
||||
condDetAct :
|
||||
begin
|
||||
champ1.Text:=intToSTR(Tablo_Action[index].tabloCond[indexCond].adresse);
|
||||
champ1.editLabel.Caption:='Adresse';
|
||||
champ1.Visible:=true;
|
||||
champ2.Visible:=false;
|
||||
SpinEditHeure1.visible:=false;
|
||||
SpinEditHeure2.visible:=false;
|
||||
SpinEditMn1.visible:=false;
|
||||
SpinEditMn2.visible:=false;
|
||||
LabelHeureDebut.Visible:=false;
|
||||
LabelHeureFin.Visible:=false;
|
||||
ChampTrain.Visible:=true;
|
||||
ChampTrain.Text:=Tablo_Action[index].tabloCond[indexCond].train;
|
||||
SpinEditEtat2.Value:=Tablo_Action[index].tabloCond[indexCond].etat;
|
||||
SpinEditEtat2.visible:=true;
|
||||
SpinEditEtat2.hint:='Etat du détecteur/actionneur'+#13+
|
||||
'0=non activé'+#13+
|
||||
'1=activé';
|
||||
end;
|
||||
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -1083,16 +1164,17 @@ procedure TFormModifAction.FormActivate(Sender: TObject);
|
||||
var i : integer;
|
||||
s : string;
|
||||
begin
|
||||
|
||||
ComboBoxActions.Clear;
|
||||
for i:=1 to maxTablo_act do
|
||||
begin
|
||||
s:=encode_actions(i);
|
||||
if s<>'' then ComboBoxActions.Items.Add(s);
|
||||
end;
|
||||
|
||||
//ligneclicACt:=0;
|
||||
ComboBoxActions.ItemIndex:=ligneclicAct;
|
||||
LabelDecl.Caption:='Déclencheur de l''action n°'+intToSTR(ComboBoxactions.ItemIndex+1);
|
||||
|
||||
Aff_champs(ligneclicAct+1,ClicCond+1,ClicAction+1);
|
||||
|
||||
if OperationAffiche<>0 then
|
||||
@@ -1155,6 +1237,46 @@ begin
|
||||
ListBoxOperations.ItemIndex:=clicAction;
|
||||
end;
|
||||
|
||||
procedure supprime_condition;
|
||||
var i,indexSrc,idBD,NbCond,NumCond,NumOp : integer;
|
||||
s : string;
|
||||
begin
|
||||
indexSrc:=formModifaction.listboxConditions.ItemIndex;
|
||||
if (indexSrc<0) or (formModifaction.listboxConditions.Count=1) then exit;
|
||||
|
||||
idBD:=ligneClicAct+1;
|
||||
NbCond:=Tablo_Action[idBD].NbCond;
|
||||
if NbCond<1 then exit;
|
||||
|
||||
NumCond:=Tablo_Action[idBD].TabloCond[indexSrc+1].numcondition;
|
||||
// NumOp:=Tablo_Action[idBD].tabloOp[I [indexSrc+1].numcondition;
|
||||
|
||||
s:='Voulez vous supprimer la condition '+#13+conditions[NumCond].Nom+' ?';
|
||||
|
||||
if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit;
|
||||
|
||||
// supprimer
|
||||
FormModifAction.listboxConditions.Items.Delete(indexSrc);
|
||||
for i:=IndexSrc+1 to NbCond-1 do
|
||||
begin
|
||||
Tablo_Action[idBD].TabloCond[i]:=Tablo_Action[idBD].TabloCond[i+1];
|
||||
end;
|
||||
|
||||
dec(NbCond);
|
||||
Tablo_Action[idBD].NbCond:=NbCond;
|
||||
Setlength(Tablo_Action[idBD].tabloCond,NbCond+1);
|
||||
|
||||
Aff_champs(idBD,IndexSrc,1); //???
|
||||
exit;
|
||||
|
||||
// réencoder la ligne
|
||||
s:=encode_actions(idBD);
|
||||
// maj combobox
|
||||
FormModifAction.ComboBoxActions.Items[idBD-1]:=s;
|
||||
FormModifAction.ComboBoxActions.ItemIndex:=idbd-1;
|
||||
end;
|
||||
|
||||
|
||||
procedure supprime_operation;
|
||||
var i,indexSrc,idBD,NbOp,NumOp : integer;
|
||||
s : string;
|
||||
@@ -1197,12 +1319,12 @@ begin
|
||||
supprime_operation;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.SpinButton1UpClick(Sender: TObject);
|
||||
procedure monte_operation;
|
||||
var i,indexSrc,idBD,idOp,no : integer;
|
||||
top : Toperation;
|
||||
s : string;
|
||||
begin
|
||||
indexSrc:=listboxOperations.ItemIndex;
|
||||
indexSrc:=FormModifAction.listboxOperations.ItemIndex;
|
||||
if indexSrc<0 then exit;
|
||||
idBD:=ligneClicAct+1;
|
||||
idop:=indexSrc+1;
|
||||
@@ -1216,8 +1338,8 @@ begin
|
||||
// réencoder la ligne
|
||||
s:=encode_actions(idBD);
|
||||
// maj combobox
|
||||
ComboBoxActions.Items[idBD-1]:=s;
|
||||
ComboBoxActions.ItemIndex:=idbd-1;
|
||||
FormModifAction.ComboBoxActions.Items[idBD-1]:=s;
|
||||
FormModifAction.ComboBoxActions.ItemIndex:=idbd-1;
|
||||
|
||||
// maj opérations
|
||||
with FormModifAction.ListBoxOperations do
|
||||
@@ -1226,20 +1348,25 @@ begin
|
||||
for i:=1 to Tablo_Action[idBD].NbOperations do
|
||||
begin
|
||||
no:=Tablo_Action[idBD].tabloOp[i].numoperation;
|
||||
//items.Add(Format('%d%s', [no-1, operations[no].nom])); // valeur d'index de l'icone dans la ImagelistIcones
|
||||
affecte_operation(no,ListBoxOperations);
|
||||
s:=affecte_operation(no);
|
||||
FormModifAction.ListBoxOperations.Items.add(s);
|
||||
itemHeight:=16;
|
||||
end;
|
||||
ItemIndex:=indexSrc-1;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.SpinButton1DownClick(Sender: TObject);
|
||||
var no,i,indexSrc,idBD,idOp : integer;
|
||||
procedure TFormModifAction.SpinButton1UpClick(Sender: TObject);
|
||||
begin
|
||||
monte_operation;
|
||||
end;
|
||||
|
||||
Procedure Descend_operation;
|
||||
var no,i,indexSrc,idBD,idOp : integer;
|
||||
top : Toperation;
|
||||
s : string;
|
||||
begin
|
||||
indexSrc:=listboxOperations.ItemIndex;
|
||||
indexSrc:=FormModifAction.listboxOperations.ItemIndex;
|
||||
if indexSrc<0 then exit;
|
||||
idBD:=ligneClicAct+1;
|
||||
idop:=indexSrc+1;
|
||||
@@ -1254,8 +1381,8 @@ begin
|
||||
// réencoder la ligne
|
||||
s:=encode_actions(idBD);
|
||||
// maj combobox
|
||||
ComboBoxActions.Items[idBD-1]:=s;
|
||||
ComboBoxActions.ItemIndex:=idbd-1;
|
||||
FormModifAction.ComboBoxActions.Items[idBD-1]:=s;
|
||||
FormModifAction.ComboBoxActions.ItemIndex:=idbd-1;
|
||||
|
||||
// maj opérations
|
||||
with FormModifAction.ListBoxOperations do
|
||||
@@ -1264,7 +1391,8 @@ begin
|
||||
for i:=1 to Tablo_Action[idBD].NbOperations do
|
||||
begin
|
||||
no:=Tablo_Action[idBD].tabloOp[i].numoperation;
|
||||
affecte_operation(no,ListBoxOperations);
|
||||
s:=affecte_operation(no);
|
||||
FormModifAction.ListBoxOperations.Items.Add(s);
|
||||
itemHeight:=16;
|
||||
end;
|
||||
|
||||
@@ -1273,6 +1401,11 @@ begin
|
||||
Config_Modifie:=true;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.SpinButton1DownClick(Sender: TObject);
|
||||
begin
|
||||
Descend_operation;
|
||||
end;
|
||||
|
||||
procedure maj_combocactions(i : integer);
|
||||
var s : string;
|
||||
begin
|
||||
@@ -1536,7 +1669,7 @@ begin
|
||||
if not(Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].valide) then s:=s+sd;
|
||||
|
||||
listBoxOperations.Items[clicaction]:=s;
|
||||
formconfig.ListBoxOperations.items[clicaction]:=s; //encode_actions(ligneclicAct+1);
|
||||
if formconfig.ListBoxOperations.Count>=clicaction then formconfig.ListBoxOperations.items[clicaction]:=s; //encode_actions(ligneclicAct+1);
|
||||
|
||||
maj_combocactions(ligneclicAct);
|
||||
end;
|
||||
@@ -1615,12 +1748,14 @@ begin
|
||||
CondPosAcc : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].accessoire:=i;
|
||||
CondTrainSig : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
|
||||
CondFonction : begin
|
||||
if i>100 then i:=1;
|
||||
Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
|
||||
Label2InfoFonction.caption:=NomFonction[i];
|
||||
end;
|
||||
CondBouton : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
|
||||
CondMemoireEgal,CondMemoireInf,CondMemoireSup
|
||||
: Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
|
||||
CondDetAct : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
|
||||
end;
|
||||
maj_combocactions(ligneclicAct);
|
||||
end;
|
||||
@@ -1719,6 +1854,7 @@ begin
|
||||
cond:=Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].numcondition;
|
||||
case cond of
|
||||
CondVitTrain,CondTrainSig : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].train:=ChampTrain.Text;
|
||||
CondDetAct : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].train:=ChampTrain.Text;
|
||||
end;
|
||||
maj_combocactions(ligneclicAct);
|
||||
|
||||
@@ -1738,6 +1874,7 @@ begin
|
||||
cond:=Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].numcondition;
|
||||
case cond of
|
||||
CondPosAcc : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].etat:=i;
|
||||
CondDetAct : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].etat:=i;
|
||||
end;
|
||||
maj_combocactions(ligneclicAct);
|
||||
end;
|
||||
@@ -1776,8 +1913,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.ListBoxOperationsKeyDown(Sender: TObject;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
var nb : integer;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
var nb : integer;
|
||||
begin
|
||||
nb:=Tablo_Action[ligneclicAct+1].NbOperations;
|
||||
if (nb<1) or clicliste then exit;
|
||||
@@ -1848,4 +1985,89 @@ begin
|
||||
close;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.Supprimeropration1Click(Sender: TObject);
|
||||
begin
|
||||
supprime_operation;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.Monteropration1Click(Sender: TObject);
|
||||
begin
|
||||
monte_operation;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.Descendreopration1Click(Sender: TObject);
|
||||
begin
|
||||
descend_operation;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.ButtonAjCondClick(Sender: TObject);
|
||||
var indexSrc,idBD,NbOp,NbCond,i : integer;
|
||||
s : string;
|
||||
begin
|
||||
indexSrc:=listboxCondTot.ItemIndex;
|
||||
if indexSrc<0 then exit;
|
||||
|
||||
s:=ListBoxCondTot.Items[IndexSrc];
|
||||
i:=index_condition(s);
|
||||
if i=0 then exit;
|
||||
|
||||
idBD:=ligneClicAct+1;
|
||||
NbOp:=Tablo_Action[idBD].NbOperations;
|
||||
NbCond:=Tablo_Action[idBD].NbCond;
|
||||
inc(NbCond);
|
||||
Tablo_Action[idBD].NbCond:=NbCond;
|
||||
Setlength(Tablo_Action[idBD].TabloCond,NbCond+1);
|
||||
// le nouveau numéro de condition c'est l'index de la listboxCond
|
||||
Tablo_Action[idBD].tabloCond[NbCond].numcondition:=i;
|
||||
|
||||
Aff_champs(idbd,nbCond,Nbop);
|
||||
clicCond:=NbCond-1;
|
||||
ListBoxOperations.ItemIndex:=clicCond;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.SpeedButtonSupCondClick(Sender: TObject);
|
||||
begin
|
||||
supprime_condition;
|
||||
end;
|
||||
|
||||
procedure TFormModifAction.ListBoxConditionsKeyDown(Sender: TObject;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
var nb : integer;
|
||||
begin
|
||||
nb:=Tablo_Action[ligneclicAct+1].NbCond;
|
||||
if (nb<1) or clicliste then exit;
|
||||
if key=VK_delete then supprime_Condition;
|
||||
|
||||
if ord(Key)=VK_UP then
|
||||
begin
|
||||
begin
|
||||
if clicCond>0 then
|
||||
begin
|
||||
dec(clicCond);
|
||||
Aff_champs(ligneclicAct+1,ClicCond+1,ClicAction+1);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if ord(Key)=VK_DOWN then
|
||||
begin
|
||||
begin
|
||||
if clicCond<nb-1 then
|
||||
begin
|
||||
inc(clicCond);
|
||||
Aff_champs(ligneclicAct+1,ClicCond+1,ClicAction+1);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if (Shift = [ssCtrl]) and (key = ord('A')) then
|
||||
begin
|
||||
ListBoxConditions.SelectAll;
|
||||
end;
|
||||
|
||||
clicListe:=false;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
end.
|
||||
+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;
|
||||
|
||||
+37
-23
@@ -129,10 +129,10 @@ JauneCliRalen60LEB=19;
|
||||
|
||||
var
|
||||
FormPilote: TFormPilote;
|
||||
EtatFeuPilote : word;
|
||||
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
|
||||
@@ -150,29 +150,27 @@ procedure dessine_signal_pilote;
|
||||
var i,ancienEtat : integer;
|
||||
Vcanvas : Tcanvas;
|
||||
begin
|
||||
i:=Index_Signal(AdrPilote); // adresse du feu d'origine
|
||||
i:=Index_Signal(AdrPilote); // adresse du signal d'origine
|
||||
if i<>0 then
|
||||
|
||||
//ImagePilote.Picture.Bitmap:=FormPilote.ImagePilote.picture.bitmap;
|
||||
EtatFeuPilote:=Signaux[0].EtatSignal;
|
||||
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,EtatFeupilote,1,i);
|
||||
3 : dessine_signal3(Vcanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
4 : dessine_signal4(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
5 : dessine_signal5(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
7 : dessine_signal7(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
9 : dessine_signal9(VCanvas,0,0,1,1,EtatFeupilote,1,i);
|
||||
20 : dessine_signal20(VCanvas,0,0,1,1,EtatFeupilote,1,Signaux[i].adresse);
|
||||
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);
|
||||
5 : dessine_signal5(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
7 : dessine_signal7(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
9 : dessine_signal9(VCanvas,0,0,1,1,EtatSignalPilote,1,i);
|
||||
20 : dessine_signal20(VCanvas,0,0,1,1,EtatSignalPilote,1,Signaux[i].adresse);
|
||||
// indicateurs de direction
|
||||
12 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,2);
|
||||
13 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,3);
|
||||
14 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,4);
|
||||
15 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,5);
|
||||
16 : dessine_dirN(VCanvas,0,0,1,1,EtatFeupilote,1,6);
|
||||
12 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,2);
|
||||
13 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,3);
|
||||
14 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,4);
|
||||
15 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,5);
|
||||
16 : dessine_dirN(VCanvas,0,0,1,1,EtatSignalPilote,1,6);
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -223,7 +221,12 @@ procedure TFormPilote.RadioVertClick(Sender: TObject);
|
||||
begin
|
||||
Raz_combine;
|
||||
Signaux[0].AncienEtat:=Signaux[0].EtatSignal;
|
||||
if nation=1 then Maj_Etat_Signal(0,vert) else Maj_Etat_Signal(0,vertB) ;
|
||||
if nation=1 then
|
||||
begin
|
||||
if Signaux[index_Signal(AdrPilote)].checkFV then Maj_Etat_Signal(0,blanc)
|
||||
else Maj_Etat_Signal(0,vert);
|
||||
end
|
||||
else Maj_Etat_Signal(0,vertB) ;
|
||||
dessine_signal_pilote;
|
||||
end;
|
||||
|
||||
@@ -256,7 +259,12 @@ procedure TFormPilote.RadioRougeClick(Sender: TObject);
|
||||
begin
|
||||
Raz_combine;
|
||||
Signaux[0].AncienEtat:=Signaux[0].EtatSignal;
|
||||
Maj_Etat_Signal(0,semaphore);
|
||||
if nation=1 then
|
||||
begin
|
||||
if Signaux[index_Signal(AdrPilote)].checkFV then Maj_Etat_Signal(0,violet)
|
||||
else Maj_Etat_Signal(0,semaphore);
|
||||
end
|
||||
else Maj_Etat_Signal(0,vertB) ;
|
||||
dessine_signal_pilote;
|
||||
end;
|
||||
|
||||
@@ -426,7 +434,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 +506,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 +591,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
|
||||
|
||||
+432
-96
@@ -1,11 +1,11 @@
|
||||
object FormPrinc: TFormPrinc
|
||||
Left = 148
|
||||
Top = 246
|
||||
Left = 104
|
||||
Top = 192
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
BorderStyle = bsNone
|
||||
Caption = 'Signaux complexes'
|
||||
ClientHeight = 520
|
||||
ClientWidth = 976
|
||||
ClientHeight = 513
|
||||
ClientWidth = 1019
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
@@ -16,15 +16,14 @@ object FormPrinc: TFormPrinc
|
||||
Menu = MainMenu1
|
||||
OldCreateOrder = False
|
||||
Position = poDefault
|
||||
Scaled = False
|
||||
Visible = True
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnKeyDown = FormKeyDown
|
||||
OnResize = FormResize
|
||||
DesignSize = (
|
||||
976
|
||||
520)
|
||||
1019
|
||||
513)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object LabelTitre: TLabel
|
||||
@@ -41,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 = {
|
||||
@@ -231,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 = {
|
||||
@@ -399,7 +398,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image5feux: TImage
|
||||
Left = 696
|
||||
Left = 416
|
||||
Top = 0
|
||||
Width = 41
|
||||
Height = 89
|
||||
@@ -499,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 = {
|
||||
@@ -591,7 +590,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image3feux: TImage
|
||||
Left = 200
|
||||
Left = 256
|
||||
Top = 8
|
||||
Width = 33
|
||||
Height = 57
|
||||
@@ -672,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
|
||||
@@ -746,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 = {
|
||||
@@ -821,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 = {
|
||||
@@ -899,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 = {
|
||||
@@ -987,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 = {
|
||||
@@ -1085,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 = {
|
||||
@@ -1193,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 = {
|
||||
@@ -1432,7 +1431,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object LabelClock: TLabel
|
||||
Left = 884
|
||||
Left = 927
|
||||
Top = 0
|
||||
Width = 85
|
||||
Height = 22
|
||||
@@ -5041,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 = {
|
||||
@@ -5422,17 +5421,19 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 856
|
||||
Left = 717
|
||||
Top = 4
|
||||
Width = 89
|
||||
Height = 13
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Nombre de trains : '
|
||||
end
|
||||
object LabelNbTrains: TLabel
|
||||
Left = 960
|
||||
Left = 813
|
||||
Top = 2
|
||||
Width = 9
|
||||
Height = 19
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = '0'
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clBlack
|
||||
@@ -5441,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 = 498
|
||||
Width = 976
|
||||
Top = 491
|
||||
Width = 1019
|
||||
Height = 22
|
||||
Panels = <
|
||||
item
|
||||
@@ -5778,7 +6125,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = SBMarcheArretLocoClick
|
||||
end
|
||||
object BoutonRaf: TButton
|
||||
Left = 8
|
||||
Left = 4
|
||||
Top = 8
|
||||
Width = 89
|
||||
Height = 33
|
||||
@@ -5792,7 +6139,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = BoutonRafClick
|
||||
end
|
||||
object ButtonArretSimu: TButton
|
||||
Left = 192
|
||||
Left = 190
|
||||
Top = 88
|
||||
Width = 89
|
||||
Height = 33
|
||||
@@ -5803,7 +6150,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = ButtonArretSimuClick
|
||||
end
|
||||
object ButtonAffTCO: TButton
|
||||
Left = 104
|
||||
Left = 100
|
||||
Top = 48
|
||||
Width = 81
|
||||
Height = 33
|
||||
@@ -5812,7 +6159,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = ButtonAffTCOClick
|
||||
end
|
||||
object ButtonLanceCDM: TButton
|
||||
Left = 192
|
||||
Left = 190
|
||||
Top = 8
|
||||
Width = 89
|
||||
Height = 33
|
||||
@@ -5824,7 +6171,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = ButtonLanceCDMClick
|
||||
end
|
||||
object ButtonLocCV: TButton
|
||||
Left = 104
|
||||
Left = 100
|
||||
Top = 88
|
||||
Width = 81
|
||||
Height = 33
|
||||
@@ -5836,7 +6183,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = ButtonLocCVClick
|
||||
end
|
||||
object BoutonRazTrains: TButton
|
||||
Left = 192
|
||||
Left = 190
|
||||
Top = 48
|
||||
Width = 89
|
||||
Height = 33
|
||||
@@ -5851,7 +6198,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = BoutonRazTrainsClick
|
||||
end
|
||||
object ButtonAffAnalyseCDM: TButton
|
||||
Left = 8
|
||||
Left = 4
|
||||
Top = 48
|
||||
Width = 89
|
||||
Height = 33
|
||||
@@ -5864,7 +6211,7 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = ButtonAffAnalyseCDMClick
|
||||
end
|
||||
object ButtonCDM: TButton
|
||||
Left = 104
|
||||
Left = 100
|
||||
Top = 8
|
||||
Width = 81
|
||||
Height = 33
|
||||
@@ -5883,7 +6230,7 @@ object FormPrinc: TFormPrinc
|
||||
Text = '<1>'
|
||||
end
|
||||
object ButtonEnv: TButton
|
||||
Left = 9
|
||||
Left = 4
|
||||
Top = 88
|
||||
Width = 88
|
||||
Height = 33
|
||||
@@ -5895,8 +6242,8 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
end
|
||||
object GroupBoxCV: TGroupBox
|
||||
Left = 657
|
||||
Top = 72
|
||||
Left = 577
|
||||
Top = 144
|
||||
Width = 265
|
||||
Height = 81
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -5963,7 +6310,7 @@ object FormPrinc: TFormPrinc
|
||||
Top = 200
|
||||
Width = 393
|
||||
Height = 265
|
||||
ActivePage = TabSheetComp
|
||||
ActivePage = TabSheetTrains
|
||||
Anchors = []
|
||||
TabOrder = 5
|
||||
OnChange = PageControlChange
|
||||
@@ -5986,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'
|
||||
@@ -6059,7 +6424,7 @@ object FormPrinc: TFormPrinc
|
||||
Top = 8
|
||||
end
|
||||
object MainMenu1: TMainMenu
|
||||
Left = 536
|
||||
Left = 464
|
||||
object Afficher1: TMenuItem
|
||||
Caption = 'Afficher'
|
||||
object Affichagenormal1: TMenuItem
|
||||
@@ -6459,26 +6824,17 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
end
|
||||
end
|
||||
object ClientSocketCDM: TClientSocket
|
||||
Active = False
|
||||
ClientType = ctNonBlocking
|
||||
Port = 0
|
||||
OnConnect = ClientSocketCDMConnect
|
||||
OnDisconnect = ClientSocketCDMDisconnect
|
||||
OnRead = ClientSocketCDMRead
|
||||
OnError = ClientSocketCDMError
|
||||
Left = 296
|
||||
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
|
||||
@@ -6497,7 +6853,8 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object PopupMenuSignal: TPopupMenu
|
||||
OnPopup = PopupMenuSignalPopup
|
||||
Left = 784
|
||||
Left = 496
|
||||
Top = 32
|
||||
object Proprits1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's du signal'
|
||||
OnClick = Proprits1Click
|
||||
@@ -6507,36 +6864,9 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = Informationsdusignal1Click
|
||||
end
|
||||
end
|
||||
object ClientSocketCde1: TClientSocket
|
||||
Active = False
|
||||
ClientType = ctNonBlocking
|
||||
Port = 0
|
||||
OnConnect = ClientSocketCde1Connect
|
||||
OnRead = ClientSocketCde1Read
|
||||
OnError = ClientSocketCde1Error
|
||||
Left = 360
|
||||
end
|
||||
object ClientSocketCde2: TClientSocket
|
||||
Active = False
|
||||
ClientType = ctNonBlocking
|
||||
Port = 0
|
||||
OnConnect = ClientSocketCde2Connect
|
||||
OnRead = ClientSocketCde2Read
|
||||
OnError = ClientSocketCde2Error
|
||||
Left = 392
|
||||
end
|
||||
object ServerSocket: TServerSocket
|
||||
Active = False
|
||||
Port = 0
|
||||
ServerType = stNonBlocking
|
||||
OnAccept = ServerSocketAccept
|
||||
OnClientDisconnect = ServerSocketClientDisconnect
|
||||
OnClientRead = ServerSocketClientRead
|
||||
Left = 320
|
||||
end
|
||||
object PopupMenuTrains: TPopupMenu
|
||||
OnPopup = PopupMenuTrainsPopup
|
||||
Left = 816
|
||||
Left = 528
|
||||
object Propritsdutrain1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's du train'
|
||||
OnClick = Propritsdutrain1Click
|
||||
@@ -6551,7 +6881,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object PopupMenuCompteurs: TPopupMenu
|
||||
OnPopup = PopupMenuCompteursPopup
|
||||
Left = 848
|
||||
Left = 496
|
||||
object Propritsdescompteurs1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's des compteurs'
|
||||
OnClick = Propritsdescompteurs1Click
|
||||
@@ -6561,4 +6891,10 @@ object FormPrinc: TFormPrinc
|
||||
OnClick = Dtacherlecompteur1Click
|
||||
end
|
||||
end
|
||||
object Timer2: TTimer
|
||||
Interval = 50
|
||||
OnTimer = Timer2Timer
|
||||
Left = 688
|
||||
Top = 16
|
||||
end
|
||||
end
|
||||
+1323
-982
File diff suppressed because it is too large.
Load diff
+59
-10
@@ -85,13 +85,38 @@ uses UnitDebug,unitTCO,UnitConfig, UnitRouteTrains , Selection_Train;
|
||||
|
||||
// efface la route parcoursDet[] du TCO indexTCOcourant
|
||||
// si affecte_loco=true : affecte la loco rencontrée aux cantons
|
||||
procedure efface_route_tco(affecte_loco :boolean);
|
||||
var n,det1,nti,x,y,det2,i,indexAig : integer;
|
||||
procedure efface_route_tco; //(affecte_loco :boolean);
|
||||
var n,det1,nti,x,y,det2,i,indexAig,tcoC : integer;
|
||||
t : tequipement;
|
||||
trouve : boolean;
|
||||
begin
|
||||
if Nbretco<1 then exit;
|
||||
n:=parcoursdet[0].adresse;
|
||||
det1:=parcoursdet[1].adresse;
|
||||
|
||||
// trouver à quel TCO appartient le det1
|
||||
tcoC:=1;
|
||||
repeat
|
||||
y:=1;
|
||||
repeat
|
||||
x:=1;
|
||||
repeat
|
||||
trouve:=tco[tcoC,x,y].Adresse=det1;
|
||||
inc(x);
|
||||
until (x>NbreCellX[tcoC]) or trouve;
|
||||
inc(y);
|
||||
until (y>NbreCellY[tcoC]) or trouve;
|
||||
inc(tcoC);
|
||||
until (tcoC>NbreTCO) or trouve;
|
||||
|
||||
if trouve then dec(tcoC);
|
||||
|
||||
if trouve=false then
|
||||
begin
|
||||
Affiche('Erreur 57 : détecteur '+intToSTR(det1)+' trouvé dans aucun des TCO',clOrange);
|
||||
exit;
|
||||
end;
|
||||
|
||||
for i:=2 to n do
|
||||
begin
|
||||
det2:=parcoursdet[i].adresse;
|
||||
@@ -104,7 +129,7 @@ begin
|
||||
end;
|
||||
if t=det then
|
||||
begin
|
||||
zone_tco(indexTCOcourant,det1,det2,1,0,0,true,affecte_loco); // mode "aiguillages mis"
|
||||
zone_tco(TcoC,det1,det2,1,0,0,true); // mode "aiguillages mis"
|
||||
det1:=det2;
|
||||
end;
|
||||
end;
|
||||
@@ -148,14 +173,38 @@ end;
|
||||
|
||||
// Affiche sans effacer l'ancienne, la route du TCO indexTCOcourant du tableau ParcoursDet[]
|
||||
function Affiche_route_TCO : boolean ;
|
||||
var i,n,det1,det2,indexAig : integer;
|
||||
var i,n,det1,det2,indexAig,tcoC,x,y : integer;
|
||||
t :tequipement;
|
||||
ok : boolean;
|
||||
ok,trouve : boolean;
|
||||
begin
|
||||
if Nbretco<1 then begin result:=false;exit;end;
|
||||
n:=ParcoursDet[0].adresse;
|
||||
ok:=true;
|
||||
det1:=parcoursDet[1].adresse;
|
||||
|
||||
// trouver à quel TCO appartient le det1
|
||||
tcoC:=1;
|
||||
repeat
|
||||
y:=1;
|
||||
repeat
|
||||
x:=1;
|
||||
repeat
|
||||
trouve:=tco[tcoC,x,y].Adresse=det1;
|
||||
inc(x);
|
||||
until (x>NbreCellX[TcoC]) or trouve;
|
||||
inc(y);
|
||||
until (y>NbreCellY[TcoC]) or trouve;
|
||||
inc(tcoC);
|
||||
until (tcoC>NbreTCO) or trouve;
|
||||
|
||||
if trouve then dec(tcoC);
|
||||
|
||||
if trouve=false then
|
||||
begin
|
||||
Affiche('Erreur 57 : détecteur '+intToSTR(det1)+' trouvé dans aucun des TCO',clOrange);
|
||||
exit;
|
||||
end;
|
||||
|
||||
for i:=2 to n do
|
||||
begin
|
||||
t:=ParcoursDet[i].typ;
|
||||
@@ -170,7 +219,7 @@ begin
|
||||
begin
|
||||
det2:=ParcoursDet[i].adresse;
|
||||
// tco,det1,det2,train,adrTrain,Mode,posAig,affecte_loco
|
||||
ok:=zone_tco(indexTCOcourant,det1,det2,1,0,1,true,false) and ok; //posAig=true=teste les routes en récursif affecte_loco=n'affecte pas la loco
|
||||
ok:=zone_tco(tcoC,det1,det2,1,0,1,true) and ok; //posAig=true=teste les routes en récursif affecte_loco=n'affecte pas la loco
|
||||
det1:=det2;
|
||||
end;
|
||||
end;
|
||||
@@ -419,7 +468,7 @@ begin
|
||||
coulText:=clOrange;
|
||||
StyleText:=1; // gras
|
||||
FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(integer(StyleText))); //
|
||||
//FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(CoulText)); //ne pas utiliser à cause des styles D12 - permet d'afficher un texte en couleurs avec l'evt onDrawItem
|
||||
//FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(CoulText)); //ne pas utiliser à cause des styles D13 - permet d'afficher un texte en couleurs avec l'evt onDrawItem
|
||||
end
|
||||
end
|
||||
else
|
||||
@@ -428,7 +477,7 @@ begin
|
||||
coulText:=clYellow;
|
||||
StyleText:=0; // normal
|
||||
FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(integer(StyleText)));
|
||||
//FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(CoulText)); // ne pas utiliser à cause des styles D12 - permet d'afficher un texte en couleurs avec l'evt onDrawItem
|
||||
//FormRoute.ListBoxRoutes.Items.AddObject(s,pointer(CoulText)); // ne pas utiliser à cause des styles D13 - permet d'afficher un texte en couleurs avec l'evt onDrawItem
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -677,10 +726,10 @@ begin
|
||||
|
||||
if typ=det then
|
||||
begin // attention on ne gère que le TCO1
|
||||
Zone_TCO(indexTCOcourant,det1,det2,1,0,0,true,false); // faire true et positionner les aiguillages
|
||||
Zone_TCO(indexTCOcourant,det1,det2,1,0,0,true); // faire true et positionner les aiguillages
|
||||
det1:=det2;
|
||||
det2:=tabloroute[j,i].adresse;
|
||||
Zone_TCO(indexTCOcourant,det1,det2,1,0,1,false,false);
|
||||
Zone_TCO(indexTCOcourant,det1,det2,1,0,1,false);
|
||||
FormTCO[1].Caption:=intToSTR(i)+'/'+intToSTR(n)+' '+intToSTR(det1)+' '+intToSTR(det2)+ ' Arrêt par touche Echap';
|
||||
//Affiche(intToSTR(det1)+' '+intToSTR(det2),clyellow);
|
||||
end;
|
||||
|
||||
+15
-1
@@ -53,7 +53,7 @@ object FormRouteTrain: TFormRouteTrain
|
||||
Top = 8
|
||||
Width = 585
|
||||
Height = 177
|
||||
ActivePage = TabSheetRA
|
||||
ActivePage = TabSheetRM
|
||||
TabOrder = 1
|
||||
object TabSheetRA: TTabSheet
|
||||
Caption = 'Route affect'#233'e'
|
||||
@@ -210,6 +210,7 @@ object FormRouteTrain: TFormRouteTrain
|
||||
Font.Style = []
|
||||
ItemHeight = 13
|
||||
ParentFont = False
|
||||
PopupMenu = PopupMenuRoutes
|
||||
TabOrder = 1
|
||||
OnKeyDown = ListBoxRMKeyDown
|
||||
OnMouseDown = ListBoxRMMouseDown
|
||||
@@ -277,4 +278,17 @@ object FormRouteTrain: TFormRouteTrain
|
||||
TabOrder = 2
|
||||
OnClick = ButtonQuitteClick
|
||||
end
|
||||
object PopupMenuRoutes: TPopupMenu
|
||||
OnPopup = PopupMenuRoutesPopup
|
||||
Left = 764
|
||||
Top = 144
|
||||
object Copierroute1: TMenuItem
|
||||
Caption = 'Copier route'
|
||||
OnClick = Copierroute1Click
|
||||
end
|
||||
object Collerroute1: TMenuItem
|
||||
Caption = 'Coller route'
|
||||
OnClick = Collerroute1Click
|
||||
end
|
||||
end
|
||||
end
|
||||
+100
-8
@@ -9,7 +9,8 @@ uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, ExtCtrls, ComCtrls,
|
||||
|
||||
unitprinc,UnitConfig,unitTCO,UnitHorloge,unitFicheHoraire,UnitDebug,UnitRoute,selection_train;
|
||||
unitprinc,UnitConfig,unitTCO,UnitHorloge,unitFicheHoraire,UnitDebug,UnitRoute,selection_train,
|
||||
Menus;
|
||||
|
||||
|
||||
type
|
||||
@@ -39,6 +40,9 @@ type
|
||||
CheckBoxSens: TCheckBox;
|
||||
CheckBoxSIRA: TCheckBox;
|
||||
LabelID: TLabel;
|
||||
PopupMenuRoutes: TPopupMenu;
|
||||
Copierroute1: TMenuItem;
|
||||
Collerroute1: TMenuItem;
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure ButtonQuitteClick(Sender: TObject);
|
||||
procedure ComboBoxTrainsChange(Sender: TObject);
|
||||
@@ -63,6 +67,9 @@ type
|
||||
Shift: TShiftState);
|
||||
procedure CheckBoxSensClick(Sender: TObject);
|
||||
procedure CheckBoxSIRAClick(Sender: TObject);
|
||||
procedure Copierroute1Click(Sender: TObject);
|
||||
procedure Collerroute1Click(Sender: TObject);
|
||||
procedure PopupMenuRoutesPopup(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -73,6 +80,10 @@ type
|
||||
var
|
||||
FormRouteTrain: TFormRouteTrain;
|
||||
IrPref : integer;
|
||||
routeCopie : record
|
||||
IdTrain : integer;
|
||||
IdRoute : integer;
|
||||
end;
|
||||
|
||||
function aig_canton(idTrain,detect : integer) : integer;
|
||||
function demarre_index_train(indexTrain : integer) : boolean;
|
||||
@@ -86,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
|
||||
@@ -149,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;
|
||||
|
||||
@@ -281,6 +290,7 @@ begin
|
||||
if idtrain<1 then exit;
|
||||
formRouteTrain.comboBoxTrains.Clear;
|
||||
formRouteTrain.ListBoxRM.Clear;
|
||||
|
||||
for i:=1 to NTrains do
|
||||
begin
|
||||
s:=trains[i].nom_train;
|
||||
@@ -298,9 +308,11 @@ begin
|
||||
formRouteTrain.comboBoxTrains.ItemIndex:=indexTrainFR-1;
|
||||
|
||||
Maj_icone_train(FormRouteTrain.ImageTrainR,idTrain,clWhite);
|
||||
|
||||
with formRouteTrain do
|
||||
begin
|
||||
TabSheetRM.Enabled:=false;
|
||||
// ahhhh TabSheetRM.Enabled:=false;
|
||||
EditNomRoute.Text:='';
|
||||
ListBoxRA.Clear;
|
||||
|
||||
if trains[idtrain].route[0].adresse<>0 then // route affectée au train
|
||||
@@ -341,10 +353,13 @@ begin
|
||||
if Canvas.TextWidth(s)+30>PixelLength then PixelLength:=Canvas.TextWidth(s)+30;
|
||||
ListBoxRM.Items.Add(s);
|
||||
end;
|
||||
EditNomRoute.Text:=trains[idTrain].NomRouteCour;
|
||||
EditNomRoute.Text:=trains[idTrain].NomRoute[j];
|
||||
SendMessage(ListBoxRM.Handle,LB_SETHORIZONTALEXTENT,PixelLength,0); // crée la HorzScroll baz
|
||||
end
|
||||
else LabelRM.Caption:='Pas de route mémorisée au train '+trains[idtrain].nom_train;
|
||||
else
|
||||
begin
|
||||
LabelRM.Caption:='Pas de route mémorisée au train '+trains[idtrain].nom_train;
|
||||
end;
|
||||
|
||||
if (trains[idTrain].route[0].adresse=0) and (trains[idTrain].routePref[1][0].adresse=0) then
|
||||
begin
|
||||
@@ -785,6 +800,8 @@ begin
|
||||
ComboBoxTrains.ItemIndex:=0;
|
||||
IndexTrainFR:=1;
|
||||
maj_infos(indexTrainFR);
|
||||
routecopie.IdTrain:=0;
|
||||
routecopie.IdRoute:=0;
|
||||
end;
|
||||
|
||||
// choisir cette route mémorisée
|
||||
@@ -931,6 +948,7 @@ end;
|
||||
procedure TFormRouteTrain.ListBoxRMMouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
//Affiche('ListBoxRMMouseDown',clred);
|
||||
NumRoute:=1;
|
||||
IrPref:=ListBoxRM.ItemIndex+1;
|
||||
if irPref<1 then exit;
|
||||
@@ -949,6 +967,7 @@ end;
|
||||
procedure TFormRouteTrain.ListBoxRAMouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
//Affiche('ListBoxRAMouseDown',clred);
|
||||
// si le train de la route est en roulage, ne pas afficher la route car
|
||||
// sinon les index des trains passent à 0 dans les cantons par la fonction zone_tco
|
||||
if trains[indexTrainFR].roulage=0 then affiche_route_tco;
|
||||
@@ -994,7 +1013,7 @@ begin
|
||||
begin
|
||||
dec(IrPref);
|
||||
end
|
||||
else
|
||||
else
|
||||
if (ord(Key)=VK_DOWN) and (IrPref<ListBoxRM.Count) then
|
||||
begin
|
||||
inc(IrPref);
|
||||
@@ -1029,5 +1048,78 @@ begin
|
||||
trains[indexTrainFR].route[0].talon:=checkBoxSens.checked;
|
||||
end;
|
||||
|
||||
procedure TFormRouteTrain.Copierroute1Click(Sender: TObject);
|
||||
var i : integer;
|
||||
begin
|
||||
i:=ListBoxRM.ItemIndex;
|
||||
if i<0 then exit;
|
||||
RouteCopie.IdTrain:=ComboBoxTrains.ItemIndex+1;
|
||||
RouteCopie.IdRoute:=i+1;
|
||||
//Affiche('IdTrain='+intToSTR(ROuteCopie.IdTrain)+' IdRoute='+intToSTR(ROuteCopie.IdROute),clYellow);
|
||||
end;
|
||||
|
||||
procedure TFormRouteTrain.Collerroute1Click(Sender: TObject);
|
||||
var i,n,id,IdTrainDest,nDest : integer;
|
||||
ok : boolean;
|
||||
s : string;
|
||||
begin
|
||||
IdTrainDest:=ComboBoxTrains.ItemIndex+1;
|
||||
nDest:=Trains[IdTrainDest].routePref[0,0].adresse;
|
||||
if nDest>30 then exit;
|
||||
|
||||
// vérifier si une des routes du train de destination a la même id que la route qu'on veut coller
|
||||
ok:=true;
|
||||
n:=Trains[RouteCopie.IdTrain].routePref[0,0].adresse; // nombre de routes du train copié (route source)
|
||||
id:=Trains[RouteCopie.IdTrain].routePref[RouteCopie.IdRoute,0].pos; // ID de la route du train copié
|
||||
IdTrainDest:=ComboBoxTrains.ItemIndex+1;
|
||||
i:=1;
|
||||
while (i<=n) and ok do
|
||||
begin
|
||||
ok:=Trains[IdTrainDest].routePref[i,0].pos<>Id; // Id de la route i du train de destination
|
||||
inc(i);
|
||||
end;
|
||||
if ok then CollerRoute1.Enabled:=true
|
||||
else
|
||||
begin
|
||||
LabelRoute.caption:='La route '+intToSTR(i-1)+' est identique à la route copiée';
|
||||
exit;
|
||||
end;
|
||||
|
||||
inc(nDest);
|
||||
// copier la route
|
||||
Trains[IdTrainDest].routePref[0,0].adresse:=ndest;
|
||||
Trains[IdTrainDest].routePref[nDest]:=Trains[RouteCopie.IdTrain].RoutePref[RouteCopie.IdRoute];
|
||||
// et le nom de la route
|
||||
s:=Trains[RouteCopie.IdTrain].NomRoute[RouteCopie.IdRoute];
|
||||
Trains[IdTrainDest].NomRoute[nDest]:=s;
|
||||
EditNomRoute.Text:=s;
|
||||
maj_infos(IdTrainDest);
|
||||
end;
|
||||
|
||||
procedure TFormRouteTrain.PopupMenuRoutesPopup(Sender: TObject);
|
||||
begin
|
||||
|
||||
if RouteCopie.IdTrain=0 then
|
||||
begin
|
||||
CopierRoute1.Enabled:=false;
|
||||
CollerRoute1.Enabled:=false;
|
||||
end;
|
||||
|
||||
// valider menu copier
|
||||
if (ListBoxRM.ItemIndex>=0) then
|
||||
begin
|
||||
|
||||
CopierRoute1.Enabled:=true;
|
||||
end;
|
||||
|
||||
// valider menu coller
|
||||
if (RouteCopie.IdTrain<>0) then
|
||||
begin
|
||||
CollerRoute1.Enabled:=true;
|
||||
end;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
+9
-2
@@ -1,6 +1,6 @@
|
||||
object FormTCO: TFormTCO
|
||||
Left = 186
|
||||
Top = 112
|
||||
Left = 173
|
||||
Top = 188
|
||||
Width = 1013
|
||||
Height = 607
|
||||
VertScrollBar.Visible = False
|
||||
@@ -1668,6 +1668,13 @@ object FormTCO: TFormTCO
|
||||
object N12: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuSuppTCO: TMenuItem
|
||||
Caption = 'Supprimer le TCO'
|
||||
OnClick = MenuSuppTCOClick
|
||||
end
|
||||
object N14: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object ConfigurationduTCO1: TMenuItem
|
||||
Caption = 'Configuration du TCO'
|
||||
OnClick = ConfigurationduTCO1Click
|
||||
|
||||
+277
-104
@@ -172,6 +172,8 @@ type
|
||||
N12: TMenuItem;
|
||||
LabelPM: TLabel;
|
||||
Afficherlecompteurdevitessedutrain1: TMenuItem;
|
||||
MenuSuppTCO: TMenuItem;
|
||||
N14: TMenuItem;
|
||||
//TimerTCO: TTimer;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
@@ -421,6 +423,7 @@ type
|
||||
procedure Modedplacement1Click(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure Afficherlecompteurdevitessedutrain1Click(Sender: TObject);
|
||||
procedure MenuSuppTCOClick(Sender: TObject);
|
||||
public
|
||||
{ Déclarations publiques }
|
||||
end;
|
||||
@@ -457,6 +460,7 @@ const
|
||||
maxUndo=30;
|
||||
ZoomMax=(8191 div MaxCellX)-1; // pour ne pas dépasser un canvas de 8191 pixel maxi
|
||||
ZoomMin=15;
|
||||
NomFichier_ch='Nom_fichier';
|
||||
ClFond_ch='CoulFond';
|
||||
clVoies_ch='CoulVoies';
|
||||
clAllume_ch='CoulAllume';
|
||||
@@ -629,7 +633,7 @@ var
|
||||
route : array[1..500] of record x,y : integer;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// tracé en mode dessin
|
||||
traceXY : Array[1..50] of record x,y : integer; // en coordonnées grille
|
||||
@@ -666,8 +670,8 @@ var
|
||||
procedure calcul_reduction(Var frx,fry : single;DimDestX,DimDestY : integer);
|
||||
procedure calcul_cellules(indextco : integer);
|
||||
procedure sauve_fichiers_tco;
|
||||
function zone_tco(indexTCO,det1,det2,train,adrTrain,mode: integer;posAig,affecte_loco : boolean) : boolean; overload;
|
||||
function zone_tco(indexTCO,adr : integer;typEl : tequipement;Sens,mode: integer;posAig,affecte_loco : boolean) : boolean; overload;
|
||||
function zone_tco(indexTCO,det1,det2,train,adrTrain,mode: integer;posAig : boolean) : boolean; overload;
|
||||
function zone_tco(indexTCO,adr : integer;typEl : tequipement;Sens,mode: integer;posAig : boolean) : boolean; overload;
|
||||
procedure _entoure_cell_clic(indexTCO: integer);
|
||||
procedure Affiche_TCO(indexTCO : integer) ;
|
||||
procedure affiche_cellule(indexTCO,x,y : integer);
|
||||
@@ -715,7 +719,10 @@ 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;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -731,7 +738,7 @@ begin
|
||||
if c<>0 then
|
||||
begin
|
||||
//Affiche('Suppression canton '+intToSTR(c),clorange);
|
||||
for i:=c to ncantons-1 do // supprime le canton c de la liste
|
||||
for i:=c to ncantons-1 do // supprime le canton c de la liste des cantons
|
||||
canton[i]:=canton[i+1];
|
||||
dec(ncantons);
|
||||
end;
|
||||
@@ -823,6 +830,8 @@ begin
|
||||
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
|
||||
function trouve_canton(el1 : integer;tel1 : tequipement;el2 : integer;tel2 : tequipement) : integer;
|
||||
var i,eLc1,eLc2 : integer;
|
||||
teLc1,teLc2 : tequipement;
|
||||
@@ -834,8 +843,10 @@ begin
|
||||
eLc1:=canton[i].el1; teLc1:=canton[i].typ1;
|
||||
eLc2:=canton[i].el2; teLc2:=canton[i].typ2;
|
||||
|
||||
// il faut que les deux éléments soient présents
|
||||
trouve:=((elc1=el1) and (teLc1=tel1) and (elc2=el2) and (teLc2=tel2)) or
|
||||
((elc2=el1) and (teLc2=tel1) and (elc1=el2) and (teLc1=tel2)) ;
|
||||
|
||||
inc(i);
|
||||
until (trouve) or (i>nCantons);
|
||||
if trouve then result:=i-1;
|
||||
@@ -1512,14 +1523,14 @@ begin
|
||||
|
||||
if horz then
|
||||
begin
|
||||
zone_tco(t,i,SensTCO_O,0,0,11,false,false); // demande éléments contigus à gauche (5) du canton, résultats dans var globales xCanton et tel1
|
||||
zone_tco(t,i,SensTCO_O,0,0,11,false); // demande éléments contigus à gauche (5) du canton, résultats dans var globales xCanton et tel1
|
||||
if xCanton=0 then tel1:=buttoir;
|
||||
canton[i].el1:=xCanton;
|
||||
canton[i].typ1:=tel1;
|
||||
canton[i].SensEl1:=SensGauche;
|
||||
if tel1=det then detecteur[xCanton].canton1:=canton[i].numero;
|
||||
|
||||
zone_tco(t,i,SensTCO_E,0,0,11,false,false); // demande éléments contigus à droite (6) du canton, résultats dans var globales xCanton et tel1
|
||||
zone_tco(t,i,SensTCO_E,0,0,11,false); // demande éléments contigus à droite (6) du canton, résultats dans var globales xCanton et tel1
|
||||
if xCanton=0 then tel1:=buttoir;
|
||||
canton[i].el2:=xCanton;
|
||||
canton[i].typ2:=tel1;
|
||||
@@ -1529,14 +1540,14 @@ begin
|
||||
else
|
||||
begin
|
||||
// canton vertical
|
||||
zone_tco(t,i,SensTCO_N,0,0,11,false,false); // demande éléments contigus en haut (7) du canton, résultats dans var globales xCanton et tel1
|
||||
zone_tco(t,i,SensTCO_N,0,0,11,false); // demande éléments contigus en haut (7) du canton, résultats dans var globales xCanton et tel1
|
||||
if xCanton=0 then tel1:=buttoir;
|
||||
canton[i].el1:=xCanton;
|
||||
canton[i].typ1:=tel1;
|
||||
canton[i].SensEl1:=SensHaut;
|
||||
if tel1=det then detecteur[xCanton].canton1:=canton[i].numero;
|
||||
|
||||
zone_tco(t,i,SensTCO_S,0,0,11,false,false); // demande éléments contigus en bas (8) du canton, résultats dans var globales xCanton et tel1
|
||||
zone_tco(t,i,SensTCO_S,0,0,11,false); // demande éléments contigus en bas (8) du canton, résultats dans var globales xCanton et tel1
|
||||
if xCanton=0 then tel1:=buttoir;
|
||||
canton[i].el2:=xCanton;
|
||||
canton[i].typ2:=tel1;
|
||||
@@ -1641,22 +1652,22 @@ begin
|
||||
// croisements ou tjd
|
||||
case Bim of
|
||||
21 : begin
|
||||
zone_tco(t,adr1,typEl,SensTCO_E,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_E,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivE:=xCanton;
|
||||
tco[t,x,y].TypeE:=tel1;
|
||||
if deb then Affiche('E='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_SO,13,false,false); // chercher 1er élément SO
|
||||
zone_tco(t,adr1,typEl,SensTCO_SO,13,false); // chercher 1er élément SO
|
||||
tco[t,x,y].SuivSO:=xCanton;
|
||||
tco[t,x,y].TypeSO:=tel1;
|
||||
if deb then Affiche('SO='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_O,13,false,false); // élément à gauche
|
||||
zone_tco(t,adr1,typEl,SensTCO_O,13,false); // élément à gauche
|
||||
tco[t,x,y].SuivO:=xCanton;
|
||||
tco[t,x,y].TypeO:=tel1;
|
||||
if deb then Affiche('O='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_NE,13,false,false); // chercher 1er élément NE
|
||||
zone_tco(t,adr1,typEl,SensTCO_NE,13,false); // chercher 1er élément NE
|
||||
tco[t,x,y].SuivNE:=xCanton;
|
||||
tco[t,x,y].TypeNE:=tel1;
|
||||
if deb then Affiche('NE='+intToSTR(xcanton),clLime);
|
||||
@@ -1689,22 +1700,22 @@ begin
|
||||
end;
|
||||
|
||||
22 : begin
|
||||
zone_tco(t,adr1,typEl,SensTCO_E,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_E,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivE:=xCanton;
|
||||
tco[t,x,y].TypeE:=tel1;
|
||||
if deb then Affiche('E='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_SE,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_SE,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivSE:=xCanton;
|
||||
tco[t,x,y].TypeSE:=tel1;
|
||||
if deb then Affiche('SE='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_O,13,false,false); // élément à gauche
|
||||
zone_tco(t,adr1,typEl,SensTCO_O,13,false); // élément à gauche
|
||||
tco[t,x,y].SuivO:=xCanton;
|
||||
tco[t,x,y].TypeO:=tel1;
|
||||
if deb then Affiche('O='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_NO,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_NO,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivNO:=xCanton;
|
||||
tco[t,x,y].TypeNO:=tel1;
|
||||
if deb then Affiche('NO='+intToSTR(xcanton),clLime);
|
||||
@@ -1735,22 +1746,22 @@ begin
|
||||
end;
|
||||
end;
|
||||
23 : begin
|
||||
zone_tco(t,adr1,typEl,SensTCO_N,13,false,false); // haut
|
||||
zone_tco(t,adr1,typEl,SensTCO_N,13,false); // haut
|
||||
tco[t,x,y].SuivN:=xCanton;
|
||||
tco[t,x,y].TypeN:=tel1;
|
||||
if deb then Affiche('N='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_S,13,false,false); // élément bas
|
||||
zone_tco(t,adr1,typEl,SensTCO_S,13,false); // élément bas
|
||||
tco[t,x,y].SuivS:=xCanton;
|
||||
tco[t,x,y].TypeS:=tel1;
|
||||
if deb then Affiche('S='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_NE,13,false,false);
|
||||
zone_tco(t,adr1,typEl,SensTCO_NE,13,false);
|
||||
tco[t,x,y].SuivNE:=xCanton;
|
||||
tco[t,x,y].TypeNE:=tel1;
|
||||
if deb then Affiche('NE='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_SO,13,false,false);
|
||||
zone_tco(t,adr1,typEl,SensTCO_SO,13,false);
|
||||
tco[t,x,y].SuivSO:=xCanton;
|
||||
tco[t,x,y].TypeSO:=tel1;
|
||||
if deb then Affiche('SO='+intToSTR(xcanton),clLime);
|
||||
@@ -1782,22 +1793,22 @@ begin
|
||||
end;
|
||||
|
||||
25 : begin
|
||||
zone_tco(t,adr1,typEl,SensTCO_N,13,false,false); // haut
|
||||
zone_tco(t,adr1,typEl,SensTCO_N,13,false); // haut
|
||||
tco[t,x,y].SuivN:=xCanton;
|
||||
tco[t,x,y].TypeN:=tel1;
|
||||
if deb then Affiche('N='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_S,13,false,false); // élément bas
|
||||
zone_tco(t,adr1,typEl,SensTCO_S,13,false); // élément bas
|
||||
tco[t,x,y].SuivS:=xCanton;
|
||||
tco[t,x,y].TypeS:=tel1;
|
||||
if deb then Affiche('S='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_NO,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_NO,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivNO:=xCanton;
|
||||
tco[t,x,y].TypeNO:=tel1;
|
||||
if deb then Affiche('NO='+intToSTR(xcanton),clLime);
|
||||
|
||||
zone_tco(t,adr1,typEl,SensTCO_SE,13,false,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
zone_tco(t,adr1,typEl,SensTCO_SE,13,false); // chercher 1er élément à droite - xcanton Tel1
|
||||
tco[t,x,y].SuivSE:=xCanton;
|
||||
tco[t,x,y].TypeSE:=tel1;
|
||||
if deb then Affiche('SE='+intToSTR(xcanton),clLime);
|
||||
@@ -1949,6 +1960,15 @@ begin
|
||||
repeat
|
||||
s:=lit_ligne;
|
||||
|
||||
sa:=uppercase(NomFichier_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i<>0 then
|
||||
begin
|
||||
inc(nv);
|
||||
delete(s,i,length(sa)); // nom stocké
|
||||
s:='';
|
||||
end;
|
||||
|
||||
sa:=uppercase(ClFond_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i<>0 then
|
||||
@@ -2484,7 +2504,7 @@ begin
|
||||
closefile(fichier);
|
||||
renseigne_tous_cantons;
|
||||
trier_cantons;
|
||||
|
||||
//affecte_trains_config;
|
||||
|
||||
sauve_styles_tco(indexTCO); // sauver le jeu sombre
|
||||
if jeucouleurs=2 then jeu_clair(indexTCO);
|
||||
@@ -2519,6 +2539,7 @@ begin
|
||||
AssignFile(fichier,nomfichierTCO[i]);
|
||||
rewrite(fichier);
|
||||
Writeln(fichier,'/ Définitions TCO version '+versionSC+sousversion);
|
||||
writeln(fichier,NomFichier_ch+'=',NomFichierTCO[i]);
|
||||
writeln(fichier,ZoomInit_ch+'=',ZoomInit[i]);
|
||||
writeln(fichier,XYInit_ch+'=',XInit[i],',',Yinit[i]);
|
||||
Writeln(fichier,clFond_ch+'='+IntToHex(clfond[i],6));
|
||||
@@ -4452,7 +4473,7 @@ begin
|
||||
Brush.Color:=Couleur;
|
||||
pen.color:=Couleur;
|
||||
Pen.Mode:=pmCopy;
|
||||
|
||||
|
||||
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
|
||||
MoveTo(x0,y0+hauteurCell[indexTCO]);lineto(xc,yc);
|
||||
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
|
||||
@@ -6261,7 +6282,7 @@ begin
|
||||
Pen.Width:=1;
|
||||
Brush.Color:=clvoies[indexTCO];
|
||||
pen.color:=clvoies[indexTCO];
|
||||
|
||||
|
||||
horizontale;
|
||||
diagonale;
|
||||
|
||||
@@ -6375,8 +6396,13 @@ begin
|
||||
position1:=aiguillage[index1].position;
|
||||
sHG:=TCO[indexTCO,x,y].suivHG;tHG:=TCO[indexTCO,x,y].typHG;
|
||||
sBD:=TCO[indexTCO,x,y].suivBD;tBD:=TCO[indexTCO,x,y].typBD;
|
||||
canvas.pen.color:=clfond[indexTCO];
|
||||
canvas.pen.Width:=epaisseur div 2;
|
||||
|
||||
with canvas do
|
||||
begin
|
||||
pen.color:=fond;
|
||||
Brush.Color:=fond;
|
||||
pen.Width:=epaisseur div 2;
|
||||
end;
|
||||
if etatTJD=4 then
|
||||
begin
|
||||
adr2:=aiguillage[index1].DDevie; // homologue
|
||||
@@ -6425,7 +6451,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
if etatTJD=2 then
|
||||
begin
|
||||
if position1=const_droit then
|
||||
@@ -6481,6 +6507,8 @@ var pont,yp,x1,y1,x2,y2,x3,y3,x4,y4,x0,y0,xc,yc,xf,yf,trajet,ep,position1,positi
|
||||
end;
|
||||
end;
|
||||
|
||||
// si dessin=1 dessine en épaisseur de voie
|
||||
// si dessin=2 dessine en épaisseur de trajet
|
||||
procedure TJDbas(dessin :integer); // morceau courbe bas
|
||||
begin
|
||||
x1:=x0-LargeurCell[indexTCO]-(LargeurCell[indexTCO] div 3);y1:=yc;
|
||||
@@ -6547,6 +6575,7 @@ begin
|
||||
|
||||
Brush.Color:=clvoies[indexTCO];
|
||||
pen.color:=clvoies[indexTCO];
|
||||
|
||||
pen.width:=epaisseur;
|
||||
|
||||
diagonale;
|
||||
@@ -6651,14 +6680,19 @@ begin
|
||||
position1:=aiguillage[index1].position;
|
||||
sHG:=TCO[indexTCO,x,y].suivHG;tHG:=TCO[indexTCO,x,y].typHG;
|
||||
sBD:=TCO[indexTCO,x,y].suivBD;tBD:=TCO[indexTCO,x,y].typBD;
|
||||
canvas.pen.color:=clfond[indexTCO];
|
||||
canvas.pen.Width:=epaisseur div 2;
|
||||
//canvas.pen.color:=clfond[indexTCO];
|
||||
with canvas do
|
||||
begin
|
||||
pen.color:=fond;
|
||||
Brush.Color:=fond;
|
||||
pen.Width:=epaisseur div 2;
|
||||
end;
|
||||
if etatTJD=4 then
|
||||
begin
|
||||
adr2:=aiguillage[index1].DDevie; // homologue
|
||||
Index2:=Index_aig(adr2);
|
||||
position2:=aiguillage[index2].position;
|
||||
|
||||
// canvas.pen.color:=clBlack;
|
||||
if (position1=const_devie) and (position2=const_devie) then
|
||||
begin
|
||||
with canvas do begin
|
||||
@@ -6939,8 +6973,15 @@ begin
|
||||
position1:=aiguillage[index1].position;
|
||||
sHG:=TCO[indexTCO,x,y].suivHG;tHG:=TCO[indexTCO,x,y].typHG;
|
||||
sBD:=TCO[indexTCO,x,y].suivBD;tBD:=TCO[indexTCO,x,y].typBD;
|
||||
canvas.pen.color:=clfond[indexTCO];;
|
||||
canvas.pen.Width:=epaisseur div 2;
|
||||
//canvas.pen.color:=clfond[indexTCO];;
|
||||
//canvas.
|
||||
with canvas do
|
||||
begin
|
||||
pen.color:=fond;
|
||||
Brush.Color:=fond;
|
||||
pen.Width:=epaisseur div 2;
|
||||
end;
|
||||
|
||||
if etatTJD=4 then
|
||||
begin
|
||||
adr2:=aiguillage[index1].DDevie; // homologue
|
||||
@@ -7512,8 +7553,14 @@ begin
|
||||
position1:=aiguillage[index1].position;
|
||||
sHG:=TCO[indexTCO,x,y].suivHG;tHG:=TCO[indexTCO,x,y].typHG;
|
||||
sBD:=TCO[indexTCO,x,y].suivBD;tBD:=TCO[indexTCO,x,y].typBD;
|
||||
canvas.pen.color:=clfond[indexTCO];
|
||||
canvas.pen.Width:=epaisseur div 2;
|
||||
//canvas.pen.color:=clfond[indexTCO];
|
||||
//canvas.pen.Width:=epaisseur div 2;
|
||||
with canvas do
|
||||
begin
|
||||
pen.color:=fond;
|
||||
Brush.Color:=fond;
|
||||
pen.Width:=epaisseur div 2;
|
||||
end;
|
||||
if etatTJD=4 then
|
||||
begin
|
||||
adr2:=aiguillage[index1].DDevie; // homologue
|
||||
@@ -10239,7 +10286,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;
|
||||
@@ -10298,11 +10346,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,
|
||||
@@ -10416,6 +10465,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);
|
||||
@@ -11163,8 +11213,8 @@ begin
|
||||
if orientation=2 then //90°G
|
||||
begin
|
||||
if aspect=20 then begin x0:=0; y0:=0;end;
|
||||
if aspect=9 then begin x0:=round(10*frX); y0:=hauteurCell[indexTCO]-round(tailleX*frY);end;
|
||||
if aspect=7 then begin x0:=round(10*frX); y0:=hauteurCell[indexTCO]-round(tailleX*frY);end;
|
||||
if aspect=9 then begin x0:=round(10*frX); y0:=round(4*frY);end;
|
||||
if aspect=7 then begin x0:=round(10*frX); y0:=round(4*frY);end;
|
||||
if aspect=5 then begin x0:=round(10*frX); y0:=round((tailleX/2)*frY);end;
|
||||
if aspect=4 then begin x0:=round(10*frX); y0:=round((tailleX/2)*frY);end;
|
||||
if aspect=3 then begin x0:=round(8*frX); y0:=round((tailleX/2)*frY);end;
|
||||
@@ -11208,7 +11258,7 @@ begin
|
||||
inverse_image(FormTCO[indexTCO].ImageTemp,ImageFeu);
|
||||
// copie avec mise à l'échelle de l'image du signal
|
||||
TransparentBlt(canvasDest.Handle,x0,y0,round(TailleX*frX),round(TailleY*frY),
|
||||
FormTCO[indexTCO].ImageTemp.Canvas.Handle,0,0,TailleX,TailleY,clBlue);
|
||||
FormTCO[indexTCO].ImageTemp.Canvas.Handle,0,0,TailleX,TailleY,clBlue);
|
||||
end
|
||||
else
|
||||
// copie avec mise à l'échelle de l'image du signal
|
||||
@@ -11325,10 +11375,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
|
||||
@@ -11381,8 +11432,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
|
||||
@@ -11431,16 +11481,44 @@ begin
|
||||
//Brush.Style:=Bsclear;
|
||||
|
||||
xt:=0;yt:=0;
|
||||
if Bimage=2 then begin xt:=LargeurCell[indexTCO] div 2;yt:=1;end;
|
||||
if Bimage=3 then begin xt:=3;yt:=hauteurCell[indexTCO]-round(18*fryGlob[indexTCO]);end;
|
||||
if Bimage=4 then begin xt:=10*round(frxGlob[indexTCO]);yt:=1;end;
|
||||
if Bimage=5 then begin xt:=3;yt:=hauteurCell[indexTCO]-round(18*fryGlob[indexTCO]);end;
|
||||
if Bimage=12 then begin xt:=round(35*frxGlob[indexTCO]);yt:=2;end;
|
||||
if Bimage=2 then begin xt:=round(14*frxGlob[indexTCO]);yt:=1;end;
|
||||
if Bimage=3 then begin xt:=round(14*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(18*fryGlob[indexTCO]);end;
|
||||
if Bimage=4 then begin xt:=round(14*frxGlob[indexTCO]);yt:=1;end;
|
||||
if Bimage=5 then begin xt:=round(14*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(18*fryGlob[indexTCO]);end;
|
||||
if Bimage=12 then begin xt:=round(33*frxGlob[indexTCO]);yt:=1;end;
|
||||
if Bimage=13 then begin xt:=LargeurCell[indexTCO]-round(30*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(15*fryGlob[indexTCO]);end;
|
||||
if Bimage=14 then begin xt:=LargeurCell[indexTCO]-round(30*frxGlob[indexTCO]);yt:=1;end;
|
||||
if Bimage=15 then begin xt:=3;yt:=1;end;
|
||||
if Bimage=21 then begin xt:=-round(5*frxGlob[indexTCO]);yt:=0;end;
|
||||
if Bimage=22 then begin xt:=(LargeurCell[indexTCO] div 2);yt:=-2;end;
|
||||
if Bimage=15 then
|
||||
begin
|
||||
if (repr=3) then // texte bas
|
||||
begin
|
||||
xt:=round(25*frxGlob[indexTCO]);yt:=round(37*fryGlob[indexTCO]);
|
||||
end
|
||||
else
|
||||
begin
|
||||
xt:=3;yt:=1;
|
||||
end;
|
||||
end;
|
||||
if Bimage=21 then
|
||||
begin
|
||||
if (repr=3) then // texte bas
|
||||
begin
|
||||
xt:=round(24*frxGlob[indexTCO]);yt:=round(36*fryGlob[indexTCO]);
|
||||
end else
|
||||
begin
|
||||
xt:=-round(5*frxGlob[indexTCO]);yt:=0;
|
||||
end;
|
||||
end;
|
||||
if Bimage=22 then
|
||||
begin
|
||||
if (repr=3) then
|
||||
begin
|
||||
xt:=-5;yt:=round(38*fryGlob[indexTCO]) // texte bas
|
||||
end else
|
||||
begin
|
||||
xt:=(LargeurCell[indexTCO] div 2);yt:=-2; // texte haut
|
||||
end;
|
||||
end;
|
||||
if Bimage=23 then begin xt:=round(33*frxGlob[indexTCO]);yt:=round(35*fryGlob[indexTCO]);end;
|
||||
if Bimage=24 then begin xt:=LargeurCell[indexTCO]-round(20*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(15*fryGlob[indexTCO]);end;
|
||||
if Bimage=25 then begin xt:=round(34*frxGlob[indexTCO]);yt:=round(8*fryGlob[indexTCO]);end;
|
||||
@@ -11688,13 +11766,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
if (aspect=9) and (Oriente=1) then begin xt:=LargeurCell[indexTCO]-round(25*frxGlob[indexTCO]);yt:=round(60*fryGlob[indexTCO]);end;
|
||||
if (aspect=9) and (Oriente=2) then begin xt:=round(10*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(17*fryGlob[indexTCO]);end; // orientation G
|
||||
if (aspect=9) and (Oriente=2) then begin xt:=round(10*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(20*fryGlob[indexTCO]);end; // orientation G
|
||||
if (aspect=9) and (Oriente=3) then begin xt:=LargeurCell[indexTCO]+round(20*frxGlob[indexTCO]);yt:=round(10*frYGlob[indexTCO]);end;
|
||||
if (aspect=9) and (Oriente=4) and (pied=1) then begin xt:=round(2*frxGlob[indexTCO]);yt:=round(10*frYGlob[indexTCO]);end;
|
||||
if (aspect=9) and (Oriente=4) and (pied=2) then begin xt:=round(3*frxGlob[indexTCO]);yt:=round(1*frYGlob[indexTCO]);end;
|
||||
|
||||
if (aspect=7) and (Oriente=1) then begin xt:=LargeurCell[indexTCO]-round(25*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO];end;
|
||||
if (aspect=7) and (Oriente=2) then begin xt:=round(10*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(25*fryGlob[indexTCO]);end;
|
||||
if (aspect=7) and (Oriente=2) then begin xt:=round(10*frxGlob[indexTCO]);yt:=hauteurCell[indexTCO]-round(20*fryGlob[indexTCO]);end;
|
||||
if (aspect=7) and (Oriente=3) then begin xt:=LargeurCell[indexTCO]+2;yt:=round(4*frYGlob[indexTCO]);end;
|
||||
if (aspect=7) and (Oriente=4) and (pied=1) then begin xt:=round(2*frxGlob[indexTCO]);yt:=round(10*frYGlob[indexTCO]);end;
|
||||
if (aspect=7) and (Oriente=4) and (pied=2) then begin xt:=round(3*frxGlob[indexTCO]);yt:=round(1*frYGlob[indexTCO]);end;
|
||||
@@ -11967,6 +12045,7 @@ begin
|
||||
//Screen.OnActiveControlChange := ActiveControlChanged;
|
||||
|
||||
{$IF CompilerVersion >= 28.0}
|
||||
ScrollBox.StyleName:='Windows';
|
||||
BallonHint:=TballoonHint.Create(self);
|
||||
with BallonHint do
|
||||
begin
|
||||
@@ -12067,7 +12146,7 @@ begin
|
||||
xMiniSel:=99999;yMiniSel:=99999; // coordonnées cellules
|
||||
xMaxiSel:=0;yMaxiSel:=0;
|
||||
SelectionAffichee[indexTCOCreate]:=false;
|
||||
//ImageTCO.Canvas.font.Name:='Arial'; //<--- peut générer exception out of ressource!!
|
||||
ImageTCO.Canvas.font.Name:='Arial'; //<--- peut générer exception out of ressource!!
|
||||
clTexte:=ClLime;
|
||||
// évite le clignotement pendant les affichages mais ne marche pas
|
||||
//DoubleBuffered:=true;
|
||||
@@ -12157,7 +12236,7 @@ procedure Erreur_TCO(indexTCO,x,y : integer);
|
||||
var s : string;
|
||||
i,adresse : integer;
|
||||
begin
|
||||
s:='Erreur 92 TCO - Cellule '+intToSTR(x)+','+intToSTR(y)+' ';
|
||||
s:='Erreur 92 TCO '+intToSTR(indexTCO)+' - Cellule '+intToSTR(x)+','+intToSTR(y)+' ';
|
||||
adresse:=tco[indextco,x,y].Adresse;
|
||||
i:=index_aig(adresse);
|
||||
if i=0 then s:=s+'aiguillage '+intToSTR(adresse)+' inconnu';
|
||||
@@ -12231,13 +12310,13 @@ begin
|
||||
end;
|
||||
|
||||
// affiche le trajet Trace_Train[] dans le tco du train,ir =nombre d'éléments du tableau trace_train mode=couleur
|
||||
// ir=index route
|
||||
// mode=0 : effacement du trajet
|
||||
// sinon mode = couleur du train
|
||||
// affecte_loco = true : procède à l'affectation du train dans les cantons
|
||||
// = false : ne change pas le train dans le canton
|
||||
procedure affiche_trajet(indexTCO,train,AdrTrain,ir,mode : integer;affecte_loco : boolean);
|
||||
var i,sx,sy,x,y,ax,ay,Bimage,adresse,IdCanton,IdTrain,AncTrain,
|
||||
DernierDet,sens : integer;
|
||||
procedure affiche_trajet(indexTCO,train,AdrTrain,ir,mode : integer);
|
||||
var i,sx,sy,x,y,ax,ay,Bimage,adresse,IdCanton,IdTrain,AncTrain,elPrec,
|
||||
DernierDet : integer;
|
||||
TypePrec: tEquipement;
|
||||
cant : boolean;
|
||||
begin
|
||||
// et affichage de la route
|
||||
@@ -12273,7 +12352,22 @@ begin
|
||||
if adresse<>0 then
|
||||
begin
|
||||
// si l'adresse est un détecteur
|
||||
if (index_adresse_detecteur(adresse)<>0) then DernierDet:=adresse;
|
||||
if (index_adresse_detecteur(adresse)<>0) then
|
||||
begin
|
||||
DernierDet:=adresse;
|
||||
elprec:=detecteur[adresse].precedent;
|
||||
typePrec:=detecteur[adresse].TypPrecedent;
|
||||
idCanton:=trouve_canton(adresse,det,elPrec,typePrec);
|
||||
// si canton adjacent au détecteur suivant le sens d'avance du train et que le détecteur passe à 0,
|
||||
// désaffecter le train du canton
|
||||
// annulé car désaffecte le train apr_s 2 tours sur le canton 7
|
||||
{if (idCanton<>0) and (detecteur[adresse].Etat=false) then
|
||||
begin
|
||||
affiche('Canton='+IntToSTR(canton[idCanton].numero),clYellow);
|
||||
affecte_train_canton(0,idCanton,0);
|
||||
end;
|
||||
}
|
||||
end;
|
||||
end;
|
||||
tco[indextco,x,y].trajet:=0;
|
||||
|
||||
@@ -12289,6 +12383,7 @@ begin
|
||||
IdCanton:=index_canton_numero(TCO[indexTCO,x,y].NumCanton); // index canton
|
||||
|
||||
AncTrain:=0;
|
||||
{
|
||||
if (idcanton<>0) and affecte_loco then
|
||||
begin
|
||||
if mode=0 then // désaffecter le train
|
||||
@@ -12308,8 +12403,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
}
|
||||
//if (idcanton<>0) and not affecte_Loco then Affiche('Pas en mode affecte_loco',clOrange);
|
||||
end;
|
||||
|
||||
@@ -12412,10 +12507,9 @@ end;
|
||||
// Ne nécessite pas que les aiguillages en talon soient bien positionnés entre det1 et det2
|
||||
// PosAig = False: teste toutes les routes en récursif les aiguillages en pointe
|
||||
// True: suit les aiguillages en pointe qui doivent être positionnés
|
||||
// affecte_loco : true : efface la loco
|
||||
// en sortie : true si det2 a été trouvé
|
||||
//
|
||||
function zone_tco_gx(indexTCO,det1: integer;typEL : tequipement;det2,train,adrTrain,mode: integer;posAig,affecte_loco : boolean) : boolean;
|
||||
function zone_tco_gx(indexTCO,det1: integer;typEL : tequipement;det2,train,adrTrain,mode: integer;posAig : boolean) : boolean;
|
||||
var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iteration,indexIr,AdrTr,
|
||||
NbTrouve,AdrTr1,adrTr2 : integer;
|
||||
memtrouve,sortir,indextrouve : boolean;
|
||||
@@ -12814,7 +12908,7 @@ var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iter
|
||||
Index_TjdHom:=index_aig(TjdHom); // Index de la TJD homologue
|
||||
position2:=aiguillage[Index_TjdHom].position; // position de la TJD homologue
|
||||
|
||||
tjd4(adresse,position,TjdHom,position2,c1,c2); // retourne c1 et C2
|
||||
tjd4(position,position2,c1,c2); // retourne c1 et C2
|
||||
if (ancienY<y) and (ancienX>x) then // on vient du NE
|
||||
begin
|
||||
if c1=c2 then // si on traverse la TJD
|
||||
@@ -13018,7 +13112,7 @@ var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iter
|
||||
TjdHom:=aiguillage[index].Ddevie;
|
||||
Index_TjdHom:=index_aig(TjdHom);
|
||||
position2:=aiguillage[Index_TjdHom].position;
|
||||
tjd4(adresse,position,TjdHom,position2,c1,c2); // retourne c1 et C2
|
||||
tjd4(position,position2,c1,c2); // retourne c1 et C2
|
||||
if (ancienY<y) and (ancienX<x) then // on vient du NO
|
||||
begin
|
||||
if c1=c2 then // si on traverse la TJD
|
||||
@@ -13224,7 +13318,7 @@ var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iter
|
||||
TjdHom:=aiguillage[index].Ddevie;
|
||||
Index_TjdHom:=index_aig(TjdHom);
|
||||
position2:=aiguillage[Index_TjdHom].position;
|
||||
tjd4(adresse,position,TjdHom,position2,c1,c2); // retourne c1 et C2
|
||||
tjd4(position,position2,c1,c2); // retourne c1 et C2
|
||||
if (ancienY<y) and (ancienX>x) then // on vient du NE
|
||||
begin
|
||||
if c1=c2 then // si on traverse la TJD
|
||||
@@ -13452,7 +13546,7 @@ var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iter
|
||||
TjdHom:=aiguillage[index].Ddevie;
|
||||
Index_TjdHom:=index_aig(TjdHom);
|
||||
position2:=aiguillage[Index_TjdHom].position;
|
||||
tjd4(adresse,position,TjdHom,position2,c1,c2); // retourne c1 et C2
|
||||
tjd4(position,position2,c1,c2); // retourne c1 et C2
|
||||
if (ancienY<y) and (ancienX<x) then // on vient du NO
|
||||
begin
|
||||
if c1=c2 then // si on traverse la TJD
|
||||
@@ -13814,6 +13908,7 @@ begin
|
||||
Direction:=det2;
|
||||
end;
|
||||
|
||||
i:=0; // itérations
|
||||
repeat // boucle de test de direction
|
||||
sortir:=false;
|
||||
if mode<=10 then
|
||||
@@ -13844,7 +13939,7 @@ begin
|
||||
|
||||
xn:=x;yn:=y;
|
||||
ir:=1; // index de la route du tco
|
||||
i:=0; // itérations
|
||||
|
||||
if debugTCO then afficheDebug('Direction '+intToSTR(direction),clOrange);
|
||||
|
||||
// initialiser les points d'où l'on vient
|
||||
@@ -13956,7 +14051,7 @@ begin
|
||||
|
||||
if (i>NbCellulesTCO[indexTCO]) then AfficheDebug('Erreur 1000 TCO'+intToSTR(indexTCO)+' : dépassement d''itérations - Route de '+IntToSTR(det1)+' à '+IntToSTR(det2),clred);
|
||||
inc(direction)
|
||||
until ((direction=5) and (mode<=10)) or ((direction=9) and (mode>=11)) or memtrouve ;
|
||||
until ((direction=5) and (mode<=10)) or ((direction=9) and (mode>=11)) or memtrouve or (i>NbCellulesTCO[indexTCO]) ;
|
||||
|
||||
if memTrouve then
|
||||
begin
|
||||
@@ -13978,7 +14073,7 @@ begin
|
||||
AdrTr:=Adrtr2;
|
||||
//Affiche(intToSTR(det1)+' '+intToSTR(det2)+' Mode '+intToSTR(mode)+' Le détecteur2 '+intToSTR(Det2)+ ' est affecté au train @'+intToSTR(AdrTr2),clYellow);
|
||||
end;
|
||||
Affiche_trajet(indexTCO,train,AdrTrain,indexIr,mode,affecte_loco); // affiche le trajet dans le TCO
|
||||
Affiche_trajet(indexTCO,train,AdrTrain,indexIr,mode); // affiche le trajet dans le TCO
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -13987,17 +14082,15 @@ end;
|
||||
// affiche le tracé de det1 à det2; n°Train n°i (pas son index), adresseTrain, mode=0=éteint =1 allumejaune =2 allume selon index,
|
||||
// posAig=false : ne tient pas compte de la position des aiguillages pour le tracé (cherche en récursif det2
|
||||
// = true : suit le tracé suivant la position des aiguillages jusque det2
|
||||
// affecte_loco=true : affecte loco si on rencontre un canton. Si mode=0 çà désaffecte la loco du canton
|
||||
// =false : ne change pas l'affectation d'un canton rencontré
|
||||
function zone_tco(indexTCO,det1,det2,train,adrTrain,mode: integer;posAig,affecte_loco : boolean) : boolean; overload;
|
||||
function zone_tco(indexTCO,det1,det2,train,adrTrain,mode: integer;posAig : boolean) : boolean; overload;
|
||||
begin
|
||||
result:=zone_tco_gx(indexTCO,det1,det,det2,train,adrTrain,mode,posAig,affecte_loco);
|
||||
result:=zone_tco_gx(indexTCO,det1,det,det2,train,adrTrain,mode,posAig);
|
||||
end;
|
||||
|
||||
// fonction appellable en mode 13
|
||||
function zone_tco(indexTCO,adr : integer;typEl : tequipement;sens,mode: integer;posAig,affecte_loco : boolean) : boolean; overload;
|
||||
function zone_tco(indexTCO,adr : integer;typEl : tequipement;sens,mode: integer;posAig : boolean) : boolean; overload;
|
||||
begin
|
||||
result:=zone_tco_gx(indexTCO,adr,typEL,sens,0,0,mode,posAig,affecte_loco);
|
||||
result:=zone_tco_gx(indexTCO,adr,typEL,sens,0,0,mode,posAig);
|
||||
end;
|
||||
|
||||
|
||||
@@ -14563,7 +14656,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
|
||||
@@ -14661,7 +14754,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
|
||||
@@ -14792,7 +14885,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
|
||||
@@ -15451,7 +15544,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;
|
||||
@@ -17440,7 +17533,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
// mise à jour des cellules de l'adresse "adresse"
|
||||
// Affichage : mise à jour des cellules de l'adresse "adresse"
|
||||
procedure Maj_TCO(indexTCO,Adresse : integer);
|
||||
var x,y: integer;
|
||||
begin
|
||||
@@ -17865,7 +17958,7 @@ begin
|
||||
aiguillage[Index_Aig(117)].position:=const_devie;
|
||||
|
||||
//debugTco:=true;
|
||||
zone_tco(1,527,519,1,0,1,false,false);
|
||||
zone_tco(1,527,519,1,0,1,false);
|
||||
// zone_tco(518,515,1);
|
||||
|
||||
//zone_tco(522,514,1);
|
||||
@@ -17977,17 +18070,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;
|
||||
@@ -18011,6 +18103,7 @@ begin
|
||||
GroupBox1.Visible:=true;
|
||||
if (Signaux[i].aspect<20) then GroupBox2.Visible:=true else GroupBox2.Visible:=false;
|
||||
end;
|
||||
show;
|
||||
end;
|
||||
end;
|
||||
//clicsouris:=false;
|
||||
@@ -18255,7 +18348,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;
|
||||
@@ -18606,7 +18699,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
|
||||
@@ -18727,7 +18820,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
|
||||
@@ -19017,6 +19110,8 @@ begin
|
||||
screen.cursor:=crUpArrow;
|
||||
end
|
||||
else stop_modetrace(indexTCO);
|
||||
|
||||
FormTCO[indexTCO].DessinerleTCO1.Checked:=modetrace[indexTCO];
|
||||
end;
|
||||
|
||||
procedure TFormTCO.ButtonDessinerClick(Sender: TObject);
|
||||
@@ -19283,11 +19378,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.BandeauClick(Sender: TObject);
|
||||
var indexTCO : integer;
|
||||
procedure toggle_bandeau(indexTCO : integer);
|
||||
begin
|
||||
indexTCO:=index_TCOMainMenu;
|
||||
if bandeauMasque then
|
||||
if bandeauMasque then with formTCO[indexTCO] do
|
||||
begin
|
||||
PanelBas.Show;
|
||||
PanelBas.Visible:=true;
|
||||
@@ -19302,6 +19395,11 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.BandeauClick(Sender: TObject);
|
||||
begin
|
||||
toggle_bandeau(index_TCOMainMenu);
|
||||
end;
|
||||
|
||||
procedure TFormTCO.Mosaquehorizontale1Click(Sender: TObject);
|
||||
begin
|
||||
mosaiqueH;
|
||||
@@ -19596,7 +19694,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
|
||||
@@ -19608,10 +19706,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;
|
||||
@@ -19738,6 +19832,85 @@ begin
|
||||
formCompteur[1].Show;
|
||||
end;
|
||||
|
||||
procedure Supprimer_TCO(TcoS : integer);
|
||||
var c,x,y,i,SauvNbreTCO : integer;
|
||||
s : string;
|
||||
begin
|
||||
if Tcos>NbreTCO then exit;
|
||||
s:='Voulez-vous supprimer le TCO '+intToSTR(TcoS)+' ('+NomFichierTCO[tcoS]+')';
|
||||
if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit;
|
||||
|
||||
SauvNbreTCO:=NbreTCO; // dire au programme Timer qu'il n'y a plus de TCO le temps de supprimer sinon il peut tenter d'allumer un feu sur le TCO qu'on supprime->violation
|
||||
NbreTCO:=0;
|
||||
TCOActive:=false;
|
||||
|
||||
Affiche('Suppression du TCO '+intToSTR(Tcos),clOrange);
|
||||
|
||||
// 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
|
||||
if isCanton(tco[tcos,x,y].Bimage) then
|
||||
begin
|
||||
c:=tco[tcos,x,y].NumCanton;
|
||||
if c<>0 then supprime_canton(c);
|
||||
end;
|
||||
end;
|
||||
|
||||
FormTCO[tcos].Release; // annuler le pointeur et raz les mémoires de la form
|
||||
|
||||
for i:=tCos to SauvNbreTCO-1 do
|
||||
begin
|
||||
NomFichierTCO[i]:=NomFichierTCO[i+1];
|
||||
|
||||
FormTCO[i]:=FormTCO[i+1];
|
||||
FormTCO[i].Name:='TCO'+intToSTR(i); // renommer le TCO
|
||||
TCO[i]:=Tco[i+1]; // déplacer les données
|
||||
// et toutes les variables du tco
|
||||
PcanvasTCO[i]:=PcanvasTCO[i+1];
|
||||
PBitMapTCO[i]:=PBitMapTCO[i+1];
|
||||
PImageTCO[i]:=PImageTCO[i+1];
|
||||
PImageTemp[i]:=PImageTemp[i+1];
|
||||
frXGlob[i]:=frXGlob[i+1];
|
||||
frYGlob[i]:=frYGlob[i+1];
|
||||
SelectionAffichee[i]:=SelectionAffichee[i+1];
|
||||
forminit[i]:=forminit[i+1];
|
||||
modeTrace[i]:=modeTrace[i+1];
|
||||
entoure[i]:=entoure[i+1];
|
||||
avecGrille[i]:=avecGrille[i+1];
|
||||
NbreCellX[i]:=NbreCellX[i+1];
|
||||
NbreCellY[i]:=NbreCellY[i+1];
|
||||
largeurCelld2[i]:=largeurCelld2[i+1];
|
||||
HauteurCelld2[i]:=HauteurCelld2[i+1];
|
||||
largeurCell[i]:=largeurCell[i+1];
|
||||
HauteurCell[i]:=HauteurCell[i+1];
|
||||
EcranTCO[i]:=EcranTCO[i+1];
|
||||
Forminit[i]:=false;
|
||||
end;
|
||||
|
||||
setlength(TCO[SauvNbreTCO],0);
|
||||
PcanvasTCO[SauvNbreTCO]:=nil;
|
||||
dec(SauvNbreTCO);
|
||||
Menu_tco(SauvNbreTCO);
|
||||
config_modifie:=true;
|
||||
if SauvNbreTCO<>0 then Affiche('La nouvelle liste des noms des fichiers des TCO est la suivante:',ClLime);
|
||||
|
||||
for i:=1 to SauvNbreTCO do
|
||||
begin
|
||||
Affiche(IntToSTR(i)+' '+NomFichierTCO[i],clLime);
|
||||
end;
|
||||
NbreTCO:=SauvNbreTCO;
|
||||
tcoActive:=true;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormTCO.MenuSuppTCOClick(Sender: TObject);
|
||||
var indexTCO : integer;
|
||||
begin
|
||||
indexTCO:=index_TCOMainMenu;
|
||||
Supprimer_TCO(indexTCO);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
+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.
|
||||
//
|
||||
// **************************************************************************************************
|
||||
|
||||
+11
-4
@@ -173,7 +173,7 @@ function trouve_det_suiv_canton(idcanton,detecteur,sensTCO : integer) : integer;
|
||||
var t : integer;
|
||||
begin
|
||||
t:=canton[idcanton].ntco;
|
||||
zone_tco(t,detecteur,sensTCO,0,0,12,false,false); // élément contigu à droite (6) du canton , résultat dans xcanton , teste les 2 pos des aig
|
||||
zone_tco(t,detecteur,sensTCO,0,0,12,false); // élément contigu à droite (6) du canton , résultat dans xcanton , teste les 2 pos des aig
|
||||
if tel1=Aig then xcanton:=detecteur_suivant(detecteur,det,xcanton,aig,1);
|
||||
result:=xcanton;
|
||||
end;
|
||||
@@ -253,7 +253,7 @@ var idTrain,t,el1,el2 : integer;
|
||||
begin
|
||||
if ProcPrinc then
|
||||
AfficheDebug('Affecte_train_canton: @='+intToSTR(AdrTrain)+' Idcanton='+intToSTR(idcanton),clorange);
|
||||
//Affiche('Affecte_train_canton: @='+intToSTR(AdrTrain)+' Idcanton='+intToSTR(idcanton),clyellow);
|
||||
// Affiche('Affecte_train_canton: @='+intToSTR(AdrTrain)+' Idcanton='+intToSTR(idcanton),clyellow);
|
||||
if (IdCanton>0) and (idCanton<=nCantons) then
|
||||
begin
|
||||
idTrain:=0;
|
||||
@@ -313,6 +313,7 @@ begin
|
||||
end;
|
||||
|
||||
maj_signaux(false);
|
||||
dessin_canton(idCanton,0); // redessine le canton
|
||||
|
||||
//affiche('Det du canton '+intToSTR(canton[Idcanton].numero)+' det1='+intToSTR(canton[Idcanton].det1)+' det2='+intToSTR(canton[Idcanton].det2),clyellow);
|
||||
end;
|
||||
@@ -589,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
|
||||
@@ -606,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;
|
||||
|
||||
@@ -621,6 +625,7 @@ begin
|
||||
|
||||
supprime_route_train(indextrainclic);
|
||||
StringGridTrains.cells[7,ARow]:='';
|
||||
|
||||
end;
|
||||
|
||||
if faire then
|
||||
@@ -656,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;
|
||||
|
||||
+24
-10
@@ -26,7 +26,7 @@ var
|
||||
f : textFile;
|
||||
|
||||
Const
|
||||
VersionSC = '10.7'; // sert à la comparaison de la version publiée
|
||||
VersionSC = '10.9'; // 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;
|
||||
@@ -82,7 +82,7 @@ var
|
||||
begin
|
||||
Result:=False;
|
||||
t:=0;
|
||||
// l'utilisation de TfileStream.Create inplique que le répertoire de destination soit libre de droits
|
||||
// l'utilisation de TfileStream.Create implique que le répertoire de destination soit libre de droits
|
||||
Try Fs:=TFileStream.Create(s,fmCreate);
|
||||
//hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
|
||||
if DebugVV then Affiche('TFileStream.Create ok',clLime);
|
||||
@@ -353,7 +353,7 @@ begin
|
||||
// URL de l'API github des dernières releases
|
||||
Url:='https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest';
|
||||
|
||||
// l'utilisation de TfileStream.Create inplique que le répertoire de destination soit libre de droits,
|
||||
// l'utilisation de TfileStream.Create implique que le répertoire de destination soit libre de droits,
|
||||
// ce qui ne marche pas pour c:\program files (x64)\signaux_complexes.
|
||||
// Le fichier page.txt est donc mis dans C:\Users\moi\AppData\Roaming\signaux_complexes qui lui a tous les droits
|
||||
// fabrication du nom de fichier destinataire et son chemin
|
||||
@@ -463,16 +463,21 @@ begin
|
||||
closefile(fichier);
|
||||
if DebugVV then affiche('Fermeture du fichier d''échange',clYellow);
|
||||
|
||||
if trouve_version and trouve_zip then
|
||||
//if trouve_version and trouve_zip then
|
||||
if trouve_version then
|
||||
begin
|
||||
//----------------------------------------------------
|
||||
//isoler le nom du fichier
|
||||
i:=length(s3);
|
||||
repeat
|
||||
dec(i);
|
||||
locZip:=s3[i]='/';
|
||||
until (i=1) or LocZip;
|
||||
nomfichier:=copy(s3,i+1,length(s3)-i);
|
||||
if i<>0 then
|
||||
begin
|
||||
repeat
|
||||
dec(i);
|
||||
locZip:=s3[i]='/';
|
||||
until (i=1) or LocZip;
|
||||
nomfichier:=copy(s3,i+1,length(s3)-i);
|
||||
end
|
||||
else nomfichier:='';
|
||||
|
||||
//affiche(nombre_tel,cllime);
|
||||
//Affiche(s3,clLime);
|
||||
@@ -495,6 +500,7 @@ begin
|
||||
FormVersion.Top:=10;
|
||||
FormVersion.Left:=10;
|
||||
FormVersion.show;
|
||||
|
||||
s:='Vous utilisez la version '+versionSC+SousVersion+' mais il existe la version '+Version_p+SV_publie;
|
||||
if nComm>0 then
|
||||
begin
|
||||
@@ -503,6 +509,14 @@ begin
|
||||
Aff(' ');
|
||||
for i:=1 to ncomm do aff(comm[i]);
|
||||
end;
|
||||
|
||||
if not(trouve_zip) then
|
||||
begin
|
||||
ShowMessage('Pas de version téléchargeable');
|
||||
result:=0;
|
||||
exit;
|
||||
end;
|
||||
|
||||
if MessageDlg(s+#13+'Voulez-vous la télécharger, l''installer et l''exécuter?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
||||
begin
|
||||
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
||||
@@ -545,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
|
||||
|
||||
+43
-4
@@ -45,7 +45,7 @@ version 2.21 : Param
|
||||
version 2.3 : Changement de la méthode de réception des trames du protocole IPC de CDM-Rail
|
||||
Affichage au démarrage des variables manquantes du fichier config-gl.cfg
|
||||
version 2.31 : Amélioration calcul des routes depuis buttoir
|
||||
Lancement du TCO à la validation dans la configuration
|
||||
Lancement du TCO à la validation dans la configuration
|
||||
version 2.4 : Optimisation de la gestion des évènements aiguillages
|
||||
Gestion des aiguillages inversés dans CDM pour le mode autonome
|
||||
Debug pilotage feux LEB
|
||||
@@ -261,11 +261,11 @@ version 9.0 : Pilotage des nouveaux d
|
||||
Pilotage des accessoires sans accusé de réception, ce qui fluidifie le trafic XpressNet
|
||||
version 9.1 : Représentation de la position des TJD dans les TCOs.
|
||||
Corrections sur les TJD 2 états.
|
||||
Correction connection en mode autonome aux interfaces pour la version D11.
|
||||
Correction pilotage décodeur LEB ancienne version.
|
||||
Correction connection en mode autonome aux interfaces pour la version D11.
|
||||
Correction pilotage décodeur LEB ancienne version.
|
||||
version 9.2 : Utilisation de l'unité ASyncPro pour les versions D12 pour les communications COM/USB.
|
||||
Arrets temporisés sur les détecteurs en mode autonome/roulage pour les routes de canton à canton.
|
||||
Correction connexion à la GENLI.
|
||||
Correction connexion à la GENLI.
|
||||
Version x64 D12 disponible.
|
||||
version 9.3 : Amélioration de la proposition des routes en mode autonome.
|
||||
Renforcement de la vérification des TJD.
|
||||
@@ -341,6 +341,45 @@ version 10.6 : Modification pour l'affichage de la barre de zoom du TCO pour les
|
||||
version 10.7 : Affichage du compteur de train depuis le menu contextuel des cantons du tco.
|
||||
En roulage ou RUN CDM, suppression d'un train non suivi de la liste des trains en roulage.
|
||||
Correction désaffectation trains sur cantons.
|
||||
version 10.71 : Ajout dans les variables des fonctions les mémoires de zone.
|
||||
Correction bug activation mémoires de zone dans le menu du TCO.
|
||||
Correction bug affichage des opérations dans les actions.
|
||||
version 10.72 : Correction bug dans les fonctions.
|
||||
version 10.73 : Correction bug téléchargement trains depuis CDM.
|
||||
version 10.74 : Traitement du cas TJD abordée par aiguillage en pointe.
|
||||
Ajout paramètre de temporisation de commande des signaux.
|
||||
version 10.75 : Amélioration de l'importation des trains depuis CDM rail.
|
||||
Correction suppression des signaux.
|
||||
version 10.76 : Ajout du copier/coller des routes de trains.
|
||||
Correction du bug de la 10.74 sur le pilotage des signaux.
|
||||
version 10.77 : Amélioration diverses.
|
||||
Correction du non affichage de la position des aiguillages dans le TCO.
|
||||
version 10.78 : Correction affichage aiguillages dans l'écran de config des versions D13.
|
||||
Correction pilotage des décodeurs LEB en mode binaire.
|
||||
Ajout temps de retombée fonction F trains dans les blocs claviers USB.
|
||||
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.
|
||||
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
|
||||
version 10.9 : Possibilité de déclarer des feux verts/rouge pour les signaux à deux feux.
|
||||
Création d'un bouton de propagation du changement d'adresse d'un signal
|
||||
Création d'un bouton de propagation du changement d'adresse d'un détecteur
|
||||
Création d'une condition "détecteur/actionneur" dans les actions
|
||||
version 10.91 Possibilité d'ajouter plusieurs conditions dans les actions
|
||||
Une action ne peuvent être lancée que si la même action précédente est terminée
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user