This commit is contained in:
f1iwq2
2023-11-01 13:53:25 +01:00
parent 95f2e65b80
commit 5de453ddc1
10 changed files with 435 additions and 392 deletions
+31 -31
View File
@@ -1,8 +1,8 @@
Start Length Name Class Start Length Name Class
0001:00000000 00166354H .text CODE 0001:00000000 0016718CH .text CODE
0002:00000000 00002C10H .data DATA 0002:00000000 00002BE8H .data DATA
0002:00002C10 041C8BF9H .bss BSS 0002:00002BE8 041CBB51H .bss BSS
Detailed map of segments Detailed map of segments
@@ -88,17 +88,17 @@ Detailed map of segments
0001:000B5290 00002690 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9 0001:000B5290 00002690 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
0001:000B7920 000009C0 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9 0001:000B7920 000009C0 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
0001:000B82E0 00003458 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9 0001:000B82E0 00003458 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000BB738 0002CEBC C=CODE S=.text G=(none) M=UnitTCO ACBP=A9 0001:000BB738 0002DB7C C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:000E85F4 00002C18 C=CODE S=.text G=(none) M=UnitSR ACBP=A9 0001:000E92B4 00002C18 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:000EB20C 00002404 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9 0001:000EBECC 00002404 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:000ED610 000015DB C=CODE S=.text G=(none) M=verif_version ACBP=A9 0001:000EE2D0 000015D3 C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:000EEBEC 0000114C C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9 0001:000EF8A4 0000114C C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:000EFD38 00037300 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9 0001:000F09F0 00037308 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:00127038 0000290C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9 0001:00127CF8 0000290C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:00129944 00000C00 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9 0001:0012A604 00000C00 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:0012A544 00002390 C=CODE S=.text G=(none) M=Unitplace ACBP=A9 0001:0012B204 00002390 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
0001:0012C8D4 000395F0 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9 0001:0012D594 00039768 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
0001:00165EC4 0000048D C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9 0001:00166CFC 0000048D C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
0002:00000000 000000CC C=DATA S=.data G=DGROUP M=System ACBP=A9 0002:00000000 000000CC C=DATA S=.data G=DGROUP M=System ACBP=A9
0002:000000CC 00000020 C=DATA S=.data G=DGROUP M=SysInit ACBP=A9 0002:000000CC 00000020 C=DATA S=.data G=DGROUP M=SysInit ACBP=A9
0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9 0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9
@@ -125,12 +125,12 @@ Detailed map of segments
0002:00001234 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9 0002:00001234 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
0002:00001264 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9 0002:00001264 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
0002:00001290 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9 0002:00001290 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
0002:00001B98 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9 0002:00001B98 00000058 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00001C18 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9 0002:00001BF0 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
0002:00001C24 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9 0002:00001BFC 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
0002:00001C28 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9 0002:00001C00 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
0002:00001C30 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9 0002:00001C08 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
0002:00001D04 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9 0002:00001CDC 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
0002:00003000 00000664 C=BSS S=.bss G=DGROUP M=System ACBP=A9 0002:00003000 00000664 C=BSS S=.bss G=DGROUP M=System ACBP=A9
0002:00003664 00000010 C=BSS S=.bss G=DGROUP M=SysInit ACBP=A9 0002:00003664 00000010 C=BSS S=.bss G=DGROUP M=SysInit ACBP=A9
0002:00003674 00000004 C=BSS S=.bss G=DGROUP M=Types ACBP=A9 0002:00003674 00000004 C=BSS S=.bss G=DGROUP M=Types ACBP=A9
@@ -212,16 +212,16 @@ Detailed map of segments
0002:00007C40 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9 0002:00007C40 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9
0002:00007C54 00000014 C=BSS S=.bss G=DGROUP M=Unit_Pilote_aig ACBP=A9 0002:00007C54 00000014 C=BSS S=.bss G=DGROUP M=Unit_Pilote_aig ACBP=A9
0002:00007C68 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9 0002:00007C68 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9
0002:00007C7C 00041F90 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9 0002:00007C7C 00044EE8 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:00049C0C 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9 0002:0004CB64 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
0002:00049C1C 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9 0002:0004CB74 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
0002:00049C30 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9 0002:0004CB88 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:00049C48 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9 0002:0004CBA0 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:00049C4C 000004F8 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9 0002:0004CBA4 000004F8 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:0004A144 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9 0002:0004D09C 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
0002:0004A170 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9 0002:0004D0C8 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:0004A17C 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9 0002:0004D0D4 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
0002:0004A184 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9 0002:0004D0DC 04181A74 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
Bound resource files Bound resource files
@@ -247,4 +247,4 @@ Signaux_complexes_GL.res
Signaux_complexes_GL.drf Signaux_complexes_GL.drf
Program entry point at 0001:001661D4 Program entry point at 0001:0016700C
+2 -2
View File
@@ -668,7 +668,7 @@ object FormConfig: TFormConfig
Top = 8 Top = 8
Width = 633 Width = 633
Height = 497 Height = 497
ActivePage = TabSheetPeriph ActivePage = TabSheetCDM
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -11 Font.Height = -11
@@ -927,7 +927,7 @@ object FormConfig: TFormConfig
Top = 184 Top = 184
Width = 297 Width = 297
Height = 65 Height = 65
Caption = 'Au d'#233'marrage de CDM Rail : interface LENZ' Caption = 'Au d'#233'marrage de CDM Rail : interface LENZ / XpressNet'
TabOrder = 3 TabOrder = 3
object RadioButton13: TRadioButton object RadioButton13: TRadioButton
Left = 8 Left = 8
+20 -22
View File
@@ -1153,7 +1153,7 @@ begin
for j:=1 to NfeuxDir+1 do for j:=1 to NfeuxDir+1 do
begin begin
s:=s+'('; s:=s+'(';
for k:=1 to Length(feux[i].AigDirection[j])-1 do // boum for k:=1 to Length(feux[i].AigDirection[j])-1 do
begin begin
s:=s+'A'+IntToSTR(feux[i].AigDirection[j][k].adresse) + feux[i].AigDirection[j][k].posaig; s:=s+'A'+IntToSTR(feux[i].AigDirection[j][k].adresse) + feux[i].AigDirection[j][k].posaig;
if k<Length(feux[i].AigDirection[j])-1 then s:=s+','; if k<Length(feux[i].AigDirection[j])-1 then s:=s+',';
@@ -2064,7 +2064,6 @@ var s,sa,SOrigine: string;
Tablo_actionneur[i].accessoire:=0; Tablo_actionneur[i].accessoire:=0;
Tablo_actionneur[i].sortie:=0; Tablo_actionneur[i].sortie:=0;
Tablo_actionneur[i].fichierSon:=''; Tablo_actionneur[i].fichierSon:='';
// Tablo_actionneur[i].det:=false;
Tablo_actionneur[i].loco:=false; Tablo_actionneur[i].loco:=false;
Tablo_actionneur[i].act:=false; Tablo_actionneur[i].act:=false;
Tablo_actionneur[i].son:=false; Tablo_actionneur[i].son:=false;
@@ -3196,7 +3195,7 @@ var s,sa,SOrigine: string;
delete(s,i,length(sa)); delete(s,i,length(sa));
AvecDemandeInterfaceEth:=s='1'; AvecDemandeInterfaceEth:=s='1';
end; end;
// taille de la fenetre // taille de la fenetre
sa:=uppercase(fenetre_ch)+'='; sa:=uppercase(fenetre_ch)+'=';
i:=pos(sa,s); i:=pos(sa,s);
@@ -3299,6 +3298,7 @@ var s,sa,SOrigine: string;
inc(nv); inc(nv);
delete(s,i,length(sa)+1); delete(s,i,length(sa)+1);
val(s,AvecVerifIconesTCO,erreur); val(s,AvecVerifIconesTCO,erreur);
AvecVerifIconesTCO:=0; // forcé à 0
s:=''; s:='';
end; end;
@@ -4295,12 +4295,10 @@ begin
s:=items[i]; s:=items[i];
ajoute_champs_combos(i+1); ajoute_champs_combos(i+1);
end; end;
end; end;
end; end;
// met à jour le nom d'un champ d'index i dans les combos // met à jour le nom d'un champ d'index i dans les combos
procedure maj_champs_combos(i: integer); procedure maj_champs_combos(i: integer);
var j,n : integer; var j,n : integer;
@@ -4815,7 +4813,7 @@ begin
ShapeZ:=TShape.Create(formconfig.GroupBoxPNZ); ShapeZ:=TShape.Create(formconfig.GroupBoxPNZ);
with ShapeZ do with ShapeZ do
begin begin
Left:=64;Top:=40;Width:=150;Height:=2; Left:=64;Top:=40;Width:=170;Height:=2;
name:='ShapeZ'; name:='ShapeZ';
parent:=GroupBoxPNZ; parent:=GroupBoxPNZ;
end; end;
@@ -5555,7 +5553,7 @@ begin
GroupBoxEtatTJD.Visible:=false; GroupBoxEtatTJD.Visible:=false;
GroupBox21.Visible:=true; GroupBox21.Visible:=true;
GroupBox10.Visible:=true; GroupBox10.Visible:=true;
checkInverse.Visible:=true; checkInverse.Visible:=true;
// tjd // tjd
if tjd or tjs or croi then if tjd or tjs or croi then
@@ -6509,7 +6507,7 @@ begin
if s[1]='(' then if s[1]='(' then
begin begin
champs_type_pn; champs_type_pn;
// trouver le numéro de périphérique // trouver le numéro de périphérique
v:=pos('PN(',s); v:=pos('PN(',s);
delete(s,1,v+2); delete(s,1,v+2);
val(s,periph,erreur); val(s,periph,erreur);
@@ -7270,19 +7268,19 @@ begin
Maj_Hint_Signal(i); Maj_Hint_Signal(i);
case decodeur of case decodeur of
6 : begin 6 : begin
labelUni.Caption:='Spec Unisemaf';LabelUni.Visible:=true; labelUni.Caption:='Spec Unisemaf';LabelUni.Visible:=true;
EditSpecUni.Visible:=true; EditSpecUni.Visible:=true;
end; end;
9 : begin 9 : begin
s:='Décodeur pour signaux belges SNCB - 4 aspects uniquement: '; s:='Décodeur pour signaux belges SNCB - 4 aspects uniquement: ';
labelInfo.Caption:=s+'vert - rouge - double jaune - rouge blanc'; labelInfo.Caption:=s+'vert - rouge - double jaune - rouge blanc';
end; end;
10 : begin 10 : begin
s:='Décodeur pour signaux belges SNCB - 6 aspects + chiffre + V '; s:='Décodeur pour signaux belges SNCB - 6 aspects + chiffre + V ';
labelInfo.Caption:=s; labelInfo.Caption:=s;
labelUni.Caption:='Nombre d''adresses';LabelUni.Visible:=true; labelUni.Caption:='Nombre d''adresses';LabelUni.Visible:=true;
EditSpecUni.Visible:=true; EditSpecUni.Visible:=true;
end end
else labelInfo.Caption:=''; else labelInfo.Caption:='';
end; end;
@@ -9161,7 +9159,7 @@ begin
begin begin
affiche('Erreur 9.1 : signal '+intToSTR(adr)+' ('+intToSTR(nc)+' adresses) et aiguillage '+intToSTR(adr2)+' se chevauchent',clred); affiche('Erreur 9.1 : signal '+intToSTR(adr)+' ('+intToSTR(nc)+' adresses) et aiguillage '+intToSTR(adr2)+' se chevauchent',clred);
ok:=false; ok:=false;
end; end;
end; end;
for i:=j+1 to NbreFeux do for i:=j+1 to NbreFeux do
+6 -5
View File
@@ -1,8 +1,9 @@
object FormPrinc: TFormPrinc object FormPrinc: TFormPrinc
Left = 47 Left = 91
Top = 346 Top = 235
Width = 1133 Width = 1133
Height = 653 Height = 653
Anchors = [akLeft, akTop, akRight]
Caption = 'Signaux complexes' Caption = 'Signaux complexes'
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -1490,7 +1491,7 @@ object FormPrinc: TFormPrinc
Visible = False Visible = False
OnClick = Button1Click OnClick = Button1Click
end end
object Panel2: TPanel object GrandPanel: TPanel
Left = 0 Left = 0
Top = 32 Top = 32
Width = 1065 Width = 1065
@@ -1982,8 +1983,8 @@ object FormPrinc: TFormPrinc
end end
end end
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
Left = 449 Left = 457
Top = 72 Top = 144
Width = 265 Width = 265
Height = 105 Height = 105
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
+157 -115
View File
@@ -163,7 +163,7 @@ type
CO81: TMenuItem; CO81: TMenuItem;
CO91: TMenuItem; CO91: TMenuItem;
CO101: TMenuItem; CO101: TMenuItem;
Panel2: TPanel; GrandPanel: TPanel;
FenRich: TRichEdit; FenRich: TRichEdit;
SplitterV: TSplitter; SplitterV: TSplitter;
ScrollBox1: TScrollBox; ScrollBox1: TScrollBox;
@@ -1138,10 +1138,8 @@ begin
} }
// extinctions if not((code=jaune_cli) and clignotant) then cercle(ACanvas,xJaune,yJaune,rayon,GrisF);
if not((code=vert_cli) and clignotant) then cercle(ACanvas,xVert,yVert,rayon,GrisF);
if not((code=jaune_cli) and clignotant) then cercle(ACanvas,xJaune,yJaune,rayon,GrisF);
if not((code=vert_cli) and clignotant) then cercle(ACanvas,xVert,yVert,rayon,GrisF);
if not((code=semaphore_cli) and clignotant) then cercle(ACanvas,xSem,ySem,rayon,GrisF); if not((code=semaphore_cli) and clignotant) then cercle(ACanvas,xSem,ySem,rayon,GrisF);
// allumages // allumages
@@ -1541,8 +1539,8 @@ var mrect,nrect : trect;
begin begin
larg:=ImageSrc.Width; larg:=ImageSrc.Width;
haut:=ImageSrc.Height; haut:=ImageSrc.Height;
mRect:= rect(0,0,larg,haut); mRect:=rect(0,0,larg,haut);
nRect:= rect(larg-1,0,-1,haut); nRect:=rect(larg-1,0,-1,haut);
ImageDest.canvas.CopyRect(mRect,ImageSrc.canvas,nRect); ImageDest.canvas.CopyRect(mRect,ImageSrc.canvas,nRect);
end; end;
@@ -1555,9 +1553,6 @@ var xblanc,xvert,xrouge,Yblanc,xjauneBas,xJauneHaut,yJauneBas,yJauneHaut,YVert,Y
ech : real; ech : real;
inverse,etatChevron,EtatChiffre,codeClignote : boolean; inverse,etatChevron,EtatChiffre,codeClignote : boolean;
r : Trect; r : Trect;
c : tcomponent;
t : hwnd;
s : string;
begin begin
code:=etatSignal and $3f; code:=etatSignal and $3f;
@@ -2032,7 +2027,7 @@ begin
case aspect of case aspect of
// feux de signalisation // feux de signalisation
2 : dessine_signal2(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation); 2 : dessine_signal2(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
3 : dessine_signal3(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,feux[i].AncienEtat,orientation); 3 : dessine_signal3(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,feux[i].AncienEtat,orientation); // essai
4 : dessine_signal4(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation); 4 : dessine_signal4(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
5 : dessine_signal5(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation); 5 : dessine_signal5(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
7 : dessine_signal7(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation); 7 : dessine_signal7(CanvasDest,x,y,frx,fry,feux[i].EtatSignal,orientation);
@@ -4383,7 +4378,7 @@ end;
// pilote un signal par un décodeur personnalisé // pilote un signal par un décodeur personnalisé
procedure envoi_decodeur_pers(Adresse : integer); procedure envoi_decodeur_pers(Adresse : integer);
var s : string; var s : string;
d,dp,i,j,k,etat,asp,combine,aspect,nAdresses,numcom,v,numacc,cmd : integer; d,dp,i,j,k,etat,asp,combine,aspect,nAdresses,v,numacc,cmd : integer;
trouve1,trouve2,trouve3,trouve4 : boolean; trouve1,trouve2,trouve3,trouve4 : boolean;
begin begin
i:=Index_Signal(adresse); i:=Index_Signal(adresse);
@@ -5657,7 +5652,8 @@ begin
if (nivdebug>1) or traceliste then AfficheDebug('135.7- TJD '+intToSTR(adr)+' mal positionnée cas 3.1',clyellow); if (nivdebug>1) or traceliste then AfficheDebug('135.7- TJD '+intToSTR(adr)+' mal positionnée cas 3.1',clyellow);
if (alg and 2)=2 then if (alg and 2)=2 then
begin begin
suivant_alg3:=9998;exit; suivant_alg3:=9998;
exit;
end; end;
end; end;
end; end;
@@ -5671,7 +5667,8 @@ begin
begin begin
typeGen:=rien; typeGen:=rien;
AdrDevie:=Adr; AdrDevie:=Adr;
suivant_alg3:=9997;exit; suivant_alg3:=9997;
exit;
end; end;
end end
else else
@@ -5679,7 +5676,8 @@ begin
if (nivdebug>1) or traceliste then AfficheDebug('135.8- TJD '+intToSTR(adr)+' mal positionnée cas 3.2',clyellow); if (nivdebug>1) or traceliste then AfficheDebug('135.8- TJD '+intToSTR(adr)+' mal positionnée cas 3.2',clyellow);
if (alg and 2)=2 then if (alg and 2)=2 then
begin begin
suivant_alg3:=9998;exit; suivant_alg3:=9998;
exit;
end; end;
end; end;
end; end;
@@ -8608,8 +8606,9 @@ end;
// le traitement d'un détecteur à 0 est temporisé car il peut électriquement rebondir à cause des mauvais contacts. // le traitement d'un détecteur à 0 est temporisé car il peut électriquement rebondir à cause des mauvais contacts.
// non utilisé ***************
procedure traite_det0(adresse : integer); procedure traite_det0(adresse : integer);
var i,j,k,EtatSig,det1,det2,det3,det4,det_suiv,adrSuiv,AdrTrainLoc,n : integer; var i,j,k,EtatSig,det1,t,det2,det3,det4,det_suiv,adrSuiv,AdrTrainLoc,n : integer;
suivOk,CasAig : boolean; suivOk,CasAig : boolean;
s,train_ch : string; s,train_ch : string;
begin begin
@@ -8779,10 +8778,13 @@ begin
end; end;
if TCOActive then if TCOActive then
begin begin
zone_TCO(1,det2,det3,0); // désactivation for t:=1 to nbreTCO do
// activation begin
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1) zone_TCO(t,det2,det3,0); // désactivation
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train // activation
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite // mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -8831,7 +8833,7 @@ end;
// adresse: adresse du detecteur, front: état du détecteur // adresse: adresse du detecteur, front: état du détecteur
procedure calcul_zones_V1(adresse: integer;etat : boolean); procedure calcul_zones_V1(adresse: integer;etat : boolean);
var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,i2,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev, var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,i2,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev,
id_couleur,det_suiv,nc,etatSig : integer ; id_couleur,det_suiv,nc,etatSig,tco : integer ;
traite,trouve,SuivOk,casaig,rebond : boolean; traite,trouve,SuivOk,casaig,rebond : boolean;
couleur : tcolor; couleur : tcolor;
TypeSuiv : tEquipement; TypeSuiv : tEquipement;
@@ -8979,8 +8981,11 @@ begin
if TCOActive then if TCOActive then
begin begin
// activation // activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1) for tco:=1 to nbreTCO do
else zone_TCO(1,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train begin
if ModeCouleurCanton=0 then zone_TCO(tco,det3,AdrSuiv,1)
else zone_TCO(tco,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
exit; // sortir absolument exit; // sortir absolument
end end
@@ -9040,9 +9045,12 @@ begin
Affiche_Evt(s,clWhite); Affiche_Evt(s,clWhite);
if TCOActive then if TCOActive then
begin begin
// activation // activation
if ModeCouleurCanton=0 then zone_TCO(1,det1,det3,1) for tco:=1 to nbreTCO do
else zone_TCO(1,det1,det3,2); // affichage avec la couleur de index_couleur du train begin
if ModeCouleurCanton=0 then zone_TCO(tco,det1,det3,1)
else zone_TCO(tco,det1,det3,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
end; end;
end; end;
@@ -9225,10 +9233,13 @@ begin
end; end;
if TCOActive then if TCOActive then
begin begin
zone_TCO(1,det2,det3,0); // désactivation for tco:=1 to nbreTCO do
// activation begin
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1) zone_TCO(tco,det2,det3,0); // désactivation
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train // activation
if ModeCouleurCanton=0 then zone_TCO(tco,det3,AdrSuiv,1)
else zone_TCO(tco,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite // mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -9343,10 +9354,12 @@ begin
if AffAigDet then AfficheDebug(s,couleur); if AffAigDet then AfficheDebug(s,couleur);
if TCOActive then if TCOActive then
begin begin
zone_TCO(1,det1,det2,0); // désactivation for tco:=1 to nbreTCO do
// activation begin
if ModeCouleurCanton=0 then zone_TCO(1,det2,det3,1) // activation
else zone_TCO(1,det2,det3,2); // affichage avec la couleur de index_couleur du train if ModeCouleurCanton=0 then zone_TCO(tco,det2,det3,1)
else zone_TCO(tco,det2,det3,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
exit; // sortir absolument exit; // sortir absolument
end end
@@ -9523,7 +9536,7 @@ end;
// adresse: adresse du detecteur, front: état du détecteur // adresse: adresse du detecteur, front: état du détecteur
procedure calcul_zones_V2(adresse: integer;etat : boolean); procedure calcul_zones_V2(adresse: integer;etat : boolean);
var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev, var m,AdrFeu,AdrDetFeu,AdrTrainLoc,Nbre,i,j,k,n,det1,det2,det3,det4,AdrSuiv,AdrPrec,Prev,
id_couleur,det_suiv,nc,etatSig : integer ; id_couleur,det_suiv,nc,etatSig,t : integer ;
traite,trouve,SuivOk,casaig,rebond : boolean; traite,trouve,SuivOk,casaig,rebond : boolean;
couleur : tcolor; couleur : tcolor;
TypeSuiv : tEquipement; TypeSuiv : tEquipement;
@@ -9659,8 +9672,11 @@ begin
if TCOActive then if TCOActive then
begin begin
// activation // activation
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1) for t:=1 to nbreTCO do
else zone_TCO(1,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train begin
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,adrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
exit; // sortir absolument exit; // sortir absolument
end end
@@ -9721,8 +9737,11 @@ begin
if TCOActive then if TCOActive then
begin begin
// activation // activation
if ModeCouleurCanton=0 then zone_TCO(1,det1,det3,1) for t:=1 to nbreTCO do
else zone_TCO(1,det1,det3,2); // affichage avec la couleur de index_couleur du train begin
if ModeCouleurCanton=0 then zone_TCO(t,det1,det3,1)
else zone_TCO(t,det1,det3,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
end; end;
end; end;
@@ -9890,10 +9909,13 @@ begin
end; end;
if TCOActive then if TCOActive then
begin begin
zone_TCO(1,det2,det3,0); // désactivation for t:=1 to nbreTCO do
// activation begin
if ModeCouleurCanton=0 then zone_TCO(1,det3,AdrSuiv,1) //zone_TCO(tco,det2,det3,0); // désactivation
else zone_TCO(1,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train // activation
if ModeCouleurCanton=0 then zone_TCO(t,det3,AdrSuiv,1)
else zone_TCO(t,det3,AdrSuiv,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
// mettre à jour si présence signal sur det3 pour le passer au rouge de suite // mettre à jour si présence signal sur det3 pour le passer au rouge de suite
@@ -10021,10 +10043,13 @@ begin
if AffAigDet then AfficheDebug(s,couleur); if AffAigDet then AfficheDebug(s,couleur);
if TCOActive then if TCOActive then
begin begin
zone_TCO(1,det1,det2,0); // désactivation for t:=1 to nbreTCO do
// activation begin
if ModeCouleurCanton=0 then zone_TCO(1,det2,det3,1) //zone_TCO(tco,det1,det2,0); // désactivation
else zone_TCO(1,det2,det3,2); // affichage avec la couleur de index_couleur du train // activation
if ModeCouleurCanton=0 then zone_TCO(t,det2,det3,1)
else zone_TCO(t,det2,det3,2); // affichage avec la couleur de index_couleur du train
end;
end; end;
exit; // sortir absolument exit; // sortir absolument
end end
@@ -12767,19 +12792,19 @@ begin
GroupBox2.Left:=i+12; GroupBox2.Left:=i+12;
GroupBox3.Left:=i+12; GroupBox3.Left:=i+12;
ScrollBox1.Left:=i+12; ScrollBox1.Left:=i+12;
ScrollBox1.width:=panel2.Width-i-5; ScrollBox1.width:=GrandPanel.Width-i-5;
Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5; Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5;
Panel1.top:=9; Panel1.top:=9;
GroupBox1.Top:=5; GroupBox1.Top:=5;
Affiche_signaux; Affiche_signaux;
if not(avec_Splitter) then Panel2.Width:=i; if not(avec_Splitter) then GrandPanel.Width:=i;
end; end;
end; end;
// démarrage principal du programme signaux_complexes // démarrage principal du programme signaux_complexes
procedure TFormPrinc.FormCreate(Sender: TObject); procedure TFormPrinc.FormCreate(Sender: TObject);
var i,index,OrgMilieu : integer; var t,i,index,OrgMilieu : integer;
s : string; s : string;
begin begin
AF:='Client TCP-IP CDM Rail ou USB - système XpressNet DCC++ Version '+Version+sousVersion; AF:='Client TCP-IP CDM Rail ou USB - système XpressNet DCC++ Version '+Version+sousVersion;
@@ -12967,9 +12992,7 @@ begin
with statusbar1 do with statusbar1 do
begin begin
SimplePanel:=false; // pour afficher plusieurs panels dans la Statusbar SimplePanel:=false; // pour afficher plusieurs panels dans la Statusbar
Panels[0].Text:=''; Panels[0].Text:='';
Panels[1].Text:=''; Panels[1].Text:='';
Panels[2].Text:=''; Panels[2].Text:='';
Panels[3].Text:=''; Panels[3].Text:='';
@@ -12977,16 +13000,15 @@ begin
//Panels[3].Style:=psOwnerDraw; // pour déclencher l'évenement onDraw //Panels[3].Style:=psOwnerDraw; // pour déclencher l'évenement onDraw
end; end;
with Panel2 do with GrandPanel do
begin begin
left:=5; left:=5;
//Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable //Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable
top:=formprinc.LabelTitre.top+formprinc.LabelTitre.Height+4;; top:=formprinc.LabelTitre.top+formprinc.LabelTitre.Height+4;;
width:=formprinc.width-30; width:=formprinc.width-30;
height:=formprinc.Height-StatusBar1.Height-LabelTitre.Height-63; height:=formprinc.Height-StatusBar1.Height-LabelTitre.Height-63;
//height:=400; Anchors:=[akLeft,akTop,akRight,akBottom];
Anchors:=[akLeft,akTop,akRight,akBottom]; end;
end;
if avec_splitter then if avec_splitter then
@@ -12996,7 +13018,7 @@ begin
left:=5; left:=5;
Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable Align:=AlLeft; // si on ne met pas AlignLeft, alors le splitter n'est pas accrochable
top:=5; // par rapport au panel top:=5; // par rapport au panel
Width:=panel2.Width-Panel1.Width-GroupBox1.Width-25; Width:=GrandPanel.Width-Panel1.Width-GroupBox1.Width-25;
//height:=formprinc.Height-StatusBar1.Height-StaticText.Height-LabelTitre.Height-90; //height:=formprinc.Height-StatusBar1.Height-StaticText.Height-LabelTitre.Height-90;
Anchors:=[akLeft,akTop,akRight,akBottom]; Anchors:=[akLeft,akTop,akRight,akBottom];
end; end;
@@ -13005,17 +13027,17 @@ begin
begin begin
Left:=FenRich.left+FenRich.Width-25; Left:=FenRich.left+FenRich.Width-25;
MinSize:=200; MinSize:=200;
Parent:=Panel2; Parent:=GrandPanel;
align:=fenrich.align; // dessine le splitter à droite de la fenetre Fenrich align:=fenrich.align; // dessine le splitter à droite de la fenetre Fenrich
Visible:=true; Visible:=true;
end; end;
with ScrollBox1 do with ScrollBox1 do
begin begin
Parent:=Panel2; Parent:=GrandPanel;
Anchors:=[akTop,akRight,akBottom]; Anchors:=[akTop,akRight,akBottom];
width:=panel2.Width-SplitterV.Width-5; width:=GrandPanel.Width-SplitterV.Width-5;
height:=panel2.Height-groupBox3.height-groupBox3.top-25; height:=GrandPanel.Height-groupBox3.height-groupBox3.top-25;
top:=GroupBox3.Top+GroupBox3.Height+5; top:=GroupBox3.Top+GroupBox3.Height+5;
end; end;
@@ -13033,13 +13055,13 @@ begin
left:=5; left:=5;
top:=0; top:=0;
width:=panel2.Width-orgMilieu-10; width:=GrandPanel.Width-orgMilieu-10;
height:=panel2.Height; height:=GrandPanel.Height;
//Anchors:=[akLeft,akTop,akRight,akBottom]; //Anchors:=[akLeft,akTop,akRight,akBottom];
GroupBox1.Left:=orgMilieu+12; GroupBox1.Left:=orgMilieu+12;
GroupBox3.Left:=orgMilieu+12; GroupBox3.Left:=orgMilieu+12;
ScrollBox1.Left:=orgMilieu+12; ScrollBox1.Left:=orgMilieu+12;
ScrollBox1.width:=panel2.Width-orgMilieu-5; ScrollBox1.width:=GrandPanel.Width-orgMilieu-5;
ScrollBox1.top:=GroupBox3.Top+GroupBox3.Height+5; ScrollBox1.top:=GroupBox3.Top+GroupBox3.Height+5;
ScrollBox1.Anchors:=[akTop,akRight,akBottom]; ScrollBox1.Anchors:=[akTop,akRight,akBottom];
Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5; Panel1.Left:=GroupBox1.Left+GroupBox1.Width+5;
@@ -13055,36 +13077,40 @@ begin
for index:=1 to nbreTCO do for index:=1 to nbreTCO do
begin begin
begin tcoCree:=false;
tcoCree:=false; IndexTCOCreate:=index;
IndexTCOCreate:=index; formTCO[index]:=TformTCO.Create(self);
formTCO[index]:=TformTCO.Create(self); formTCO[index].Name:='FormTCO'+intToSTR(index);
formTCO[index].Name:='FormTCO'+intToSTR(index); formTCO[index].Caption:='TCO'+intToSTR(index);
formTCO[index].Caption:='TCO'+intToSTR(index); t:=0;
repeat repeat
Application.ProcessMessages; Application.ProcessMessages;
until tcoCree; inc(t);
end; until tcoCree or (t>10);
Affiche_Fenetre_TCO(index,avecTCO); if t>10 then
end; begin
Affiche('Erreur 850 : TCO non créé',clred);
formTCO[index]:=nil;
end
else
Affiche_Fenetre_TCO(index,avecTCO);
end;
// ouvre com commandes actionneurs, car on a lu les com dans la config
// ouvre périphériques commandes actionneurs, car on a lu les com dans la config
for i:=1 to NbPeriph do for i:=1 to NbPeriph do
begin begin
//index:=tablo_acc_comUSB[i].NumAcc; // numéro d'accessoire //index:=tablo_acc_comUSB[i].NumAcc; // numéro d'accessoire
index:=com_socket(i); // comusb ou socket ? index:=com_socket(i); // comusb ou socket ?
if index=1 then if index=1 then
begin begin
if connecte_port_usb_periph(i) then if connecte_port_usb_periph(i) then Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique ouvert',clLime)
Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique ouvert',clLime)
else Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique non ouvert',clOrange); else Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' commande périphérique non ouvert',clOrange);
end; end;
if index=2 then if index=2 then
begin begin
if connecte_socket_periph(i) then if connecte_socket_periph(i) then Affiche('Socket '+Tablo_periph[i].protocole+' demande ouverture ',clLime)
Affiche('Socket '+Tablo_periph[i].protocole+' demande ouverture ',clLime) else Affiche('Socket '+Tablo_periph[i].protocole+' commande périphérique non ouvert',clOrange)
else
Affiche('Socket '+Tablo_periph[i].protocole+' commande périphérique non ouvert',clOrange)
end; end;
end; end;
@@ -13157,7 +13183,7 @@ begin
begin begin
Affiche('Positionnement des signaux',clYellow); Affiche('Positionnement des signaux',clYellow);
init_aiguillages; // initialisation des aiguillages init_aiguillages; // initialisation des aiguillages
envoi_signauxCplx; // initialisation des feux envoi_signauxCplx; // initialisation des signaux
end; end;
if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert) if not(AvecInitAiguillages) and not(ferme) and (parSocketLenz or portCommOuvert)
and AvecDemandeAiguillages then and AvecDemandeAiguillages then
@@ -13171,31 +13197,52 @@ begin
//DoubleBuffered:=true; //DoubleBuffered:=true;
{ {
aiguillage[index_aig(1)].position:=const_droit; aiguillage[index_aig(1)].position:=const_droit;
aiguillage[index_aig(2)].position:=const_droit;
aiguillage[index_aig(3)].position:=const_devie; aiguillage[index_aig(3)].position:=const_devie;
aiguillage[index_aig(4)].position:=const_devie; aiguillage[index_aig(4)].position:=const_devie;
aiguillage[index_aig(5)].position:=const_droit; aiguillage[index_aig(5)].position:=const_droit;
aiguillage[index_aig(6)].position:=const_devie; aiguillage[index_aig(6)].position:=const_devie;
aiguillage[index_aig(7)].position:=const_devie; aiguillage[index_aig(7)].position:=const_droit;
aiguillage[index_aig(8)].position:=const_devie; aiguillage[index_aig(8)].position:=const_droit;
aiguillage[index_aig(10)].position:=const_devie; aiguillage[index_aig(10)].position:=const_devie;
aiguillage[index_aig(11)].position:=const_devie; aiguillage[index_aig(11)].position:=const_droit;
aiguillage[index_aig(12)].position:=const_droit; aiguillage[index_aig(12)].position:=const_devie;
aiguillage[index_aig(18)].position:=const_devie; aiguillage[index_aig(18)].position:=const_devie;
aiguillage[index_aig(19)].position:=const_devie; aiguillage[index_aig(19)].position:=const_devie;
aiguillage[index_aig(20)].position:=const_droit; aiguillage[index_aig(20)].position:=const_devie;
aiguillage[index_aig(21)].position:=const_droit; aiguillage[index_aig(21)].position:=const_droit;
aiguillage[index_aig(26)].position:=const_droit; aiguillage[index_aig(26)].position:=const_droit;
aiguillage[index_aig(27)].position:=const_droit; aiguillage[index_aig(27)].position:=const_droit;
aiguillage[index_aig(28)].position:=const_devie; aiguillage[index_aig(28)].position:=const_devie;
aiguillage[index_aig(29)].position:=const_droit; aiguillage[index_aig(29)].position:=const_droit;
aiguillage[index_aig(30)].position:=const_droit;
aiguillage[index_aig(31)].position:=const_devie; aiguillage[index_aig(31)].position:=const_devie;
aiguillage[index_aig(25)].position:=const_droit; aiguillage[index_aig(25)].position:=const_droit;
aiguillage[index_aig(9)].position:=const_droit; aiguillage[index_aig(9)].position:=const_droit;
{zone_tco(1,519,527,1);
zone_tco(1,521,527,2);
Event_Detecteur(524,true,'A');
Event_Detecteur(524,false,'A');
Event_Detecteur(521,true,'A');
Event_Detecteur(521,false,'A');
Event_Detecteur(527,true,'A');
Event_Detecteur(527,false,'A');
Event_Detecteur(524,true,'B');
Event_Detecteur(524,false,'B');
Event_Detecteur(521,true,'B');
Event_Detecteur(521,false,'B');
}
// roulage:=true; // roulage:=true;
det_contigu(526,515,i,teq);
Affiche(intToSTR(i),clred); }
{ formatY:=2; { formatY:=2;
y 00001010000101000111010000> format 0 y 00001010000101000111010000> format 0
// y 0A0147405801CE..40 format 1 quartets renversés // y 0A0147405801CE..40 format 1 quartets renversés
@@ -13217,15 +13264,6 @@ begin
end end
else Affiche_fenetre_CDM.Enabled:=false; else Affiche_fenetre_CDM.Enabled:=false;
{ With FenRich do
begin
ReadOnly:=false;
clear;
Affiche('',clYellow);
PasteFromClipboard;
SetFocus;
ReadOnly:=true;
end; }
//Affiche(GetMACAddress,clred); //Affiche(GetMACAddress,clred);
formPrinc.left:=-1000; formPrinc.left:=-1000;
ConfCellTCO:=false; ConfCellTCO:=false;
@@ -13430,8 +13468,8 @@ begin
testBit(a,vert_cli) or testbit(a,blanc_cli) testBit(a,vert_cli) or testbit(a,blanc_cli)
else else
begin begin
combine:=a and $fc00; // signal belge
faire:=testBit(combine,clignote); faire:=testBit(a,clignote);
end; end;
if faire then if faire then
begin begin
@@ -13935,6 +13973,7 @@ begin
model:=aiguillage[i].modele ; model:=aiguillage[i].modele ;
if (model<>rien) then if (model<>rien) then
begin begin
if model<>crois then if model<>crois then
begin begin
s:='Aiguillage '+IntToSTR(aiguillage[i].Adresse)+' : '; s:='Aiguillage '+IntToSTR(aiguillage[i].Adresse)+' : ';
@@ -13955,6 +13994,7 @@ begin
end; end;
if (model=Crois) then s:='Croisement '+IntToSTR(aiguillage[i].Adresse); if (model=Crois) then s:='Croisement '+IntToSTR(aiguillage[i].Adresse);
r:=aiguillage[i].AdrTrain; r:=aiguillage[i].AdrTrain;
if r<>0 then s:=s+': réservé par train @'+intToSTR(r); if r<>0 then s:=s+': réservé par train @'+intToSTR(r);
if s<>'' then Affiche(s,clWhite); if s<>'' then Affiche(s,clWhite);
@@ -15111,7 +15151,7 @@ end;
procedure TFormPrinc.Codificationdesactionneurs1Click(Sender: TObject); procedure TFormPrinc.Codificationdesactionneurs1Click(Sender: TObject);
var i,typ,adract,etatAct,fonction,v,acc,sortie : integer; var i,typ,adract,etatAct,fonction,v,acc,sortie : integer;
loc,act,son : boolean; loc,act,son,periph : boolean;
s,s2 : string; s,s2 : string;
begin begin
if (maxTablo_act=0) and (NbrePN=0) then if (maxTablo_act=0) and (NbrePN=0) then
@@ -15133,6 +15173,7 @@ begin
loc:=Tablo_actionneur[i].loco; loc:=Tablo_actionneur[i].loco;
act:=Tablo_actionneur[i].act; act:=Tablo_actionneur[i].act;
son:=Tablo_actionneur[i].son; son:=Tablo_actionneur[i].son;
periph:=Tablo_actionneur[i].periph;
typ:=Tablo_actionneur[i].typdeclenche; typ:=Tablo_actionneur[i].typdeclenche;
if typ=3 then s:='Mem '+intToSTR(adrAct)+' '+inttostr(Tablo_actionneur[i].Adresse2); if typ=3 then s:='Mem '+intToSTR(adrAct)+' '+inttostr(Tablo_actionneur[i].Adresse2);
@@ -15146,9 +15187,12 @@ begin
s:='Accessoire Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+' Adresse='+IntToSTR(acc)+ s:='Accessoire Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+' Adresse='+IntToSTR(acc)+
' sortie='+intToSTR(sortie); ' sortie='+intToSTR(sortie);
if son then if son then
s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+ s:='Son Déclencheur='+s+' :'+intToSTR(etatAct)+' TrainDécl='+s2+
' Fichier:'+Tablo_actionneur[i].FichierSon; ' Fichier:'+Tablo_actionneur[i].FichierSon;
if periph then
s:='Périphérique Déclencheur='+s;
Affiche(s,clYellow); Affiche(s,clYellow);
end; end;
@@ -16824,7 +16868,7 @@ end;
procedure TFormPrinc.Affichagenormal1Click(Sender: TObject); procedure TFormPrinc.Affichagenormal1Click(Sender: TObject);
begin begin
//FenRich.Width:=panel2.Width div 2; //FenRich.Width:=panel2.Width div 2;
FenRich.Width:=panel2.Width-Panel1.Width-GroupBox1.Width-25; FenRich.Width:=GrandPanel.Width-Panel1.Width-GroupBox1.Width-25;
splitterV.Left:=FenRich.left+FenRich.Width-5; splitterV.Left:=FenRich.left+FenRich.Width-5;
positionne_elements(splitterV.Left); positionne_elements(splitterV.Left);
end; end;
@@ -16852,9 +16896,7 @@ begin
end; end;
procedure TFormPrinc.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); procedure TFormPrinc.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);
var var RectForText: TRect;
RectForText: TRect;
i : integer;
begin begin
if (Panel = StatusBar.Panels[3]) then if (Panel = StatusBar.Panels[3]) then
begin begin
+2 -2
View File
@@ -1,6 +1,6 @@
object FormTCO: TFormTCO object FormTCO: TFormTCO
Left = 108 Left = 14
Top = 119 Top = 171
Width = 1212 Width = 1212
Height = 580 Height = 580
VertScrollBar.Visible = False VertScrollBar.Visible = False
+208 -207
View File
File diff suppressed because it is too large Load Diff
+7 -6
View File
@@ -25,7 +25,7 @@ var
verifVersion,notificationVersion : boolean; verifVersion,notificationVersion : boolean;
date_creation,nombre_tel : string; date_creation,nombre_tel : string;
Const Version='8.25'; // sert à la comparaison de la version publiée Const Version='8.26'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
function GetCurrentProcessEnvVar(const VariableName: string): string; function GetCurrentProcessEnvVar(const VariableName: string): string;
@@ -228,12 +228,12 @@ begin
//description:=utf8Decode(description); //description:=utf8Decode(description);
i:=1 ; j:=1; i:=1 ; j:=1;
// couper en chaînes // couper en chaînes
while j<>0 do repeat
begin
j:=pos('\r',description); j:=pos('\r',description);
if j<>0 then if j<>0 then
begin begin
comm[i]:=copy(description,1,j-1); comm[i]:=copy(description,1,j-1);
inc(i); inc(i);
delete(description,1,j+1); delete(description,1,j+1);
end; end;
@@ -244,10 +244,11 @@ begin
delete(description,j,2); delete(description,j,2);
end; end;
end; until j=0;
//
ncomm:=i;
comm[i]:=supprime_anti(description); comm[i]:=supprime_anti(description);
ncomm:=i-1;
end; end;
end; end;
+2 -2
View File
@@ -199,7 +199,7 @@ version 8.23 : Correction bug si changement aspect du signal.
version 8.24 : Traitement de cas particuliers de l'importation de réseaux CDM rail. version 8.24 : Traitement de cas particuliers de l'importation de réseaux CDM rail.
version 8.25 : Intégration d'un outil graphique de sélection dans le TCO. version 8.25 : Intégration d'un outil graphique de sélection dans le TCO.
Intégration d'un menu dans la fenêtre du TCO. Intégration d'un menu dans la fenêtre du TCO.
version 8.26 : Amélioration de l'affichage du suivi des trains dans les TCOs.
Restitution du Zoom du TCO lors de sa sauvegarde.