This commit is contained in:
f1iwq2
2024-01-07 10:49:38 +01:00
parent 51c1334fdc
commit 5562e9c899
22 changed files with 1400 additions and 820 deletions
+2 -2
View File
@@ -14,8 +14,8 @@
-$N+ -$N+
-$O- -$O-
-$P+ -$P+
-$Q- -$Q+
-$R- -$R+
-$S- -$S-
-$T- -$T-
-$U- -$U-
+2 -2
View File
@@ -17,8 +17,8 @@ M=0
N=1 N=1
O=0 O=0
P=1 P=1
Q=0 Q=1
R=0 R=1
S=0 S=0
T=0 T=0
U=0 U=0
+44 -44
View File
@@ -1,8 +1,8 @@
Start Length Name Class Start Length Name Class
0001:00000000 0019EF04H .text CODE 0001:00000000 001A20F8H .text CODE
0002:00000000 00002C2CH .data DATA 0002:00000000 00002C7CH .data DATA
0002:00002C2C 045DDFF1H .bss BSS 0002:00002C7C 045DE035H .bss BSS
Detailed map of segments Detailed map of segments
@@ -76,29 +76,29 @@ Detailed map of segments
0001:00095228 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9 0001:00095228 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
0001:00095350 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9 0001:00095350 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
0001:00098DC8 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9 0001:00098DC8 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
0001:000996B4 00000598 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9 0001:000996B4 000005A0 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
0001:00099C4C 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9 0001:00099C54 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
0001:00099C8C 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9 0001:00099C94 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
0001:00099CC4 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9 0001:00099CCC 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
0001:0009A6DC 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9 0001:0009A6E4 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
0001:0009C7E4 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9 0001:0009C7EC 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9
0001:000A5A30 00001748 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9 0001:000A5A38 00001980 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
0001:000A7178 000004D0 C=CODE S=.text G=(none) M=Importation ACBP=A9 0001:000A73B8 000004D0 C=CODE S=.text G=(none) M=Importation ACBP=A9
0001:000A7648 00013ACC C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9 0001:000A7888 00013ACC C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
0001:000BB114 000026F4 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9 0001:000BB354 00002CA4 C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
0001:000BD808 00000D10 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9 0001:000BDFF8 00000D10 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
0001:000BE518 00003A0C C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9 0001:000BED08 00004DD8 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000C1F24 000452C0 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9 0001:000C3AE0 00045748 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:001071E4 000030E4 C=CODE S=.text G=(none) M=UnitSR ACBP=A9 0001:00109228 00003160 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:0010A2C8 000027D4 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9 0001:0010C388 00002880 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:0010CA9C 00001833 C=CODE S=.text G=(none) M=verif_version ACBP=A9 0001:0010EC08 000431B4 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:0010E2D0 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9 0001:00151DBC 00001833 C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:0010F4A0 00042A80 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9 0001:001535F0 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:00151F20 00002B44 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9 0001:001547C0 00002BC8 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:00154A64 00000D2C C=CODE S=.text G=(none) M=UnitSimule ACBP=A9 0001:00157388 00000D2C C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:00155790 00002584 C=CODE S=.text G=(none) M=Unitplace ACBP=A9 0001:001580B4 00002604 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
0001:00157D14 00046D60 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9 0001:0015A6B8 000475B0 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
0001:0019EA74 0000048D C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9 0001:001A1C68 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:00001250 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9 0002:00001250 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
0002:00001280 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9 0002:00001280 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
0002:000012AC 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9 0002:000012AC 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
0002:00001BB4 00000058 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9 0002:00001BB4 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00001C0C 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9 0002:00001C34 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
0002:00001C18 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9 0002:00001C40 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
0002:00001C1C 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9 0002:00001C44 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
0002:00001C24 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9 0002:00001C4C 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
0002:00001CF8 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9 0002:00001D20 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:00015724 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9 0002:00015724 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigTCO ACBP=A9
0002:00015738 00000014 C=BSS S=.bss G=DGROUP M=Unit_Pilote_aig ACBP=A9 0002:00015738 00000014 C=BSS S=.bss G=DGROUP M=Unit_Pilote_aig ACBP=A9
0002:0001574C 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9 0002:0001574C 00000014 C=BSS S=.bss G=DGROUP M=UnitConfigCellTCO ACBP=A9
0002:00015760 004186C8 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9 0002:00015760 00418704 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:0042DE28 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9 0002:0042DE64 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
0002:0042DE38 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9 0002:0042DE74 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
0002:0042DE4C 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9 0002:0042DE88 000004FC C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:0042DE64 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9 0002:0042E384 00000018 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:0042DE68 000004FC C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9 0002:0042E39C 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:0042E364 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9 0002:0042E3A0 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
0002:0042E390 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9 0002:0042E3CC 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:0042E39C 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9 0002:0042E3D8 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
0002:0042E3A4 041B2C4C C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9 0002:0042E3E0 041B2C54 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
Bound resource files Bound resource files
@@ -237,8 +237,8 @@ UnitConfigCellTCO.dfm
UnitTCO.dfm UnitTCO.dfm
UnitSR.dfm UnitSR.dfm
UnitCDF.dfm UnitCDF.dfm
verif_version.dfm
UnitConfig.dfm UnitConfig.dfm
verif_version.dfm
UnitDebug.dfm UnitDebug.dfm
UnitSimule.dfm UnitSimule.dfm
Unitplace.dfm Unitplace.dfm
@@ -247,4 +247,4 @@ Signaux_complexes_GL.res
Signaux_complexes_GL.drf Signaux_complexes_GL.drf
Program entry point at 0001:0019ED84 Program entry point at 0001:001A1F78
+1
View File
@@ -14,6 +14,7 @@ object FormCDF: TFormCDF
OldCreateOrder = False OldCreateOrder = False
OnActivate = FormActivate OnActivate = FormActivate
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Label20: TLabel object Label20: TLabel
+25 -1
View File
@@ -81,6 +81,7 @@ type
procedure EditNAdressesChange(Sender: TObject); procedure EditNAdressesChange(Sender: TObject);
procedure BitBtnOkClick(Sender: TObject); procedure BitBtnOkClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private private
{ Déclarations privées } { Déclarations privées }
public public
@@ -95,12 +96,28 @@ var
{$R *.dfm} {$R *.dfm}
procedure dessine_feu_CDF; procedure dessine_feu_CDF;
procedure couleurs_cdf;
implementation implementation
procedure couleurs_cdf;
var i : integer;
c : tComponent;
begin
if sombre then with formCDF do
begin
Color:=Couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,clWhite);
end;
end;
end;
procedure TFormCDF.FormActivate(Sender: TObject); procedure TFormCDF.FormActivate(Sender: TObject);
var erreur : integer; var i,erreur : integer;
c : tcomponent;
begin begin
Val(FormConfig.EditAdrSig.text,Adresse,erreur); Val(FormConfig.EditAdrSig.text,Adresse,erreur);
index:=index_Signal(Adresse); index:=index_Signal(Adresse);
@@ -170,6 +187,8 @@ begin
Edit19.Text:=intToSTR(Signaux[index].SR[19].sortie1); Edit19.Text:=intToSTR(Signaux[index].SR[19].sortie1);
editNadresses.text:=intToSTR(Signaux[index].NA); editNadresses.text:=intToSTR(Signaux[index].NA);
end; end;
procedure dessine_feu_CDF; procedure dessine_feu_CDF;
@@ -466,4 +485,9 @@ begin
dessineCDF:=false; dessineCDF:=false;
end; end;
procedure TFormCDF.FormCreate(Sender: TObject);
begin
couleurs_cdf;
end;
end. end.
+67 -38
View File
@@ -1,6 +1,6 @@
object FormConfig: TFormConfig object FormConfig: TFormConfig
Left = 251 Left = 238
Top = 157 Top = 145
Hint = 'Modifie la configuration selon les s'#233'lections choisies' Hint = 'Modifie la configuration selon les s'#233'lections choisies'
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale' Caption = 'Configuration g'#233'n'#233'rale'
@@ -668,7 +668,7 @@ object FormConfig: TFormConfig
Top = 8 Top = 8
Width = 633 Width = 633
Height = 505 Height = 505
ActivePage = TabSheetAig ActivePage = TabSheetPeriph
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -11 Font.Height = -11
@@ -681,7 +681,7 @@ object FormConfig: TFormConfig
Caption = 'CDM Rail' Caption = 'CDM Rail'
object Label36: TLabel object Label36: TLabel
Left = 24 Left = 24
Top = 448 Top = 456
Width = 369 Width = 369
Height = 13 Height = 13
Caption = Caption =
@@ -1032,49 +1032,49 @@ object FormConfig: TFormConfig
end end
object GroupBox15: TGroupBox object GroupBox15: TGroupBox
Left = 312 Left = 312
Top = 280 Top = 272
Width = 297 Width = 297
Height = 161 Height = 177
Caption = 'Divers' Caption = 'Divers'
TabOrder = 5 TabOrder = 5
object Label31: TLabel object Label31: TLabel
Left = 8 Left = 8
Top = 24 Top = 22
Width = 204 Width = 204
Height = 13 Height = 13
Caption = 'Seuil du nombre de d'#233'tecteurs trop distants' Caption = 'Seuil du nombre de d'#233'tecteurs trop distants'
end end
object Label41: TLabel object Label41: TLabel
Left = 8 Left = 8
Top = 68 Top = 64
Width = 188 Width = 188
Height = 13 Height = 13
Caption = 'Taille de la fonte de la fen'#234'tre principale' Caption = 'Taille de la fonte de la fen'#234'tre principale'
end end
object Label44: TLabel object Label44: TLabel
Left = 8 Left = 8
Top = 45 Top = 43
Width = 223 Width = 223
Height = 13 Height = 13
Caption = 'Nombre de cantons pr'#233'sence train avant signal' Caption = 'Nombre de cantons pr'#233'sence train avant signal'
end end
object Label55: TLabel object Label55: TLabel
Left = 8 Left = 8
Top = 90 Top = 86
Width = 32 Width = 32
Height = 13 Height = 13
Caption = 'Debug' Caption = 'Debug'
end end
object Label28: TLabel object Label28: TLabel
Left = 8 Left = 8
Top = 136 Top = 110
Width = 182 Width = 182
Height = 13 Height = 13
Caption = 'Port du serveur de Signaux Complexes' Caption = 'Port du serveur de Signaux Complexes'
end end
object EditNbDetDist: TEdit object EditNbDetDist: TEdit
Left = 240 Left = 240
Top = 20 Top = 18
Width = 25 Width = 25
Height = 21 Height = 21
ParentShowHint = False ParentShowHint = False
@@ -1083,7 +1083,7 @@ object FormConfig: TFormConfig
end end
object EditFonte: TEdit object EditFonte: TEdit
Left = 240 Left = 240
Top = 64 Top = 62
Width = 25 Width = 25
Height = 21 Height = 21
ParentShowHint = False ParentShowHint = False
@@ -1092,7 +1092,7 @@ object FormConfig: TFormConfig
end end
object EditNbCantons: TEdit object EditNbCantons: TEdit
Left = 240 Left = 240
Top = 41 Top = 39
Width = 25 Width = 25
Height = 21 Height = 21
Hint = Hint =
@@ -1104,7 +1104,7 @@ object FormConfig: TFormConfig
end end
object EditDebug: TEdit object EditDebug: TEdit
Left = 240 Left = 240
Top = 88 Top = 86
Width = 25 Width = 25
Height = 21 Height = 21
Hint = Hint =
@@ -1116,7 +1116,7 @@ object FormConfig: TFormConfig
end end
object CheckBoxVerifXpressNet: TCheckBox object CheckBoxVerifXpressNet: TCheckBox
Left = 8 Left = 8
Top = 108 Top = 150
Width = 233 Width = 233
Height = 17 Height = 17
Hint = Hint =
@@ -1130,8 +1130,8 @@ object FormConfig: TFormConfig
OnClick = CheckBoxVerifXpressNetClick OnClick = CheckBoxVerifXpressNetClick
end end
object EditPortServeur: TEdit object EditPortServeur: TEdit
Left = 224 Left = 216
Top = 130 Top = 110
Width = 49 Width = 49
Height = 21 Height = 21
Hint = 'Port de 1 '#224' 65535' Hint = 'Port de 1 '#224' 65535'
@@ -1141,9 +1141,33 @@ object FormConfig: TFormConfig
OnChange = EditPortServeurChange OnChange = EditPortServeurChange
OnExit = EditPortServeurExit OnExit = EditPortServeurExit
end end
object CheckBoxSombre: TCheckBox
Left = 8
Top = 132
Width = 209
Height = 17
Hint =
'Red'#233'marrer signaux_complexes pour prise en compte apr'#232's changeme' +
'nt'
Caption = 'Affichage mode sombre'
ParentShowHint = False
ShowHint = True
TabOrder = 6
end
object ButtonCouleur: TButton
Left = 144
Top = 130
Width = 25
Height = 17
Caption = '...'
ParentShowHint = False
ShowHint = True
TabOrder = 7
OnClick = ButtonCouleurClick
end
end end
object ButtonPFCDM: TButton object ButtonPFCDM: TButton
Left = 40 Left = 32
Top = 416 Top = 416
Width = 241 Width = 241
Height = 25 Height = 25
@@ -1448,7 +1472,7 @@ object FormConfig: TFormConfig
end end
object GroupBox22: TGroupBox object GroupBox22: TGroupBox
Left = 312 Left = 312
Top = 376 Top = 368
Width = 297 Width = 297
Height = 65 Height = 65
Caption = 'Protocole de connexion '#224' la centrale ou '#224' l'#39'interface' Caption = 'Protocole de connexion '#224' la centrale ou '#224' l'#39'interface'
@@ -1478,14 +1502,14 @@ object FormConfig: TFormConfig
end end
object GroupBox25: TGroupBox object GroupBox25: TGroupBox
Left = 312 Left = 312
Top = 320 Top = 304
Width = 297 Width = 297
Height = 49 Height = 57
Caption = 'Divers' Caption = 'Divers'
TabOrder = 9 TabOrder = 9
object Label58: TLabel object Label58: TLabel
Left = 24 Left = 16
Top = 24 Top = 20
Width = 155 Width = 155
Height = 13 Height = 13
Caption = 'Filtrage des d'#233'tecteurs (x100 ms)' Caption = 'Filtrage des d'#233'tecteurs (x100 ms)'
@@ -2267,7 +2291,7 @@ object FormConfig: TFormConfig
end end
object Label24: TLabel object Label24: TLabel
Left = 104 Left = 104
Top = 120 Top = 124
Width = 8 Width = 8
Height = 13 Height = 13
Caption = '1' Caption = '1'
@@ -2280,7 +2304,7 @@ object FormConfig: TFormConfig
end end
object Label25: TLabel object Label25: TLabel
Left = 104 Left = 104
Top = 144 Top = 148
Width = 8 Width = 8
Height = 13 Height = 13
Caption = '2' Caption = '2'
@@ -2293,7 +2317,7 @@ object FormConfig: TFormConfig
end end
object Label26: TLabel object Label26: TLabel
Left = 104 Left = 104
Top = 168 Top = 172
Width = 8 Width = 8
Height = 13 Height = 13
Caption = '3' Caption = '3'
@@ -2306,7 +2330,7 @@ object FormConfig: TFormConfig
end end
object Label27: TLabel object Label27: TLabel
Left = 104 Left = 104
Top = 192 Top = 196
Width = 8 Width = 8
Height = 13 Height = 13
Caption = '4' Caption = '4'
@@ -2381,7 +2405,7 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 1 TabOrder = 1
OnChange = ComboBoxDecChange OnChange = ComboBoxDecChange
end end
@@ -2488,7 +2512,7 @@ object FormConfig: TFormConfig
Width = 137 Width = 137
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 2 TabOrder = 2
OnChange = ComboBoxAspChange OnChange = ComboBoxAspChange
end end
@@ -2570,9 +2594,9 @@ object FormConfig: TFormConfig
end end
object CheckBoxContreVoie: TCheckBox object CheckBoxContreVoie: TCheckBox
Left = 120 Left = 120
Top = 294 Top = 296
Width = 137 Width = 137
Height = 25 Height = 17
Hint = 'Signal clignotant' Hint = 'Signal clignotant'
Caption = 'Signal de contrevoie' Caption = 'Signal de contrevoie'
ParentShowHint = False ParentShowHint = False
@@ -2781,7 +2805,7 @@ object FormConfig: TFormConfig
Top = 56 Top = 56
Width = 193 Width = 193
Height = 21 Height = 21
ItemHeight = 0 ItemHeight = 13
TabOrder = 0 TabOrder = 0
OnChange = ComboBoxDecodeurPersoChange OnChange = ComboBoxDecodeurPersoChange
end end
@@ -2800,7 +2824,7 @@ object FormConfig: TFormConfig
Width = 145 Width = 145
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 2 TabOrder = 2
OnChange = ComboBoxNationChange OnChange = ComboBoxNationChange
end end
@@ -2846,7 +2870,7 @@ object FormConfig: TFormConfig
Width = 193 Width = 193
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
TabOrder = 6 TabOrder = 6
OnChange = ComboBoxDecCdeChange OnChange = ComboBoxDecCdeChange
end end
@@ -3231,7 +3255,7 @@ object FormConfig: TFormConfig
Height = 21 Height = 21
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"' Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 6 TabOrder = 6
@@ -3412,7 +3436,7 @@ object FormConfig: TFormConfig
Height = 21 Height = 21
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"' Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
Style = csDropDownList Style = csDropDownList
ItemHeight = 0 ItemHeight = 13
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 10 TabOrder = 10
@@ -4151,7 +4175,7 @@ object FormConfig: TFormConfig
end end
object GroupBoxDesc: TGroupBox object GroupBoxDesc: TGroupBox
Left = 280 Left = 280
Top = 80 Top = 88
Width = 329 Width = 329
Height = 129 Height = 129
Caption = 'Description du p'#233'riph'#233'rique' Caption = 'Description du p'#233'riph'#233'rique'
@@ -4254,4 +4278,9 @@ object FormConfig: TFormConfig
OnClick = outcopierentatquetexte1Click OnClick = outcopierentatquetexte1Click
end end
end end
object ColorDialogFond: TColorDialog
OnShow = ColorDialogFondShow
Left = 696
Top = 376
end
end end
+113 -14
View File
@@ -352,6 +352,9 @@ type
ButtonPFCDM: TButton; ButtonPFCDM: TButton;
CheckBoxZ21: TCheckBox; CheckBoxZ21: TCheckBox;
RadioButtonDCCpp: TRadioButton; RadioButtonDCCpp: TRadioButton;
CheckBoxSombre: TCheckBox;
ButtonCouleur: TButton;
ColorDialogFond: TColorDialog;
procedure ButtonAppliquerEtFermerClick(Sender: TObject); procedure ButtonAppliquerEtFermerClick(Sender: TObject);
procedure FormActivate(Sender: TObject); procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
@@ -533,6 +536,8 @@ type
procedure EditP1Exit(Sender: TObject); procedure EditP1Exit(Sender: TObject);
procedure EditP2Exit(Sender: TObject); procedure EditP2Exit(Sender: TObject);
procedure EditDevieS2Change(Sender: TObject); procedure EditDevieS2Change(Sender: TObject);
procedure ButtonCouleurClick(Sender: TObject);
procedure ColorDialogFondShow(Sender: TObject);
private private
{ Déclarations privées } { Déclarations privées }
@@ -551,6 +556,8 @@ const
// constantes du fichier de configuration // constantes du fichier de configuration
NomConfig='ConfigGenerale.cfg'; NomConfig='ConfigGenerale.cfg';
Debug_ch='Debug'; Debug_ch='Debug';
Sombre_ch='Mode_Sombre';
couleur_fond_ch='coul_fond';
serveurIPCDM_Touche_ch='serveurIPCDM_Touche'; serveurIPCDM_Touche_ch='serveurIPCDM_Touche';
PortServeur_ch='Port_Serveur'; PortServeur_ch='Port_Serveur';
AntiTimeoutEthLenz_ch='AntiTimeoutEthLenz'; AntiTimeoutEthLenz_ch='AntiTimeoutEthLenz';
@@ -681,6 +688,7 @@ procedure trier_detecteurs;
function decodeDCC(s : string) : string; function decodeDCC(s : string) : string;
function encode_aig(index : integer): string; function encode_aig(index : integer): string;
function Ipok(s : string) : boolean; function Ipok(s : string) : boolean;
procedure couleurs_config;
implementation implementation
@@ -1697,6 +1705,9 @@ begin
writeln(fichierN,Algo_localisation_ch+'=',Algo_localisation); writeln(fichierN,Algo_localisation_ch+'=',Algo_localisation);
writeln(fichierN,Avec_roulage_ch+'=',avecRoulage); writeln(fichierN,Avec_roulage_ch+'=',avecRoulage);
writeln(fichierN,debug_ch+'=',debug); writeln(fichierN,debug_ch+'=',debug);
if sombre then s:='1' else s:='0';
writeln(fichierN,sombre_ch+'=',s);
writeln(fichierN,couleur_fond_ch+'='+IntToHex(couleurFond,6));
if serveurIPCDM_Touche then s:='1' else s:='0'; if serveurIPCDM_Touche then s:='1' else s:='0';
writeln(fichierN,serveurIPCDM_Touche_ch+'='+s); writeln(fichierN,serveurIPCDM_Touche_ch+'='+s);
writeln(fichierN,PortServeur_ch+'=',PortServeur); writeln(fichierN,PortServeur_ch+'=',PortServeur);
@@ -2975,6 +2986,22 @@ var s,sa,SOrigine: string;
val(s,debug,erreur); val(s,debug,erreur);
end; end;
sa:=uppercase(sombre_ch)+'=';
i:=pos(sa,s);
if i=1 then
begin
delete(s,i,length(sa));
val(s,i,erreur);
sombre:=i=1;
end;
sa:=uppercase(couleur_fond_ch)+'=';
i:=pos(sa,s);
if i=1 then
begin
delete(s,i,length(sa));
val('$'+s,CouleurFond,erreur);
end;
sa:=uppercase(serveurIPCDM_Touche_ch)+'='; sa:=uppercase(serveurIPCDM_Touche_ch)+'=';
i:=pos(sa,s); i:=pos(sa,s);
@@ -3967,6 +3994,7 @@ begin
AvecDemandeAiguillages:=checkPosAig.checked; AvecDemandeAiguillages:=checkPosAig.checked;
AvecDemandeInterfaceUSB:=CheckBoxDemarUSB.checked; AvecDemandeInterfaceUSB:=CheckBoxDemarUSB.checked;
AvecDemandeInterfaceEth:=CheckBoxDemarEth.checked; AvecDemandeInterfaceEth:=CheckBoxDemarEth.checked;
sombre:=CheckBoxSombre.Checked;
protocole:=1; protocole:=1;
if RadioButtonXpress.Checked then if RadioButtonXpress.Checked then
begin begin
@@ -4029,7 +4057,7 @@ begin
Val(s,Adresse,erreur); // Adresse du signal Val(s,Adresse,erreur); // Adresse du signal
if adresse=0 then exit; if adresse=0 then exit;
FormConfig.EditAdrSig.Color:=clWindow; if sombre then Formconfig.editAdrSig.Color:=couleurfond else FormConfig.EditAdrSig.Color:=clWindow;
aff_champs_sig_feux(index); // affiche les champs du feu aff_champs_sig_feux(index); // affiche les champs du feu
clicliste:=false; clicliste:=false;
@@ -4128,6 +4156,7 @@ begin
CheckPosAig.checked:=AvecDemandeAiguillages; CheckPosAig.checked:=AvecDemandeAiguillages;
CheckBoxDemarUSB.checked:=AvecDemandeInterfaceUSB; CheckBoxDemarUSB.checked:=AvecDemandeInterfaceUSB;
CheckBoxDemarEth.checked:=AvecDemandeInterfaceEth; CheckBoxDemarEth.checked:=AvecDemandeInterfaceEth;
CheckBoxSombre.Checked:=sombre;
RadioButtonXpress.Checked:=protocole=1; RadioButtonXpress.Checked:=protocole=1;
RadioButtonDcc.Checked:=protocole=2; RadioButtonDcc.Checked:=protocole=2;
@@ -4541,6 +4570,52 @@ begin
end; end;
end; end;
procedure couleurs_config;
var i : integer;
c : tcomponent;
begin
if sombre then
with formconfig do
begin
Color:=Couleurfond;
// page principale
for i:=0 to formconfig.ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurfond,couleurTexte);
end;
// onglet cdmrail
for i:=0 to TabSheetCDM.ComponentCount-1 do
begin
c:=TabSheetCDM.Components[i];
Affiche(c.Name,clred);
composant(c,couleurfond,couleurTexte);
end;
// onglet décodeurs
for i:=0 to TabSheetDecodeurs.ComponentCount-1 do
begin
c:=TabSheetDecodeurs.Components[i];
composant(c,couleurfond,couleurTexte);
end;
// PN
for i:=0 to GroupBoxPNA.ComponentCount-1 do
begin
c:=GroupBoxPNA.Components[i];
composant(c,couleurfond,couleurTexte);
end;
// périphériques
for i:=0 to TabSheetPeriph.ComponentCount-1 do
begin
c:=TabSheetPeriph.Components[i];
composant(c,couleurfond,couleurTexte);
end;
end;
end;
// on change textBoxCde des décodeurs // on change textBoxCde des décodeurs
procedure TformConfig.tbCde_onchange(sender : Tobject); procedure TformConfig.tbCde_onchange(sender : Tobject);
var tb : tEdit; var tb : tEdit;
@@ -4559,10 +4634,17 @@ end;
procedure TFormConfig.FormCreate(Sender: TObject); procedure TFormConfig.FormCreate(Sender: TObject);
var i,j,y,l,LongestLength,PixelLength : integer; var i,j,y,l,LongestLength,PixelLength : integer;
s,LongestString : string; cs,s,LongestString : string;
begin begin
if debug=1 then Affiche('Création fenêtre config',clLime); if debug=1 then Affiche('Création fenêtre config',clLime);
clicListe:=true; clicListe:=true;
cs:='ColorA='+IntToHex(couleurFond,6); // pour rajouter aux couleurs personnalisées de la fenetre couleur
colorDialogFond.CustomColors.Add(cs);
ButtonCouleur.Hint:='Change la couleur de fond de toutes les fenêtres de Signaux_Complexes.'+#13+
'Utilisez la couleur personnalisée n°1 et après modification,'+#13+
'cliquer sur "ajouter aux couleurs personnalisées" qui seule sera sauvegardée';
Affiche_avert:=false; Affiche_avert:=false;
if affevt then affiche('FormConfig create',clLime); if affevt then affiche('FormConfig create',clLime);
PageControl.ActivePage:=Formconfig.TabSheetCDM; // force le premier onglet sur la page PageControl.ActivePage:=Formconfig.TabSheetCDM; // force le premier onglet sur la page
@@ -4593,7 +4675,6 @@ begin
name:='Ligne'+intToSTR(i); name:='Ligne'+intToSTR(i);
left:=5;width:=350; top:=y;height:=42; left:=5;width:=350; top:=y;height:=42;
brush.Style:=bsSolid; brush.Style:=bsSolid;
brush.Color:=clBtnFace;
pen.color:=clBlack; pen.color:=clBlack;
shape:=stRectangle; shape:=stRectangle;
parent:=TabSheetDecodeurs; parent:=TabSheetDecodeurs;
@@ -4690,6 +4771,7 @@ begin
ShowHint:=false; ShowHint:=false;
visible:=false; visible:=false;
end; end;
TextBoxCde[i]:=Tedit.Create(FormConfig.TabSheetDecodeurs); TextBoxCde[i]:=Tedit.Create(FormConfig.TabSheetDecodeurs);
with TextBoxCde[i] do with TextBoxCde[i] do
begin begin
@@ -5350,7 +5432,7 @@ begin
end; end;
// composants dynamiques car on ne peut plus ajouter de composants en mode conception! // composants dynamiques car on ne peut plus ajouter de composants en mode conception!
// onglet accessoires COM/USB/Socket // onglet périphériques COM/USB/Socket
//--------- groupbox //--------- groupbox
gp1:=TgroupBox.Create(FormConfig.TabSheetPeriph); gp1:=TgroupBox.Create(FormConfig.TabSheetPeriph);
with gp1 do with gp1 do
@@ -5447,7 +5529,6 @@ begin
caption:='Périphérique'; caption:='Périphérique';
parent:=FormConfig.TabSheetPeriph; parent:=FormConfig.TabSheetPeriph;
name:='LabelNumeroP'; name:='LabelNumeroP';
end; end;
EditPortCde:=TEdit.Create(FormConfig.TabSheetPeriph); EditPortCde:=TEdit.Create(FormConfig.TabSheetPeriph);
@@ -5458,7 +5539,7 @@ begin
text:=''; text:='';
parent:=GroupBoxDesc; parent:=GroupBoxDesc;
hint:='Port COM/USB : COMX:vitesse,parité,nombre de bits de données, nombre de bits de stop '+#13+ hint:='Port COM/USB : COMX:vitesse,parité,nombre de bits de données, nombre de bits de stop '+#13+
'ou'+#13+#13+ 'ou'+#13+
'Socket : AdresseIPV4:port'; 'Socket : AdresseIPV4:port';
ShowHint:=true; ShowHint:=true;
OnChange:=formconfig.tb_onChange; OnChange:=formconfig.tb_onChange;
@@ -5517,6 +5598,7 @@ begin
ligneClicAccPeriph:=-1; ligneClicAccPeriph:=-1;
AncligneClicAccPeriph:=-1; AncligneClicAccPeriph:=-1;
couleurs_config;
end; end;
@@ -5635,7 +5717,6 @@ var Adresse,Adr2,ind,id2,erreur,position : integer;
tjd,tri,tjs,croi : boolean; tjd,tri,tjs,croi : boolean;
s,ss : string; s,ss : string;
i : integer; i : integer;
B : char;
begin begin
if index<1 then exit; if index<1 then exit;
s:=Uppercase(formConfig.ListBoxAig.items[index-1]); s:=Uppercase(formConfig.ListBoxAig.items[index-1]);
@@ -5650,6 +5731,7 @@ begin
ss:=InttoSTr(Adresse); ss:=InttoSTr(Adresse);
formconfig.EditAdrAig.text:= ss; formconfig.EditAdrAig.text:= ss;
if sombre then formConfig.editAdrAig.Color:=couleurfond else FormConfig.EditAdrAig.Color:=clWindow;
tjd:=pos('TJD',s)<>0 ; tjd:=pos('TJD',s)<>0 ;
tri:=pos('TRI',s)<>0 ; tri:=pos('TRI',s)<>0 ;
@@ -5657,7 +5739,6 @@ begin
croi:=pos('CROI',s)<>0 ; croi:=pos('CROI',s)<>0 ;
with formconfig do with formconfig do
begin begin
EditAdrAig.Color:=clWindow;
ImageAffiche.Picture.Bitmap.TransparentMode:=tmAuto; ImageAffiche.Picture.Bitmap.TransparentMode:=tmAuto;
ImageAffiche.Picture.Bitmap.TransparentColor:=clblue; ImageAffiche.Picture.Bitmap.TransparentColor:=clblue;
ImageAffiche.Transparent:=true; ImageAffiche.Transparent:=true;
@@ -6744,7 +6825,8 @@ begin
with formConfig do with formConfig do
begin begin
LabelInfo.caption:=''; LabelInfo.caption:='';
EditAdrAig.Text:='';EditAigTriple.Text:=''; EditAdrAig.Text:='';
EditAigTriple.Text:='';
Edit_HG.text:=''; Edit_HG.text:='';
editDevie_HD.Text:=''; editDevie_HD.Text:='';
editDroit_BD.Text:=''; editDroit_BD.Text:='';
@@ -8123,11 +8205,11 @@ begin
if (aiguillage[Index_Aig(i)].modele<>rien) then if (aiguillage[Index_Aig(i)].modele<>rien) then
begin begin
EditAdrAig.Color:=clred; EditAdrAig.Color:=clred;
LabelInfo.caption:='aiguillage '+IntToSTR(i)+' existe déja - ne sera pas écrasé' ; LabelInfo.caption:='aiguillage '+IntToSTR(i)+' existe déjà - ne sera pas écrasé' ;
exit; exit;
end; end;
EditAdrAig.Color:=clWindow; if sombre then editAdrAig.Color:=couleurfond else EditAdrAig.Color:=clWindow;
LabelInfo.caption:=' '; LabelInfo.caption:=' ';
if (modele=aig) or (modele=triple) or (modele=crois) then if (modele=aig) or (modele=triple) or (modele=crois) then
@@ -12746,6 +12828,7 @@ begin
ligneClicSig:=itemindex; ligneClicSig:=itemindex;
clicListeSignal(ligneClicSig+1); clicListeSignal(ligneClicSig+1);
end; end;
clicliste:=false;
end; end;
procedure TFormConfig.ListBoxSigKeyDown(Sender: TObject; var Key: Word; procedure TFormConfig.ListBoxSigKeyDown(Sender: TObject; var Key: Word;
@@ -13052,7 +13135,7 @@ begin
for i:=1 to NbPeriph do for i:=1 to NbPeriph do
begin begin
if com_socket(i)=1 then // si port comusb if com_socket(i)=1 then // si port com$usb
begin begin
if connecte_port_usb_periph(i) then if connecte_port_usb_periph(i) then
Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' périphérique ouvert',clLime) Affiche('COM'+intToSTR(Tablo_periph[i].numcom)+' périphérique ouvert',clLime)
@@ -13471,7 +13554,7 @@ begin
LabelInfo.caption:='Signal '+intToSTR(i)+' existe, il ne sera pas écrasé';exit; LabelInfo.caption:='Signal '+intToSTR(i)+' existe, il ne sera pas écrasé';exit;
end; end;
EditAdrSig.Color:=clWindow; if sombre then editAdrSig.Color:=couleurfond else EditAdrSig.Color:=clWindow;
LabelInfo.caption:=' '; LabelInfo.caption:=' ';
Signaux[ligneClicSig+1].adresse:=i; Signaux[ligneClicSig+1].adresse:=i;
tablo_index_signal[i]:=ligneClicSig+1; tablo_index_signal[i]:=ligneClicSig+1;
@@ -13495,6 +13578,22 @@ procedure TFormConfig.EditP2Exit(Sender: TObject);
end; end;
end. procedure TFormConfig.ButtonCouleurClick(Sender: TObject);
begin
if colorDialogFond.execute then
begin
Couleurfond:=colorDialogFond.Color;
Maj_couleurs;
end;
end;
procedure TFormConfig.ColorDialogFondShow(Sender: TObject);
var s : string;
begin
s:='Couleur de fond de Signaux_complexes';
SetWindowText(ColorDialogFond.Handle,pchar(s));
end;
end.
+13
View File
@@ -453,6 +453,8 @@ begin
end; end;
procedure TFormConfCellTCO.FormCreate(Sender: TObject); procedure TFormConfCellTCO.FormCreate(Sender: TObject);
var i : integer;
c : tcomponent;
begin begin
// fenetre toujours dessus // fenetre toujours dessus
if affevt then Affiche('FormConfCellTCO create',clyellow); if affevt then Affiche('FormConfCellTCO create',clyellow);
@@ -463,6 +465,17 @@ begin
ImagePaletteCC.Width:=iconeX; ImagePaletteCC.Width:=iconeX;
ImagePaletteCC.Height:=iconeY; ImagePaletteCC.Height:=iconeY;
RadioGroupSel.itemIndex:=0; RadioGroupSel.itemIndex:=0;
if sombre then
begin
Color:=Couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end;
// dessine les composants - non utilisé // dessine les composants - non utilisé
{ {
i:=1; i:=1;
+26 -13
View File
@@ -212,24 +212,21 @@ object FormConfigTCO: TFormConfigTCO
Width = 353 Width = 353
Height = 57 Height = 57
Caption = 'Graphisme de tous les TCOs' Caption = 'Graphisme de tous les TCOs'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 4 TabOrder = 4
end end
object RadioButtonLignes: TRadioButton
Left = 376
Top = 312
Width = 113
Height = 17
Caption = 'Lignes bris'#233'es'
TabOrder = 5
OnClick = RadioButtonLignesClick
end
object RadioButtonCourbes: TRadioButton object RadioButtonCourbes: TRadioButton
Left = 376 Left = 392
Top = 328 Top = 328
Width = 113 Width = 113
Height = 17 Height = 17
Caption = 'Lignes courbes' Caption = 'Lignes courbes'
TabOrder = 6 TabOrder = 5
OnClick = RadioButtonCourbesClick OnClick = RadioButtonCourbesClick
end end
object GroupBox3: TGroupBox object GroupBox3: TGroupBox
@@ -238,7 +235,7 @@ object FormConfigTCO: TFormConfigTCO
Width = 289 Width = 289
Height = 89 Height = 89
Caption = 'Configuration du TCO ' Caption = 'Configuration du TCO '
TabOrder = 7 TabOrder = 6
object Label3: TLabel object Label3: TLabel
Left = 16 Left = 16
Top = 20 Top = 20
@@ -318,7 +315,7 @@ object FormConfigTCO: TFormConfigTCO
Width = 289 Width = 289
Height = 273 Height = 273
Caption = 'Configuration de tous les TCOs' Caption = 'Configuration de tous les TCOs'
TabOrder = 8 TabOrder = 7
object Ratio: TLabel object Ratio: TLabel
Left = 8 Left = 8
Top = 208 Top = 208
@@ -369,6 +366,7 @@ object FormConfigTCO: TFormConfigTCO
Width = 273 Width = 273
Height = 161 Height = 161
ColCount = 3 ColCount = 3
FixedColor = clAppWorkSpace
RowCount = 11 RowCount = 11
TabOrder = 0 TabOrder = 0
ColWidths = ( ColWidths = (
@@ -426,6 +424,21 @@ object FormConfigTCO: TFormConfigTCO
OnChange = TrackBarEpaisseurChange OnChange = TrackBarEpaisseurChange
end end
end end
object RadioButtonLignes: TRadioButton
Left = 392
Top = 312
Width = 113
Height = 17
Caption = 'Lignes bris'#233'es'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 8
OnClick = RadioButtonLignesClick
end
object ColorDialog1: TColorDialog object ColorDialog1: TColorDialog
OnShow = ColorDialog1Show OnShow = ColorDialog1Show
Left = 272 Left = 272
+18 -5
View File
@@ -36,7 +36,6 @@ type
ImagePiedFeu: TImage; ImagePiedFeu: TImage;
BitBtnOk: TBitBtn; BitBtnOk: TBitBtn;
RadioGroup1: TRadioGroup; RadioGroup1: TRadioGroup;
RadioButtonLignes: TRadioButton;
RadioButtonCourbes: TRadioButton; RadioButtonCourbes: TRadioButton;
GroupBox3: TGroupBox; GroupBox3: TGroupBox;
Label3: TLabel; Label3: TLabel;
@@ -59,6 +58,7 @@ type
TrackBarEpaisseur: TTrackBar; TrackBarEpaisseur: TTrackBar;
Label17: TLabel; Label17: TLabel;
Label18: TLabel; Label18: TLabel;
RadioButtonLignes: TRadioButton;
procedure ButtonDessineClick(Sender: TObject); procedure ButtonDessineClick(Sender: TObject);
procedure FormActivate(Sender: TObject); procedure FormActivate(Sender: TObject);
procedure ImageAigClick(Sender: TObject); procedure ImageAigClick(Sender: TObject);
@@ -204,7 +204,6 @@ begin
x2:=x1+width; x2:=x1+width;
jy1:=(Haut div 2)-round(12*fryGlob[indexTCO]); // pos Y de la bande sup jy1:=(Haut div 2)-round(12*fryGlob[indexTCO]); // pos Y de la bande sup
jy2:=(Haut div 2)+round(12*fryGlob[indexTCO]); // pos Y de la bande inf jy2:=(Haut div 2)+round(12*fryGlob[indexTCO]); // pos Y de la bande inf
canvas.PolyGon([point(x1,jy1),point(x2,jy1),point(x2,jy2),point(x1,jy2)]); canvas.PolyGon([point(x1,jy1),point(x2,jy1),point(x2,jy2),point(x1,jy2)]);
end; end;
@@ -220,11 +219,10 @@ begin
x1:=Larg div 2; x1:=Larg div 2;
y1:=0; y1:=0;
canvas.moveTo(x1,y1); canvas.moveTo(x1,y1);
y2:=HauteurCell[indexTCO] div 2; y2:=haut div 2;
canvas.LineTo(x1,y2); canvas.LineTo(x1,y2);
canvas.LineTo(x1-10,y2); canvas.LineTo(x1-10,y2);
end; end;
end; end;
function verif_config_TCO(indexTCO : integer) : boolean; // renvoie true si ok function verif_config_TCO(indexTCO : integer) : boolean; // renvoie true si ok
@@ -317,6 +315,7 @@ begin
for i:=1 to 10 do for i:=1 to 10 do
begin begin
stringGridTCO.Cells[1,i]:=NomFichierTCO[i]; stringGridTCO.Cells[1,i]:=NomFichierTCO[i];
if i<=nbreTCO then stringGridTCO.Cells[2,i]:='X' else stringGridTCO.Cells[2,i]:=' '; if i<=nbreTCO then stringGridTCO.Cells[2,i]:='X' else stringGridTCO.Cells[2,i]:=' ';
end; end;
// stringGridTCO.canvas.Font.Style:=[fsBOld]; // stringGridTCO.canvas.Font.Style:=[fsBOld];
@@ -548,8 +547,9 @@ end;
procedure TFormConfigTCO.FormCreate(Sender: TObject); procedure TFormConfigTCO.FormCreate(Sender: TObject);
var i : integer; var i : integer;
c : tcomponent;
begin begin
for i := 0 to stringGridTCO.RowCount - 1 do for i:=0 to stringGridTCO.RowCount - 1 do
with stringGridTCO do with stringGridTCO do
begin begin
RowHeights[i]:=15; RowHeights[i]:=15;
@@ -565,6 +565,17 @@ begin
Cells[0,0]:='Num'; Cells[0,0]:='Num';
Cells[1,0]:='Nom fichier'; Cells[1,0]:='Nom fichier';
Cells[2,0]:='X'; Cells[2,0]:='X';
font.Color:=clBlack;
end;
if sombre then
begin
Color:=Couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end; end;
end; end;
@@ -580,4 +591,6 @@ end;
end. end.
+45 -46
View File
@@ -1,10 +1,9 @@
object FormDebug: TFormDebug object FormDebug: TFormDebug
Left = 321 Left = 234
Top = 0 Top = 128
Width = 864 Width = 884
Height = 718 Height = 732
VertScrollBar.Increment = 67 VertScrollBar.Increment = 67
VertScrollBar.Position = 98
VertScrollBar.Tracking = True VertScrollBar.Tracking = True
Caption = 'Fen'#234'tre de d'#233'bug' Caption = 'Fen'#234'tre de d'#233'bug'
Color = clWindow Color = clWindow
@@ -21,13 +20,13 @@ object FormDebug: TFormDebug
OnCreate = FormCreate OnCreate = FormCreate
OnKeyPress = FormKeyPress OnKeyPress = FormKeyPress
DesignSize = ( DesignSize = (
839 851
687) 693)
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Label1: TLabel object Label1: TLabel
Left = 595 Left = 615
Top = -94 Top = 4
Width = 108 Width = 108
Height = 13 Height = 13
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -41,9 +40,9 @@ object FormDebug: TFormDebug
ParentColor = False ParentColor = False
ParentFont = False ParentFont = False
end end
object Label2: TLabel object LabelTitreDebug: TLabel
Left = 443 Left = 463
Top = -96 Top = 2
Width = 131 Width = 131
Height = 18 Height = 18
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -56,8 +55,8 @@ object FormDebug: TFormDebug
ParentFont = False ParentFont = False
end end
object EditNivDebug: TEdit object EditNivDebug: TEdit
Left = 754 Left = 774
Top = -96 Top = 2
Width = 49 Width = 49
Height = 21 Height = 21
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -72,8 +71,8 @@ object FormDebug: TFormDebug
OnKeyPress = EditNivDebugKeyPress OnKeyPress = EditNivDebugKeyPress
end end
object ButtonEcrLog: TButton object ButtonEcrLog: TButton
Left = 442 Left = 462
Top = 230 Top = 328
Width = 97 Width = 97
Height = 29 Height = 29
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -82,8 +81,8 @@ object FormDebug: TFormDebug
OnClick = ButtonEcrLogClick OnClick = ButtonEcrLogClick
end end
object ButtonRazTampon: TButton object ButtonRazTampon: TButton
Left = 442 Left = 462
Top = 262 Top = 360
Width = 97 Width = 97
Height = 33 Height = 33
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -93,8 +92,8 @@ object FormDebug: TFormDebug
OnClick = ButtonRazTamponClick OnClick = ButtonRazTamponClick
end end
object ButtonCherche: TButton object ButtonCherche: TButton
Left = 442 Left = 462
Top = 198 Top = 296
Width = 97 Width = 97
Height = 25 Height = 25
Hint = 'Cherche la cha'#238'ne "erreur"' Hint = 'Cherche la cha'#238'ne "erreur"'
@@ -106,8 +105,8 @@ object FormDebug: TFormDebug
OnClick = ButtonChercheClick OnClick = ButtonChercheClick
end end
object ButtonAffEvtChrono: TButton object ButtonAffEvtChrono: TButton
Left = 442 Left = 462
Top = 158 Top = 256
Width = 97 Width = 97
Height = 33 Height = 33
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -117,8 +116,8 @@ object FormDebug: TFormDebug
OnClick = ButtonAffEvtChronoClick OnClick = ButtonAffEvtChronoClick
end end
object ButtonCop: TButton object ButtonCop: TButton
Left = 442 Left = 462
Top = 110 Top = 208
Width = 97 Width = 97
Height = 41 Height = 41
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -134,8 +133,8 @@ object FormDebug: TFormDebug
OnClick = ButtonCopClick OnClick = ButtonCopClick
end end
object ButtonRazLog: TButton object ButtonRazLog: TButton
Left = 442 Left = 462
Top = 302 Top = 400
Width = 97 Width = 97
Height = 33 Height = 33
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -145,8 +144,8 @@ object FormDebug: TFormDebug
OnClick = ButtonRazLogClick OnClick = ButtonRazLogClick
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 448 Left = 468
Top = 502 Top = 600
Width = 369 Width = 369
Height = 185 Height = 185
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -305,9 +304,9 @@ object FormDebug: TFormDebug
end end
end end
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
Left = 440 Left = 460
Top = -78 Top = 20
Width = 401 Width = 384
Height = 149 Height = 149
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = 'S'#233'lections d'#39'affichage' Caption = 'S'#233'lections d'#39'affichage'
@@ -466,7 +465,7 @@ object FormDebug: TFormDebug
OnClick = CheckBox1Click OnClick = CheckBox1Click
end end
object CheckDebugTCO: TCheckBox object CheckDebugTCO: TCheckBox
Left = 264 Left = 256
Top = 128 Top = 128
Width = 121 Width = 121
Height = 17 Height = 17
@@ -482,7 +481,7 @@ object FormDebug: TFormDebug
OnClick = CheckDebugTCOClick OnClick = CheckDebugTCOClick
end end
object CheckDetSIg: TCheckBox object CheckDetSIg: TCheckBox
Left = 264 Left = 256
Top = 112 Top = 112
Width = 121 Width = 121
Height = 17 Height = 17
@@ -501,7 +500,7 @@ object FormDebug: TFormDebug
OnClick = CheckDetSIgClick OnClick = CheckDetSIgClick
end end
object CheckBoxPrinc: TCheckBox object CheckBoxPrinc: TCheckBox
Left = 264 Left = 256
Top = 96 Top = 96
Width = 121 Width = 121
Height = 17 Height = 17
@@ -519,9 +518,9 @@ object FormDebug: TFormDebug
end end
object RichDebug: TRichEdit object RichDebug: TRichEdit
Left = 8 Left = 8
Top = -90 Top = 8
Width = 425 Width = 445
Height = 671 Height = 685
Anchors = [akLeft, akTop, akRight, akBottom] Anchors = [akLeft, akTop, akRight, akBottom]
Lines.Strings = ( Lines.Strings = (
'RichDebug') 'RichDebug')
@@ -531,8 +530,8 @@ object FormDebug: TFormDebug
OnChange = RichDebugChange OnChange = RichDebugChange
end end
object GroupBox5: TGroupBox object GroupBox5: TGroupBox
Left = 448 Left = 468
Top = 390 Top = 488
Width = 372 Width = 372
Height = 57 Height = 57
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -598,8 +597,8 @@ object FormDebug: TFormDebug
end end
end end
object ButtonRazTout: TButton object ButtonRazTout: TButton
Left = 443 Left = 463
Top = 78 Top = 176
Width = 97 Width = 97
Height = 25 Height = 25
Hint = Hint =
@@ -613,8 +612,8 @@ object FormDebug: TFormDebug
OnClick = ButtonRazToutClick OnClick = ButtonRazToutClick
end end
object GroupBox6: TGroupBox object GroupBox6: TGroupBox
Left = 448 Left = 468
Top = 454 Top = 552
Width = 372 Width = 372
Height = 41 Height = 41
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@@ -690,9 +689,9 @@ object FormDebug: TFormDebug
end end
end end
object MemoEvtDet: TRichEdit object MemoEvtDet: TRichEdit
Left = 544 Left = 565
Top = 76 Top = 174
Width = 281 Width = 280
Height = 307 Height = 307
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Color = clBlack Color = clBlack
+19 -1
View File
@@ -10,7 +10,7 @@ type
TFormDebug = class(TForm) TFormDebug = class(TForm)
EditNivDebug: TEdit; EditNivDebug: TEdit;
Label1: TLabel; Label1: TLabel;
Label2: TLabel; LabelTitreDebug: TLabel;
SaveDialog: TSaveDialog; SaveDialog: TSaveDialog;
ButtonEcrLog: TButton; ButtonEcrLog: TButton;
ButtonRazTampon: TButton; ButtonRazTampon: TButton;
@@ -124,6 +124,7 @@ procedure AfficheDebug(s : string;lacouleur : TColor);
procedure AfficheDebug_suivi(s : string;lacouleur : TColor); procedure AfficheDebug_suivi(s : string;lacouleur : TColor);
procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor); procedure RE_ColorLine(ARichEdit: TRichEdit; ARow: Integer; AColor: TColor);
procedure affiche_evt(s: string;lacouleur : TColor); procedure affiche_evt(s: string;lacouleur : TColor);
procedure couleurs_debug;
implementation implementation
@@ -163,6 +164,21 @@ begin
end; end;
end; end;
procedure couleurs_debug;
var c : tcomponent;
i : integer;
begin
if sombre then with formdebug do
begin
Color:=Couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end;
end;
procedure AfficheDebug_suivi(s : string;lacouleur : TColor); procedure AfficheDebug_suivi(s : string;lacouleur : TColor);
var i : integer; var i : integer;
begin begin
@@ -192,6 +208,8 @@ begin
compt_erreur:=0; compt_erreur:=0;
LigneErreur:=0; LigneErreur:=0;
if debug=1 then Affiche('Fin création fenêtre debug',clLime); if debug=1 then Affiche('Fin création fenêtre debug',clLime);
couleurs_debug;
end; end;
procedure TFormDebug.ButtonEcrLogClick(Sender: TObject); procedure TFormDebug.ButtonEcrLogClick(Sender: TObject);
+17 -2
View File
@@ -111,6 +111,7 @@ var
AdrPilote : integer; AdrPilote : integer;
procedure dessine_feu_pilote; procedure dessine_feu_pilote;
procedure couleurs_pilote;
implementation implementation
@@ -269,10 +270,24 @@ begin
dessine_feu_pilote; dessine_feu_pilote;
end; end;
procedure couleurs_pilote;
var i : integer;
c : tcomponent;
begin
if sombre then with formPilote do
begin
Color:=Couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end;
end;
procedure TFormPilote.FormCreate(Sender: TObject); procedure TFormPilote.FormCreate(Sender: TObject);
begin begin
// radioVert.Checked:=false; couleurs_pilote;
// radioVertCli.Checked:=false;
end; end;
procedure TFormPilote.ButtonPiloteClick(Sender: TObject); procedure TFormPilote.ButtonPiloteClick(Sender: TObject);
+59 -31
View File
@@ -1,8 +1,8 @@
object FormPrinc: TFormPrinc object FormPrinc: TFormPrinc
Left = 79 Left = 107
Top = 256 Top = 224
Width = 1133 Width = 1149
Height = 653 Height = 689
Anchors = [akLeft, akTop, akRight] Anchors = [akLeft, akTop, akRight]
Caption = 'Signaux complexes' Caption = 'Signaux complexes'
Color = clBtnFace Color = clBtnFace
@@ -19,8 +19,8 @@ object FormPrinc: TFormPrinc
OnCreate = FormCreate OnCreate = FormCreate
OnResize = FormResize OnResize = FormResize
DesignSize = ( DesignSize = (
1117 1141
595) 638)
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object LabelTitre: TLabel object LabelTitre: TLabel
@@ -1429,8 +1429,8 @@ object FormPrinc: TFormPrinc
end end
object StatusBar1: TStatusBar object StatusBar1: TStatusBar
Left = 0 Left = 0
Top = 573 Top = 616
Width = 1117 Width = 1141
Height = 22 Height = 22
Panels = < Panels = <
item item
@@ -1467,7 +1467,7 @@ object FormPrinc: TFormPrinc
00020000802500000000080000000000000000003F00000011000000} 00020000802500000000080000000000000000003F00000011000000}
end end
object Button1: TButton object Button1: TButton
Left = 728 Left = 744
Top = 8 Top = 8
Width = 75 Width = 75
Height = 25 Height = 25
@@ -1478,15 +1478,14 @@ object FormPrinc: TFormPrinc
OnClick = Button1Click OnClick = Button1Click
end end
object GrandPanel: TPanel object GrandPanel: TPanel
Left = 0 Left = 8
Top = 32 Top = 48
Width = 1065 Width = 1025
Height = 473 Height = 476
Anchors = [akLeft, akTop, akRight]
TabOrder = 3 TabOrder = 3
DesignSize = ( DesignSize = (
1065 1025
473) 476)
object SplitterV: TSplitter object SplitterV: TSplitter
Left = 1 Left = 1
Top = 1 Top = 1
@@ -1521,8 +1520,8 @@ object FormPrinc: TFormPrinc
OnMouseDown = FenRichMouseDown OnMouseDown = FenRichMouseDown
end end
object ScrollBox1: TScrollBox object ScrollBox1: TScrollBox
Left = 512 Left = 504
Top = 192 Top = 176
Width = 465 Width = 465
Height = 249 Height = 249
HorzScrollBar.Increment = 48 HorzScrollBar.Increment = 48
@@ -1535,7 +1534,7 @@ object FormPrinc: TFormPrinc
TabOrder = 1 TabOrder = 1
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 505 Left = 465
Top = 21 Top = 21
Width = 265 Width = 265
Height = 52 Height = 52
@@ -1555,6 +1554,12 @@ object FormPrinc: TFormPrinc
Width = 49 Width = 49
Height = 21 Height = 21
Hint = 'Adresse accessoire' Hint = 'Adresse accessoire'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 0 TabOrder = 0
Text = '1' Text = '1'
end end
@@ -1586,7 +1591,7 @@ object FormPrinc: TFormPrinc
end end
end end
object GroupBox3: TGroupBox object GroupBox3: TGroupBox
Left = 497 Left = 457
Top = 104 Top = 104
Width = 265 Width = 265
Height = 129 Height = 129
@@ -1752,7 +1757,10 @@ object FormPrinc: TFormPrinc
Top = 88 Top = 88
Width = 83 Width = 83
Height = 33 Height = 33
Hint = 'Envoie la vitesse au train'
Caption = 'Envoi vitesse '#224' loco' Caption = 'Envoi vitesse '#224' loco'
ParentShowHint = False
ShowHint = True
TabOrder = 0 TabOrder = 0
WordWrap = True WordWrap = True
OnClick = locoClick OnClick = locoClick
@@ -1809,7 +1817,7 @@ object FormPrinc: TFormPrinc
TabOrder = 5 TabOrder = 5
end end
object TrackBarVit: TTrackBar object TrackBarVit: TTrackBar
Left = 24 Left = 16
Top = 64 Top = 64
Width = 233 Width = 233
Height = 21 Height = 21
@@ -1818,12 +1826,14 @@ object FormPrinc: TFormPrinc
Max = 100 Max = 100
Min = -100 Min = -100
ParentCtl3D = False ParentCtl3D = False
ParentShowHint = False
ShowHint = True
TabOrder = 7 TabOrder = 7
OnChange = TrackBarVitChange OnChange = TrackBarVitChange
end end
end end
object Panel1: TPanel object Panel1: TPanel
Left = 729 Left = 689
Top = -3 Top = -3
Width = 288 Width = 288
Height = 180 Height = 180
@@ -1970,16 +1980,16 @@ object FormPrinc: TFormPrinc
end end
end end
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
Left = 505 Left = 577
Top = 16 Top = 104
Width = 265 Width = 265
Height = 105 Height = 129
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Caption = 'Variables CV' Caption = 'Variables CV'
TabOrder = 5 TabOrder = 5
object Label3: TLabel object Label3: TLabel
Left = 208 Left = 208
Top = 34 Top = 42
Width = 14 Width = 14
Height = 13 Height = 13
Caption = 'CV' Caption = 'CV'
@@ -1987,7 +1997,7 @@ object FormPrinc: TFormPrinc
end end
object LabelVCV: TLabel object LabelVCV: TLabel
Left = 208 Left = 208
Top = 55 Top = 71
Width = 47 Width = 47
Height = 13 Height = 13
Caption = 'Valeur CV' Caption = 'Valeur CV'
@@ -1995,7 +2005,7 @@ object FormPrinc: TFormPrinc
end end
object ButtonEcrCV: TButton object ButtonEcrCV: TButton
Left = 8 Left = 8
Top = 16 Top = 24
Width = 153 Width = 153
Height = 33 Height = 33
Hint = 'Ecriture CV en mode direct sur voie de programmation' Hint = 'Ecriture CV en mode direct sur voie de programmation'
@@ -2006,7 +2016,7 @@ object FormPrinc: TFormPrinc
end end
object ButtonLitCV: TButton object ButtonLitCV: TButton
Left = 8 Left = 8
Top = 64 Top = 80
Width = 153 Width = 153
Height = 33 Height = 33
Hint = 'Lecture CV en mode direct sur voie de programmation' Hint = 'Lecture CV en mode direct sur voie de programmation'
@@ -2018,19 +2028,37 @@ object FormPrinc: TFormPrinc
end end
object EditCV: TEdit object EditCV: TEdit
Left = 168 Left = 168
Top = 32 Top = 40
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 2 TabOrder = 2
end end
object EditVal: TEdit object EditVal: TEdit
Left = 168 Left = 168
Top = 52 Top = 68
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 3 TabOrder = 3
end end
end end
object PanelBouton: TPanel
Left = 952
Top = 200
Width = 64
Height = 67
BorderStyle = bsSingle
Color = clGreen
TabOrder = 6
Visible = False
object SpeedButton1: TSpeedButton
Left = 0
Top = 0
Width = 57
Height = 57
Caption = 'bouton maison'
Flat = True
end
end
end end
object MSCommCde1: TMSComm object MSCommCde1: TMSComm
Left = 1064 Left = 1064
+242 -22
View File
@@ -1,5 +1,5 @@
Unit UnitPrinc; Unit UnitPrinc;
// 29/12 10h // 5/1 9h
(******************************************** (********************************************
Programme signaux complexes Graphique Lenz Programme signaux complexes Graphique Lenz
Delphi 7 + activeX Tmscomm + clientSocket Delphi 7 + activeX Tmscomm + clientSocket
@@ -44,6 +44,15 @@ Unit UnitPrinc;
// si on bouge un aiguillage à la raquette, on récupère bien sa position par XpressNet. // si on bouge un aiguillage à la raquette, on récupère bien sa position par XpressNet.
// Une loco sur un détecteur au lancement ne renvoie pas son état statique. Seuls les changements // Une loco sur un détecteur au lancement ne renvoie pas son état statique. Seuls les changements
// d'état sont renvoyés par la centrale. // d'état sont renvoyés par la centrale.
//
// Notes pour compilation sous Embarcadero : --------------------------------------------------
// Pour compilation avec Rad Studio (Delphi11): Projet / Options // Application / Apparence /
// Embarcadero technologies / carbon ou Auric
//
// Pour le mode sombre sous embarcadero, il faut sélectionner:
// Projet / Options // Application / manifeste / fichier manifeste : personnaliser
// à la sauvegarde, ce champ appraitra sous "générer automatiquement"
// et : décocher "activer les thèmes d'exécution"
//{$Q-} // pas de vérification du débordement des opérations de calcul //{$Q-} // pas de vérification du débordement des opérations de calcul
//{$R-} // pas de vérification des limites d'index du tableau et des variables //{$R-} // pas de vérification des limites d'index du tableau et des variables
@@ -218,6 +227,8 @@ type
Copierltatdesaiguillageseninitialisation1: TMenuItem; Copierltatdesaiguillageseninitialisation1: TMenuItem;
ServerSocket: TServerSocket; ServerSocket: TServerSocket;
Listedesclientsconnects1: TMenuItem; Listedesclientsconnects1: TMenuItem;
PanelBouton: TPanel;
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure MSCommUSBInterfaceComm(Sender: TObject); procedure MSCommUSBInterfaceComm(Sender: TObject);
@@ -401,6 +412,7 @@ const_inconnu=9; // position inconnue
IdClients=10; // Index maxi de clients IdClients=10; // Index maxi de clients
NbCouleurTrain=8; NbCouleurTrain=8;
MaxCdeDccpp=20; MaxCdeDccpp=20;
couleurTexte=$A0FFFF;
clRose=$AAAAFF; clRose=$AAAAFF;
clCyan=$FFA0A0; clCyan=$FFA0A0;
clviolet=$FF00FF; clviolet=$FF00FF;
@@ -566,7 +578,7 @@ var
AvecDemandeInterfaceUSB,AvecDemandeInterfaceEth,aff_acc,affiche_aigdcc,modeStkRetro, AvecDemandeInterfaceUSB,AvecDemandeInterfaceEth,aff_acc,affiche_aigdcc,modeStkRetro,
retEtatDet,roulage,init_aig_cours,affevt,placeAffiche,clicComboTrain,clicAdrTrain, retEtatDet,roulage,init_aig_cours,affevt,placeAffiche,clicComboTrain,clicAdrTrain,
avec_splitter,fichier_module_cdm,Diffusion,cdmDevant,avecRESA,serveurIPCDM_Touche, avec_splitter,fichier_module_cdm,Diffusion,cdmDevant,avecRESA,serveurIPCDM_Touche,
Z21 : boolean; Z21,sombre,serveur_ouvert : boolean;
tick,Premier_tick : longint; tick,Premier_tick : longint;
@@ -702,7 +714,7 @@ var
end; end;
tablo_CV : array [1..255] of integer; tablo_CV : array [1..255] of integer;
couleur : Tcolor; couleur,Couleurfond : Tcolor;
// modélisations des fichiers config // modélisations des fichiers config
branche : array [1..MaxBranches] of string; branche : array [1..MaxBranches] of string;
@@ -850,12 +862,16 @@ procedure mosaiqueH;
procedure mosaiqueV; procedure mosaiqueV;
function InfoSignal(adresse : integer) : string; function InfoSignal(adresse : integer) : string;
procedure det_prec_signal(adresse : integer;var tabloDet : TTabloDet); procedure det_prec_signal(adresse : integer;var tabloDet : TTabloDet);
procedure composant(c : tComponent;fond,texte : tColor);
procedure maj_couleurs;
implementation implementation
uses UnitDebug, UnitPilote, UnitSimule, UnitTCO, UnitConfig, uses UnitDebug, UnitPilote, UnitSimule, UnitTCO, UnitConfig,
Unitplace, verif_version , UnitCDF, UnitAnalyseSegCDM, UnitConfigCellTCO, Unitplace, verif_version , UnitCDF, UnitAnalyseSegCDM, UnitConfigCellTCO,
UnitConfigTCO; UnitConfigTCO,
UnitSR;
{ {
procedure menu_interface(MA : TMA); procedure menu_interface(MA : TMA);
@@ -879,11 +895,35 @@ begin
inc(etape); inc(etape);
end; end;
procedure Tformprinc.DoHint(Sender : Tobject); procedure Tformprinc.DoHint(Sender : Tobject); // le sender est tApplication
var s: string; var s,nomForm: string;
c : tcomponent;
FormeTCO : boolean;
begin begin
s:=Application.Hint; s:=Application.Hint; // texte du hint
StatusBar1.Panels[0].text:=s; StatusBar1.Panels[0].text:=s;
// détection d'un hint provoqué dans formtco
NomForm:=uppercase(Screen.activeform.Name);
formeTCO:=copy(NomForm,1,7)='FORMTCO';
// dessine les encadrés de colonne/ligne dans le tco suivant sélection du popup menu, en fonction du hint qu'on accroche
if formeTCO then
begin
// hints des colonnes
if (s=s101) or (s=s93) or (s=s94) then
begin
if not(colonneAffiche) then encadre_colonne;
end
else if colonneAffiche then encadre_colonne;
// hints des lignes
if (s=s90) or (s=s91) or (s=s100) then
begin
if not(ligneAffiche) then encadre_ligne;
end
else if ligneAffiche then encadre_ligne;
end;
end; end;
// fonctions sur les bits // fonctions sur les bits
@@ -2284,16 +2324,16 @@ begin
//if Signaux[rang].aspect=5 then cercle(Picture.Bitmap.Canvas,13,22,6,ClYellow); //if Signaux[rang].aspect=5 then cercle(Picture.Bitmap.Canvas,13,22,6,ClYellow);
refresh; refresh;
Picture.Bitmap.Modified:=True; Picture.Bitmap.Modified:=True;
end; end;
// créée le label pour afficher son adresse // créée le label pour afficher son adresse
Signaux[rang].Lbl:=Tlabel.create(Formprinc.ScrollBox1); Signaux[rang].Lbl:=Tlabel.create(Formprinc.ScrollBox1);
with Signaux[rang].Lbl do with Signaux[rang].Lbl do
begin begin
Name:='LabelFeu'+intToSTR(Signaux[rang].adresse);
caption:='@'+IntToSTR(Signaux[rang].adresse); caption:='@'+IntToSTR(Signaux[rang].adresse);
Parent:=Formprinc.ScrollBox1; Parent:=Formprinc.ScrollBox1;
font.color:=clBlack;
width:=100;height:=20; width:=100;height:=20;
Top:=HtImg+((HtImg+EspY+20)*((rang-1) div NbreImagePLigne)); Top:=HtImg+((HtImg+EspY+20)*((rang-1) div NbreImagePLigne));
Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne)); Left:=10+ (LargImg+5)*((rang-1) mod (NbreImagePLigne));
@@ -2311,6 +2351,7 @@ begin
Hint:='Feu blanc'; Hint:='Feu blanc';
Name:='CheckBoxFB'+intToSTR(adresse); // affecter l'adresse du feu pour pouvoir le retrouver dans la procédure Name:='CheckBoxFB'+intToSTR(adresse); // affecter l'adresse du feu pour pouvoir le retrouver dans la procédure
caption:='dem FB'; caption:='dem FB';
font.color:=clBlack;
Parent:=Formprinc.ScrollBox1; Parent:=Formprinc.ScrollBox1;
width:=100;height:=15; width:=100;height:=15;
Top:=HtImg+15+((HtImg+EspY+20)*((rang-1) div NbreImagePLigne)); Top:=HtImg+15+((HtImg+EspY+20)*((rang-1) div NbreImagePLigne));
@@ -7357,6 +7398,17 @@ begin
3: begin prec:=Signaux[i].Adr_det3; actuel:=Signaux[i].Adr_el_suiv3; TypeElActuel:=Signaux[i].Btype_suiv3; end; 3: begin prec:=Signaux[i].Adr_det3; actuel:=Signaux[i].Adr_el_suiv3; TypeElActuel:=Signaux[i].Btype_suiv3; end;
4: begin prec:=Signaux[i].Adr_det4; actuel:=Signaux[i].Adr_el_suiv4; TypeElActuel:=Signaux[i].Btype_suiv4; end; 4: begin prec:=Signaux[i].Adr_det4; actuel:=Signaux[i].Adr_el_suiv4; TypeElActuel:=Signaux[i].Btype_suiv4; end;
end; end;
if (prec=0) then
begin
s:='Erreur 780 : détecteur nul déclaré sur signal '+intToSTR(adresse);
Affiche(s,clred);
affichedebug(s,clred);
result:=0;
reserveTrainTiers:=false;
AdrTrain:=0;
exit;
end;
TypeElPrec:=Det; TypeElPrec:=Det;
end end
else else
@@ -7519,7 +7571,7 @@ begin
TypePrec:=det; TypePrec:=det;
if prec=0 then if prec=0 then
begin begin
Affiche('Msg 601 - feu '+intToSTR(prec)+' détecteur non renseigné ',clOrange); Affiche('Msg 601 - Signal '+intToSTR(prec)+' détecteur non renseigné ',clOrange);
if NivDebug=3 then AfficheDebug('Msg 602 - détecteur '+intToSTR(prec)+' non renseigné ',clOrange); if NivDebug=3 then AfficheDebug('Msg 602 - détecteur '+intToSTR(prec)+' non renseigné ',clOrange);
signal_suivant_det:=0; signal_suivant_det:=0;
if debug=3 then formprinc.Caption:=''; if debug=3 then formprinc.Caption:='';
@@ -10672,8 +10724,8 @@ begin
begin begin
if aiguillage[index].position=const_inconnu then if aiguillage[index].position=const_inconnu then
begin begin
Affiche('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred); Affiche('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',ClOrange);
AfficheDebug('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',clred); AfficheDebug('Attention : position de l''aiguillage '+IntToSTR(i)+' inconnue',ClOrange);
end; end;
end; end;
end; end;
@@ -12634,6 +12686,7 @@ begin
end; end;
// positionne les composants de la fenêtre principale // positionne les composants de la fenêtre principale
// i : position X du splitter
procedure positionne_elements(i : integer); procedure positionne_elements(i : integer);
begin begin
with formprinc do with formprinc do
@@ -12642,7 +12695,7 @@ 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:=GrandPanel.Width-i-5; ScrollBox1.width:=GrandPanel.Width-i-20;
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;
@@ -12652,6 +12705,144 @@ begin
end; end;
end; end;
procedure composant(c : tComponent;fond,texte : tColor);
var cGB : TGroupBox;
cTE : tEdit;
cCB : tComboBox;
cPa : tPanel;
cLa : tLabel;
cSc : tScrollBox;
cSB : tcheckBox;
cSh : tShape;
cMe : tMemo;
cBu : Tbutton;
cRa : tRadioGroup;
cRb : tRadioButton;
begin
if c is Tshape then
begin
csH:=c as tShape;
csH.Brush.Color:=fond;
exit;
end;
if c is TGroupBox then
begin
cGB:=c as TgroupBox;
cGB.color:=fond;
cGB.font.color:=texte;
exit;
end;
if c is TRadioGroup then
begin
cRa:=c as TRadioGroup;
cRa.color:=fond;
cRa.font.color:=texte;
exit;
end;
if c is TRadioButton then
begin
cRb:=c as tRadioButton;
cRb.color:=fond;
cRb.font.color:=texte;
exit;
end;
if c is TMemo then
begin
cMe:=c as TMemo;
cMe.color:=fond;
cMe.font.color:=texte;
exit;
end;
if c is TGroupBox then
begin
cGB:=c as TgroupBox;
cGB.color:=fond;
cGB.font.color:=texte;
cGB.Repaint;
exit;
end;
if c is TEdit then
begin
cTE:=c as tEdit;
cTE.color:=fond;
cTE.Font.Color:=texte;
exit;
end;
if c is tComboBox then
begin
cCB:=c as tComboBox;
cCB.color:=fond;
cCb.Font.Color:=clWhite;
exit;
end;
if c is tPanel then
begin
cPa:=c as tPanel;
cPA.Color:=fond;
cPA.Font.Color:=texte;
exit;
end;
if c is tLabel then
begin
cLa:=c as tLabel;
cLa.Color:=fond;
cLa.Font.Color:=texte;
exit;
end;
if c is tCheckBox then
begin
cSb:=c as tCheckBox;
cSb.Color:=fond;
cSB.Font.Color:=texte;
exit;
end;
end;
procedure couleurs_Princ;
var
fond,texte : tColor;
i : integer;
c : Tcomponent;
cSc: tScrollBox;
begin
fond:=couleurFond;
texte:=couleurTexte;
if sombre then
begin
formprinc.Color:=fond;
for i:=0 to formprinc.ComponentCount-1 do
begin
c:=formprinc.Components[i];
//Affiche(c.Name,clyellow);
composant(c,fond,texte);
end;
cSc:=Formprinc.FindComponent('ScrollBox1') as tScrollBox;
if assigned(cSc) then
begin
texte:=clBlack;
fond:=Formprinc.ScrollBox1.Color;
for i:=0 to formprinc.ScrollBox1.ComponentCount-1 do
begin
c:=formprinc.ScrollBox1.Components[i];
//Affiche(c.Name,clLime);
composant(c,fond,texte);
end;
end;
end;
end;
procedure maj_couleurs;
begin
couleurs_princ;
Couleurs_config;
couleurs_debug;
couleurs_SR;
couleurs_cdf;
couleurs_place;
couleurs_pilote;
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 n,t,i,index,OrgMilieu : integer; var n,t,i,index,OrgMilieu : integer;
@@ -12668,6 +12859,7 @@ begin
protocole:=1; protocole:=1;
filtrageDet0:=3; filtrageDet0:=3;
cdmHd:=0; cdmHd:=0;
CouleurFond:=$404040 ;
// services commIP CDM par défaut // services commIP CDM par défaut
Srvc_Aig:=true; Srvc_Aig:=true;
@@ -12721,6 +12913,7 @@ begin
formatY:=-1; formatY:=-1;
avecResa:=false; // réservation des aiguillages en mode normal avecResa:=false; // réservation des aiguillages en mode normal
serveurIPCDM_Touche:=false; serveurIPCDM_Touche:=false;
sombre:=false;
AvecInit:=true; // &&&& avec initialisation des aiguillages ou pas AvecInit:=true; // &&&& avec initialisation des aiguillages ou pas
Diffusion:=AvecInit; // mode diffusion publique + debug mise au point etc Diffusion:=AvecInit; // mode diffusion publique + debug mise au point etc
roulage1.visible:=false; roulage1.visible:=false;
@@ -12790,9 +12983,15 @@ begin
procetape('Lecture de la configuration'); procetape('Lecture de la configuration');
lit_config; lit_config;
serveur_ouvert:=true;
serverSocket.Port:=PortServeur; serverSocket.Port:=PortServeur;
try
ServerSocket.Open; ServerSocket.Open;
ServerSocket.Active:=true; except
serveur_ouvert:=false;
Affiche('Serveur signaux_complexes non ouvert, le port '+intToSTR(PortServeur)+' est utilisé',clred);
end;
if serveur_ouvert then ServerSocket.Active:=true;
Menu_tco(NbreTCO); Menu_tco(NbreTCO);
procetape('Lecture du TCO'); procetape('Lecture du TCO');
@@ -12816,7 +13015,6 @@ begin
EditEnvoi.Visible:=true; EditEnvoi.Visible:=true;
end; end;
Application.ProcessMessages; Application.ProcessMessages;
// Initialisation des images des signaux // Initialisation des images des signaux
procetape('Création des signaux'); procetape('Création des signaux');
@@ -12869,11 +13067,10 @@ begin
//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-66;
Anchors:=[akLeft,akTop,akRight,akBottom]; Anchors:=[akLeft,akTop,akRight,akBottom];
end; end;
if avec_splitter then if avec_splitter then
begin begin
with Fenrich do with Fenrich do
@@ -12900,10 +13097,9 @@ begin
Parent:=GrandPanel; Parent:=GrandPanel;
Anchors:=[akTop,akRight,akBottom]; Anchors:=[akTop,akRight,akBottom];
width:=GrandPanel.Width-SplitterV.Width-5; width:=GrandPanel.Width-SplitterV.Width-5;
height:=GrandPanel.Height-groupBox3.height-groupBox3.top-25; height:=GrandPanel.Height-groupBox3.height-groupBox3.top-10;
top:=GroupBox3.Top+GroupBox3.Height+5; top:=GroupBox3.Top+GroupBox3.Height+5;
end; end;
positionne_elements(splitterV.left); positionne_elements(splitterV.left);
end end
@@ -12931,7 +13127,6 @@ begin
end; end;
end; end;
if (PosSplitter>0) and (PosSPlitter<formPrinc.Width) and (AffMemoFenetre=1) then if (PosSplitter>0) and (PosSPlitter<formPrinc.Width) and (AffMemoFenetre=1) then
begin begin
fenRich.Width:=PosSplitter; fenRich.Width:=PosSplitter;
@@ -12982,6 +13177,10 @@ begin
end; end;
end; end;
couleurs_princ;
//formprinc.panel2.Color:=clred;
SpeedButton1.Align:=alClient;
if debug=1 then Affiche('Initialisations',clLime); if debug=1 then Affiche('Initialisations',clLime);
raz_tout; raz_tout;
@@ -13028,7 +13227,6 @@ begin
end; end;
end; end;
if debug=1 then Affiche('Tentative ouverture liaison centrale',clLime); if debug=1 then Affiche('Tentative ouverture liaison centrale',clLime);
if portCommOuvert or parSocketLenz then if portCommOuvert or parSocketLenz then
With Formprinc do With Formprinc do
@@ -13144,7 +13342,6 @@ begin
ConfCellTCO:=false; ConfCellTCO:=false;
if debug=1 then Affiche('Fini',clLime); if debug=1 then Affiche('Fini',clLime);
end; end;
@@ -15661,8 +15858,29 @@ begin
end; end;
procedure TFormPrinc.TrackBarVitChange(Sender: TObject); procedure TFormPrinc.TrackBarVitChange(Sender: TObject);
var s : string;
i,adr,vit,erreur : integer;
sens : boolean;
begin begin
EditVitesse.Text:=intToSTR(TrackBarVit.position); EditVitesse.Text:=intToSTR(TrackBarVit.position);
s:=editAdrTrain.Text;
val(s,adr,erreur);
if (erreur<>0) or (adr<0) then exit;
//if not(portCommOuvert) and not(parSocketLenz) and not(CDM_Connecte) then exit;
s:=editVitesse.Text;
val(s,vit,erreur);
if (erreur<>0) or (vit<-100) or (vit>100) then exit;
i:=0;s:='';
if combotrains.itemindex<>-1 then
begin
s:=combotrains.Items[combotrains.itemindex];
i:=index_train_nom(s);
end;
//Affiche('Commande vitesse train '+s+' ('+intToSTR(adr)+') à '+IntToSTR(vit)+'%',cllime);
sens:=vit>0;
vitesse_loco(s,i,adr,vit,sens,true);
if s='' then s:=intToSTR(adr);
end; end;
procedure TFormPrinc.EditVitesseChange(Sender: TObject); procedure TFormPrinc.EditVitesseChange(Sender: TObject);
@@ -17094,6 +17312,8 @@ begin
if n>1 then affiche(intToSTR(n)+' clients connectés',clyellow); if n>1 then affiche(intToSTR(n)+' clients connectés',clyellow);
end; end;
end. end.
+18
View File
@@ -126,6 +126,7 @@ var
FormSR: TFormSR; FormSR: TFormSR;
Adr,IndexSig : integer; Adr,IndexSig : integer;
procedure couleurs_SR;
implementation implementation
@@ -464,8 +465,24 @@ begin
maj_db; maj_db;
end; end;
procedure couleurs_SR;
var i : integer;
c : tComponent;
begin
if sombre then with formSR do
begin
color:=couleurfond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end;
end;
procedure TFormSR.FormCreate(Sender: TObject); procedure TFormSR.FormCreate(Sender: TObject);
var i : integer; var i : integer;
c : tcomponent;
begin begin
for i:=0 to 19 do for i:=0 to 19 do
begin begin
@@ -486,6 +503,7 @@ begin
ComboBoxAdr15.items.add(etats[i]); ComboBoxAdr15.items.add(etats[i]);
ComboBoxAdr16.items.add(etats[i]); ComboBoxAdr16.items.add(etats[i]);
end; end;
couleurs_SR;
end; end;
procedure TFormSR.BitBtnokClick(Sender: TObject); procedure TFormSR.BitBtnokClick(Sender: TObject);
+22 -17
View File
@@ -1,8 +1,8 @@
object FormTCO: TFormTCO object FormTCO: TFormTCO
Left = 89 Left = 104
Top = 111 Top = 226
Width = 1212 Width = 1212
Height = 580 Height = 661
VertScrollBar.Visible = False VertScrollBar.Visible = False
Caption = 'c' Caption = 'c'
Color = clBtnFace Color = clBtnFace
@@ -23,8 +23,8 @@ object FormTCO: TFormTCO
OnKeyPress = FormKeyPress OnKeyPress = FormKeyPress
OnMouseWheel = FormMouseWheel OnMouseWheel = FormMouseWheel
DesignSize = ( DesignSize = (
1196 1204
521) 610)
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object LabelZoom: TLabel object LabelZoom: TLabel
@@ -59,7 +59,7 @@ object FormTCO: TFormTCO
Left = 10 Left = 10
Top = 15 Top = 15
Width = 687 Width = 687
Height = 266 Height = 347
HorzScrollBar.Smooth = True HorzScrollBar.Smooth = True
HorzScrollBar.Tracking = True HorzScrollBar.Tracking = True
VertScrollBar.Smooth = True VertScrollBar.Smooth = True
@@ -71,12 +71,12 @@ object FormTCO: TFormTCO
TabOrder = 1 TabOrder = 1
DesignSize = ( DesignSize = (
683 683
262) 343)
object ImageTCO: TImage object ImageTCO: TImage
Left = 120 Left = 120
Top = 41 Top = 41
Width = 486 Width = 486
Height = 176 Height = 257
Anchors = [akLeft, akTop, akRight, akBottom] Anchors = [akLeft, akTop, akRight, akBottom]
AutoSize = True AutoSize = True
ParentShowHint = False ParentShowHint = False
@@ -108,7 +108,7 @@ object FormTCO: TFormTCO
end end
object Panel1: TPanel object Panel1: TPanel
Left = 2 Left = 2
Top = 332 Top = 413
Width = 1143 Width = 1143
Height = 185 Height = 185
Anchors = [akLeft, akRight, akBottom] Anchors = [akLeft, akRight, akBottom]
@@ -1227,7 +1227,7 @@ object FormTCO: TFormTCO
end end
object PopupMenu1: TPopupMenu object PopupMenu1: TPopupMenu
OnPopup = PopupMenu1Popup OnPopup = PopupMenu1Popup
Left = 368 Left = 944
Top = 8 Top = 8
object MenuCouper: TMenuItem object MenuCouper: TMenuItem
Caption = 'Couper' Caption = 'Couper'
@@ -1285,7 +1285,7 @@ object FormTCO: TFormTCO
Caption = '-' Caption = '-'
end end
object Toutslectionner1: TMenuItem object Toutslectionner1: TMenuItem
Caption = 'Tout s'#233'lectionner' Caption = 'Tout s'#233'lectionner ctrl+A'
OnClick = Toutslectionner1Click OnClick = Toutslectionner1Click
end end
object Inserer: TMenuItem object Inserer: TMenuItem
@@ -1297,6 +1297,7 @@ object FormTCO: TFormTCO
end end
object LigneDessous: TMenuItem object LigneDessous: TMenuItem
Caption = 'Ligne en dessous' Caption = 'Ligne en dessous'
Hint = 'ins'#232're une ligne en dessous'
OnClick = LigneDessousClick OnClick = LigneDessousClick
end end
object N7: TMenuItem object N7: TMenuItem
@@ -1304,10 +1305,12 @@ object FormTCO: TFormTCO
end end
object Colonnegauche1: TMenuItem object Colonnegauche1: TMenuItem
Caption = 'Colonne '#224' gauche' Caption = 'Colonne '#224' gauche'
Hint = 'ins'#232're une colonne '#224' gauche'
OnClick = Colonnegauche1Click OnClick = Colonnegauche1Click
end end
object Colonnedroite1: TMenuItem object Colonnedroite1: TMenuItem
Caption = 'Colonne '#224' droite' Caption = 'Colonne '#224' droite'
Hint = 'ins'#232're une colonne '#224' droite'
OnClick = Colonnedroite1Click OnClick = Colonnedroite1Click
end end
end end
@@ -1315,10 +1318,12 @@ object FormTCO: TFormTCO
Caption = 'Supprimer' Caption = 'Supprimer'
object SupprimeLigne: TMenuItem object SupprimeLigne: TMenuItem
Caption = 'Ligne' Caption = 'Ligne'
Hint = 'supprime la ligne point'#233'e'
OnClick = SupprimeLigneClick OnClick = SupprimeLigneClick
end end
object Colonne: TMenuItem object Colonne: TMenuItem
Caption = 'Colonne' Caption = 'Colonne'
Hint = 'supprime la colonne point'#233'e'
OnClick = ColonneClick OnClick = ColonneClick
end end
end end
@@ -1337,17 +1342,17 @@ object FormTCO: TFormTCO
Font.Height = -11 Font.Height = -11
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
Font.Style = [] Font.Style = []
Left = 264 Left = 880
Top = 408 Top = 8
end end
object ColorDialog1: TColorDialog object ColorDialog1: TColorDialog
OnShow = ColorDialog1Show OnShow = ColorDialog1Show
Left = 448 Left = 848
Top = 432 Top = 8
end end
object MainMenuTCO: TMainMenu object MainMenuTCO: TMainMenu
Left = 1000 Left = 912
Top = 48 Top = 8
object MenuTCO: TMenuItem object MenuTCO: TMenuItem
Caption = 'TCO' Caption = 'TCO'
object SauvegarderleTCO1: TMenuItem object SauvegarderleTCO1: TMenuItem
+285 -222
View File
@@ -508,18 +508,18 @@ var
TamponAffecte,TCO_modifie,clicsouris,prise_N, TamponAffecte,TCO_modifie,clicsouris,prise_N,
clicTCO,piloteAig,BandeauMasque,eval_format,sauve_tco,prise_droit,prise_haut, clicTCO,piloteAig,BandeauMasque,eval_format,sauve_tco,prise_droit,prise_haut,
prise_bas,prise_gauche,prise_NE,prise_NO,prise_SE,prise_SO, prise_bas,prise_gauche,prise_NE,prise_NO,prise_SE,prise_SO,ligneAffiche,colonneAffiche,
drag,TCOActive,TCOCree,ancienok,dbleClicTCO,auto_tcurs,EvtClicDet : boolean; drag,TCOActive,TCOCree,ancienok,dbleClicTCO,auto_tcurs,EvtClicDet : boolean;
HtImageTCO,LargImageTCO,XminiSel,YminiSel,XCoupe,Ycoupe,Temposouris, HtImageTCO,LargImageTCO,XminiSel,YminiSel,XCoupe,Ycoupe,Temposouris,ligne_supprime,
XmaxiSel,YmaxiSel,AncienXMiniSel,AncienXMaxiSel,AncienYMiniSel,AncienYMaxiSel, XmaxiSel,YmaxiSel,AncienXMiniSel,AncienXMaxiSel,AncienYMiniSel,AncienYMaxiSel,
Xclic,Yclic,XClicCellInserer,YClicCellInserer,RatioC,ModeCouleurCanton, Xclic,Yclic,XClicCellInserer,YClicCellInserer,RatioC,ModeCouleurCanton,
AncienXClicCell,AncienYClicCell,TCODrag,epaisseur_voies,Ax,Ay,TpsBougeSouris, AncienXClicCell,AncienYClicCell,TCODrag,epaisseur_voies,Ax,Ay,TpsBougeSouris,
Epaisseur,oldX,oldY,offsetSourisY,offsetSourisX,AvecVerifIconesTCO,indexTrace,IndexTCOCourant, Epaisseur,oldX,oldY,offsetSourisY,offsetSourisX,AvecVerifIconesTCO,indexTrace,IndexTCOCourant,
ancienTraceX,ancienTraceY,rangUndo,NbreTCO,IndexTCOCreate,deltaXrect,deltaYrect, ancienTraceX,ancienTraceY,rangUndo,NbreTCO,IndexTCOCreate,deltaXrect,deltaYrect,
CellX,CellY : integer; CellX,CellY,AncienXclic,AncienYclic,xCadre1,yCadre1,xCadre2,yCadre2,colonne_supprime : integer;
titre_Fonte : string; titre_Fonte,s90,s91,s93,s94,s100,s101 : string;
// structure de tous les tco // structure de tous les tco
TCO : array[1..10] of TCO : array[1..10] of
@@ -599,6 +599,8 @@ procedure init_tampon_copiercoller;
procedure efface_trajet(det,train : integer); procedure efface_trajet(det,train : integer);
Procedure Texte_aig_fond(adresse : integer); Procedure Texte_aig_fond(adresse : integer);
procedure Maj_Aig_TCO(indexTCO : integer); procedure Maj_Aig_TCO(indexTCO : integer);
procedure encadre_ligne;
procedure encadre_colonne;
implementation implementation
@@ -7019,7 +7021,6 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
moveto(xf,yf);lineto(xc,yc); moveto(xf,yf);lineto(xc,yc);
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur; if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,y0); lineto(xc,y0);
end; end;
end; end;
@@ -7100,7 +7101,7 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
r : Trect; r : Trect;
fond : tcolor; fond : tcolor;
procedure trajet_droit; procedure trajet_droit;
begin begin
couleur:=clvoies[indexTCO]; couleur:=clvoies[indexTCO];
if mode>0 then if mode>0 then
@@ -7142,7 +7143,6 @@ procedure trajet_droit;
end; end;
end; end;
begin begin
x0:=(x-1)*LargeurCell[indexTCO]; // x origine x0:=(x-1)*LargeurCell[indexTCO]; // x origine
y0:=(y-1)*hauteurCell[indexTCO]; // y origine y0:=(y-1)*hauteurCell[indexTCO]; // y origine
@@ -8792,9 +8792,12 @@ procedure TFormTCO.FormCreate(Sender: TObject);
var s : string; var s : string;
begin begin
if affevt or (debug=1) then Affiche('FormTCO'+intToSTR(indexTCOCreate)+' create',clyellow); if affevt or (debug=1) then Affiche('FormTCO'+intToSTR(indexTCOCreate)+' create',clyellow);
//Screen.OnActiveControlChange := ActiveControlChanged;
offsetSourisY:=-10; // permet de tenir l'icone au milieu quand on fait un glisser offsetSourisY:=-10; // permet de tenir l'icone au milieu quand on fait un glisser
offsetSourisX:=-10; offsetSourisX:=-10;
RadioGroupSel.ItemIndex:=0; RadioGroupSel.ItemIndex:=0;
ligne_supprime:=0;
colonne_supprime:=0;
auto_tcurs:=true; auto_tcurs:=true;
TCO_modifie:=false; TCO_modifie:=false;
rangUndo:=1; rangUndo:=1;
@@ -8885,6 +8888,21 @@ begin
ImagePalette23.Hint:=s;ImagePalette23.ShowHint:=true; ImagePalette23.Hint:=s;ImagePalette23.ShowHint:=true;
ImagePalette25.Hint:=s;ImagePalette25.ShowHint:=true; ImagePalette25.Hint:=s;ImagePalette25.ShowHint:=true;
s90:='Insère une ligne au dessus';
popupMenu1.Items[9][0].Hint:=s90;
s91:='Insère une ligne en dessous';
popupMenu1.Items[9][1].Hint:=s91;
s93:='Insère une colonne à gauche';
popupMenu1.Items[9][3].Hint:=s93;
s94:='Insère une colonne à droite';
popupMenu1.Items[9][4].Hint:=s94;
s100:='Supprime la ligne pointée';
popupMenu1.Items[10][0].Hint:=s100;
s101:='Supprime la colonne pointée';
popupMenu1.Items[10][1].Hint:=s101;
tcoCree:=true; tcoCree:=true;
if debug=1 then Affiche('Fin création fenêtre TCO',clLime); if debug=1 then Affiche('Fin création fenêtre TCO',clLime);
end; end;
@@ -9063,11 +9081,12 @@ end;
// allume ou éteint (mode=0 ou 1) la voie du train "train", zone de det1 à det2 sur le TCO // allume ou éteint (mode=0 ou 1) la voie du train "train", zone de det1 à det2 sur le TCO
// det1 et det2 doivent être consécutifs sur le TCO, mais peuvent être séparés par des aiguillages
// si mode=0 : éteint // si mode=0 : éteint
// =1 : couleur détecteur allumé // =1 : couleur détecteur allumé
// =2 : couleur de l'index train // =2 : couleur de l'index train
// Ne nécessite pas que les aiguillages aoient bien positionnés entre det1 et det2 // Ne nécessite pas que les aiguillages aoient bien positionnés entre det1 et det2
// procédure récursive quand on passe par un aiguillage pour explorer les éléments opposés d'ou on vient si on l'aborde en pointe // procédure récursive quand on passe par un aiguillage en pointe pour explorer les éléments opposés
procedure zone_tco(indexTCO,det1,det2,train,mode: integer); procedure zone_tco(indexTCO,det1,det2,train,mode: integer);
var i,ir,adresse,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iteration,indexIr : integer; var i,ir,adresse,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iteration,indexIr : integer;
memtrouve,sortir,casok,indextrouve : boolean; memtrouve,sortir,casok,indextrouve : boolean;
@@ -9099,15 +9118,15 @@ var i,ir,adresse,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iteratio
y:=yn; y:=yn;
end; end;
// El_Tco : trouve l'élément en x,y et constuit la route à l'élément de destination suivant, suivant // El_Tco : trouve l'élément en x,y et constuit la route à l'élément de destination suivant, suivant
// les variables ancienX et ancienY // les variables ancienX et ancienY
// x, y et ir sont locales pour des récursivités différentes, donc on les passe en paramètre pour transmettre à la // x, y et ir sont locales pour des récursivités différentes, donc on les passe en paramètre pour transmettre à la
// récursivité suivante leur valeur, mais elles reprennent leur valeurs initiales à la remontée vers la résursivité appellante. // récursivité suivante leur valeur, mais elles reprennent leur valeurs initiales à la remontée vers la résursivité appellante.
Procedure El_tco(x,y,train : integer; ir : integer); Procedure El_tco(x,y,train : integer; ir : integer);
var mdl : Tequipement; var mdl : Tequipement;
i,j :integer; i,j :integer;
sortir : boolean; sortir : boolean;
begin begin
// répète la route depuis un aiguillage // répète la route depuis un aiguillage
inc(iteration); inc(iteration);
if DebugTCO then AfficheDebug('El_TCO',clorange); if DebugTCO then AfficheDebug('El_TCO',clorange);
@@ -9301,7 +9320,6 @@ begin
el_tco(x,y,train,ir); // nouvelle itération el_tco(x,y,train,ir); // nouvelle itération
end; end;
end; end;
end; end;
16 : if ancienX<x then begin xn:=x;yn:=y+1 ;end else begin xn:=x-1;yn:=y-1;end; 16 : if ancienX<x then begin xn:=x;yn:=y+1 ;end else begin xn:=x-1;yn:=y-1;end;
17 : if ancienY<y then begin xn:=x;yn:=y+1 ;end else begin xn:=x+1;yn:=y-1;end; 17 : if ancienY<y then begin xn:=x;yn:=y+1 ;end else begin xn:=x+1;yn:=y-1;end;
@@ -9742,7 +9760,7 @@ begin
if (i>200) or (iteration>200) then sortir:=true; if (i>200) or (iteration>200) then sortir:=true;
Maj_coords(AncienX,AncienY,x,y); Maj_coords(AncienX,AncienY,x,y);
until sortir or memtrouve; until sortir or memtrouve;
if DebugTCO and not(memtrouve) then AfficheDebug('Fin de boucle',clOrange); if DebugTCO and not(memtrouve) then AfficheDebug('Fin de boucle dét '+intToSTR(det2)+' non trouvé',clOrange);
//mémoriser l'index de route si on a trouvé det2, et uniquement sur la première itération quand on l'a trouvé //mémoriser l'index de route si on a trouvé det2, et uniquement sur la première itération quand on l'a trouvé
if memTrouve and not(indextrouve) then if memTrouve and not(indextrouve) then
@@ -9752,7 +9770,7 @@ begin
end; end;
if i>200 then Affiche('Erreur 487 : limite d''itérations TCO',clred); if i>200 then Affiche('Erreur 487 : limite d''itérations TCO',clred);
if iteration>200 then Affiche('Erreur 488 : limite de récursivité TCO',clred); if iteration>200 then Affiche('Erreur 488 : limite de récursivité TCO',clred);
end; end;
// Début de la procédure zone_tco // Début de la procédure zone_tco
@@ -10921,18 +10939,84 @@ begin
result:=res; result:=res;
end; end;
// efface le contenu de la cellule, sauf le fond
procedure raz_cellule(indexTCO,x,y : integer);
begin
tco[indextco,x,y].Adresse:=0;
tco[indextco,x,y].Mode:=0;
tco[indextco,x,y].Trajet:=0;
tco[indextco,x,y].inverse:=false;
tco[indextco,x,y].repr:=0;
tco[indextco,x,y].Bimage:=0;
tco[indextco,x,y].liaisons:=0;
tco[indextco,x,y].epaisseurs:=0;
tco[indextco,x,y].buttoir:=0;
tco[indextco,x,y].pont:=0;
tco[indextco,x,y].sortie:=0;
tco[indextco,x,y].Texte:='';
tco[indextco,x,y].Fonte:='';
tco[indextco,x,y].FontStyle:='';
tco[indextco,x,y].CoulFonte:=0;
// tco[indextco,x,y].CouleurFond:=0;
tco[indextco,x,y].PiedFeu:=0;
tco[indextco,x,y].x:=0;
tco[indextco,x,y].y:=0;
tco[indextco,x,y].xUndo:=0;
tco[indextco,x,y].yUndo:=0;
tco[indextco,x,y].FeuOriente:=0;
end;
procedure insere_colonne(indexTCO,colonne : integer);
var x,y : integer;
begin
if NbreCellX[indexTCO]>=MaxCellX then exit;
for x:=NbreCellX[indexTCO] downto colonne do
begin
for y:=1 to NbreCellY[indexTCO] do tco[indextco,x+1,y]:=tco[indextco,x,y];
end;
for y:=1 to NbreCellY[indexTCO] do
begin
raz_cellule(indextco,colonne,y);
tco[indextco,colonne,y].Couleurfond:=Clfond[IndexTCO];
end;
inc(NbreCellX[indexTCO]);
tco_modifie:=true;
end;
procedure insere_ligne(indexTCO,ligne : integer);
var x,y : integer;
begin
if NbreCellY[indexTCO]>=MaxCellY then exit;
for y:=NbreCellY[indexTCO] downto ligne do
for x:=1 to NbreCellX[indexTCO] do tco[indextco,x,y+1]:=tco[indextco,x,y];
for x:=1 to NbreCellX[indexTCO] do
begin
raz_cellule(indextco,x,ligne);
tco[indextco,x,ligne].Couleurfond:=Clfond[IndexTCO];
end;
inc(NbreCellY[indexTCO],1);
tco_modifie:=true;
end;
procedure Annule(indextco : integer); procedure Annule(indextco : integer);
var x,y,xu,yu,Xplace,yplace,adresse,i : integer; var x,y,xu,yu,Xplace,yplace,adresse,i : integer;
begin begin
if (TamponTCO_org.numTCO<>indexTCO) then exit;
if ligne_supprime<>0 then insere_ligne(indexTCO,ligne_Supprime);
if colonne_supprime<>0 then insere_colonne(indexTCO,colonne_Supprime);
if TamponAffecte then if TamponAffecte then
begin begin
if (xCoupe<>0) and (ycoupe<>0) and (TamponTCO_org.numTCO=indexTCO) then if (xCoupe<>0) and (ycoupe<>0) then
begin begin
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do // rectangle de la sélection for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do // rectangle de la sélection
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
begin begin
xPlace:=xCoupe+x-TamponTCO_Org.x1; // destination xPlace:=xCoupe+x-TamponTCO_Org.x1; // destination
yPlace:=yCoupe+y-TamponTCO_Org.y1; yPlace:=yCoupe+y-TamponTCO_Org.y1;
if (xPlace<=NbreCellX[indexTCO]) and (yPlace<=NbreCellY[indexTCO]) then if (xPlace<=NbreCellX[indexTCO]) and (yPlace<=NbreCellY[indexTCO]) then
begin begin
tco[indextco,xPlace,yPlace]:=tampontco[x,y]; tco[indextco,xPlace,yPlace]:=tampontco[x,y];
@@ -10944,7 +11028,10 @@ begin
end; end;
end; end;
Affiche_TCO(indextco); Affiche_TCO(indextco);
tco_modifie:=true;
tamponaffecte:=false; tamponaffecte:=false;
ligne_supprime:=0;
colonne_supprime:=0;
exit; exit;
end; end;
@@ -10959,6 +11046,7 @@ begin
if (xu<=NbreCellX[indexTCO]) and (yu<=NbreCellY[indexTCO]) then tco[indextco,xu,yu]:=undo[rangUndo].element[i]; if (xu<=NbreCellX[indexTCO]) and (yu<=NbreCellY[indexTCO]) then tco[indextco,xu,yu]:=undo[rangUndo].element[i];
end; end;
Affiche_tco(indexTCO); Affiche_tco(indexTCO);
tco_modifie:=true;
exit; exit;
end; end;
end; end;
@@ -10993,6 +11081,7 @@ begin
moveto(x*LargeurCell[indexTCO],1); moveto(x*LargeurCell[indexTCO],1);
LineTo(x*LargeurCell[indexTCO],hauteurCell[indexTCO]*NbreCelly[indexTCO]); LineTo(x*LargeurCell[indexTCO],hauteurCell[indexTCO]*NbreCelly[indexTCO]);
end; end;
// lignes horizontales
for y:=1 to NbreCelly[indexTCO] do for y:=1 to NbreCelly[indexTCO] do
begin begin
moveto(1,y*hauteurCell[indexTCO]); moveto(1,y*hauteurCell[indexTCO]);
@@ -11001,32 +11090,6 @@ begin
end; end;
end; end;
// efface le contenu de la cellule, sauf le fond
procedure raz_cellule(indexTCO,x,y : integer);
begin
tco[indextco,x,y].Adresse:=0;
tco[indextco,x,y].Mode:=0;
tco[indextco,x,y].Trajet:=0;
tco[indextco,x,y].inverse:=false;
tco[indextco,x,y].repr:=0;
tco[indextco,x,y].Bimage:=0;
tco[indextco,x,y].liaisons:=0;
tco[indextco,x,y].epaisseurs:=0;
tco[indextco,x,y].buttoir:=0;
tco[indextco,x,y].pont:=0;
tco[indextco,x,y].sortie:=0;
tco[indextco,x,y].Texte:='';
tco[indextco,x,y].Fonte:='';
tco[indextco,x,y].FontStyle:='';
tco[indextco,x,y].CoulFonte:=0;
// tco[indextco,x,y].CouleurFond:=0;
tco[indextco,x,y].PiedFeu:=0;
tco[indextco,x,y].x:=0;
tco[indextco,x,y].y:=0;
tco[indextco,x,y].xUndo:=0;
tco[indextco,x,y].yUndo:=0;
tco[indextco,x,y].FeuOriente:=0;
end;
procedure copier(indexTCO : integer); procedure copier(indexTCO : integer);
var x,y : integer; var x,y : integer;
@@ -11051,6 +11114,12 @@ end;
procedure couper(indexTCO: integer); procedure couper(indexTCO: integer);
var x,y,XCell1,YCell1,xCell2,yCell2 : integer; var x,y,XCell1,YCell1,xCell2,yCell2 : integer;
begin begin
if (XclicCell[indexTCO]=0) or (YclicCell[indexTCO]=0) then exit;
//Affiche(intToSTR(ancienXclic)+' '+intToSTR(XclicCell[indexTCO]),clred);
if (AncienXclic=XclicCell[indexTCO]) and (AncienYclic=YclicCell[indexTCO]) then exit;
AncienXclic:=XclicCell[indexTCO];
AncienYclic:=YclicCell[indexTCO];
with formTCO[indexTCO] do with formTCO[indexTCO] do
begin begin
EditAdrElement.Text:=''; EditAdrElement.Text:='';
@@ -11081,6 +11150,7 @@ begin
raz_cellule(indextco,XclicCell[indexTCO],YClicCell[indexTCO]); raz_cellule(indextco,XclicCell[indexTCO],YClicCell[indexTCO]);
TamponTCO_org.numTCO:=indexTCO;
efface_entoure(indexTCO); efface_entoure(indexTCO);
efface_cellule(indexTCO,formTCO[indexTCO].ImageTCO.Canvas,XclicCell[indexTCO],YClicCell[indexTCO],PmCopy); efface_cellule(indexTCO,formTCO[indexTCO].ImageTCO.Canvas,XclicCell[indexTCO],YClicCell[indexTCO],PmCopy);
TamponAffecte:=true; TamponAffecte:=true;
@@ -11159,6 +11229,26 @@ begin
SelectionAffichee[indexTCO]:=true; SelectionAffichee[indexTCO]:=true;
end; end;
procedure selec_tout(indexTCO : integer);
begin
if indexTCO<0 then exit;
xminiSel:=0;
yminiSel:=0;
xMaxiSel:=(NbreCellX[indexTCO]-1)*LargeurCell[indexTCO];
yMaxiSel:=(NbreCellY[indexTCO]-1)*hauteurCell[indexTCO];
rAncien:=rect(xminiSel,YminiSel,xmaxiSel+LargeurCell[indexTCO],YMaxiSel+hauteurCell[indexTCO]);
SelectionAffichee[indexTCO]:=true;
with formTCO[indexTCO].imageTCO.Canvas do
begin
Pen.Mode:=PmXor;
Pen.color:=clGrille[IndexTCO];
Brush.Color:=clblue;
Rectangle(rAncien);
end;
end;
// pour avoir les evts keydown, il faut dévalider les propriétés tabstop des boutons de la form. // pour avoir les evts keydown, il faut dévalider les propriétés tabstop des boutons de la form.
procedure TFormTCO.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); procedure TFormTCO.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
var s,d,indexTCO,x,y : integer; var s,d,indexTCO,x,y : integer;
@@ -11306,9 +11396,12 @@ begin
end; end;
end; end;
if (ssCtrl in Shift) and (Key = Ord('Z')) then if (ssCtrl in Shift) then
begin begin
annule(indexTCO); case char(Key) of
'Z' : annule(indexTCO);
'A' : selec_tout(indexTCO);
end;
exit; exit;
end; end;
@@ -11322,51 +11415,6 @@ begin
clicTCO:=false; clicTCO:=false;
end; end;
end; end;
{
procedure Elmentdroit1Click(Sender: TObject);
var indexTCO : integer;
begin
indexTCO:=Index_tco(sender);
dessin_1(indexTCO,FormTCO[indexTCO].ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
FormTCO[indexTCO].EditAdrElement.Text:=IntToSTR(tco[indextco,XClicCellInserer,YClicCellInserer].Adresse);
end;
procedure Courbegaucheversdroite1Click(Sender: TObject);
var Position: TPoint;
indexTCO : integer;
begin
indexTCO:=Index_tco(sender);
dessin_9(indexTCO,FormTCO[indexTCO].ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
GetCursorPos(Position);
end;
procedure Courbedroiteversgauche1Click(Sender: TObject);
var Position: TPoint;
indexTCO : integer;
begin
indexTCO:=Index_tco(sender);
dessin_8(indexTCO,FormTCO[indexTCO].ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
GetCursorPos(Position);
end;
procedure CourbeSupD1Click(Sender: TObject);
var Position: TPoint;
indexTCO : integer;
begin
indexTCO:=Index_tco(sender);
dessin_7(indexTCO,FormTCO[indexTCO].ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
GetCursorPos(Position);
end;
procedure CourbeSupG1Click(Sender: TObject);
var Position: TPoint;
indexTCO : integer;
begin
indexTCO:=Index_tco(sender);
dessin_6(indexTCO,FormTCO[indexTCO].ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
GetCursorPos(Position);
end;
}
procedure debut_drag(image : TImage); procedure debut_drag(image : TImage);
var h,l,indexTCO : integer; var h,l,indexTCO : integer;
@@ -11677,7 +11725,6 @@ begin
end_drag(12,x,y,Sender,Target); end_drag(12,x,y,Sender,Target);
end; end;
procedure TFormTCO.ImagePalette13EndDrag(Sender, Target: TObject; X,Y: Integer); procedure TFormTCO.ImagePalette13EndDrag(Sender, Target: TObject; X,Y: Integer);
begin begin
end_drag(13,x,y,Sender,Target); end_drag(13,x,y,Sender,Target);
@@ -11754,6 +11801,8 @@ begin
end; end;
Affiche_TCO(indexTCO); Affiche_TCO(indexTCO);
TCO_modifie:=true; TCO_modifie:=true;
ligne_supprime:=0;
colonne_supprime:=0;
end; end;
end; end;
@@ -11766,6 +11815,8 @@ begin
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
copier(indexTCO); copier(indexTCO);
ligne_supprime:=0;
colonne_supprime:=0;
end; end;
// supprimer la sélection // supprimer la sélection
@@ -11778,6 +11829,8 @@ begin
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
couper(indexTCO); couper(indexTCO);
ligne_supprime:=0;
colonne_supprime:=0;
end; end;
@@ -12032,7 +12085,6 @@ begin
if premier then result:=15; if premier then result:=15;
if not(premier) and not(dernier) then result:=21; if not(premier) and not(dernier) then result:=21;
end; end;
end; end;
16 : begin 16 : begin
@@ -12240,24 +12292,21 @@ begin
indexTCO:=index_tco(sender); indexTCO:=index_tco(sender);
GetCursorPos(Position); GetCursorPos(Position);
Position:=ImageTCO.screenToCLient(Position); Position:=ImageTCO.screenToCLient(Position);
Xclic:=position.X;
YClic:=position.Y; Xclic:=position.X div LargeurCell[indexTCO] + 1;
// coordonnées grille Yclic:=position.Y div hauteurCell[indexTCO] + 1;
Xclic:=Xclic div LargeurCell[indexTCO] + 1;
Yclic:=Yclic div hauteurCell[indexTCO] + 1;
XclicCell[indexTCO]:=Xclic;
YclicCell[indexTCO]:=Yclic;
if button=mbLeft then if button=mbLeft then
begin begin
if affEvt then Affiche('TCO Souris clicG enfoncée',clYellow); if affEvt then Affiche('TCO Souris clicG enfoncée',clYellow);
if dbleClicTCO then begin dbleClicTCO:=false;exit;end; if dbleClicTCO then begin dbleClicTCO:=false;exit;end;
if not(clicSouris) then // coordonnées grille
begin AncienXclic:=XclicCell[indexTCO];
// front montant souris AncienYclic:=YclicCell[indexTCO];
end; XclicCell[indexTCO]:=Xclic;
YclicCell[indexTCO]:=Yclic;
auto_tcurs:=true; auto_tcurs:=true;
clicsouris:=true; clicsouris:=true;
@@ -13155,7 +13204,7 @@ begin
aiguillage[Index_Aig(117)].position:=const_devie; aiguillage[Index_Aig(117)].position:=const_devie;
//debugTco:=true; //debugTco:=true;
zone_tco(1,518,514,1,1); zone_tco(1,527,519,1,1);
// zone_tco(518,515,1); // zone_tco(518,515,1);
//zone_tco(522,514,1); //zone_tco(522,514,1);
@@ -13611,6 +13660,7 @@ begin
c:=c.GetParentComponent; // scrollBox c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
indexTCOcourant:=indexTCO;
PopUpMenu1.Items[9][0].Caption:='Ligne au dessus de la '+intToSTR(YclicCell[indexTCO]); PopUpMenu1.Items[9][0].Caption:='Ligne au dessus de la '+intToSTR(YclicCell[indexTCO]);
PopUpMenu1.Items[9][1].Caption:='Ligne en dessous de la '+intToSTR(YclicCell[indexTCO]); PopUpMenu1.Items[9][1].Caption:='Ligne en dessous de la '+intToSTR(YclicCell[indexTCO]);
@@ -13671,6 +13721,41 @@ begin
PopUpMenu1.Items[6].Enabled:=false; PopUpMenu1.Items[6].Enabled:=false;
end; end;
// encadre la ligne cliquée du tco courant
procedure encadre_ligne;
var ligneY : integer;
begin
ligneY:=YClicCell[indexTCOcourant];
xCadre1:=1;yCadre1:=(ligneY-1)*HauteurCell[IndexTcoCourant];
xCadre2:=NbreCellX[IndexTCOCourant]*LargeurCell[IndexTCOCourant] ; yCadre2:=(ligneY)*HauteurCell[IndexTcoCourant];
with PcanvasTCO[indexTCOCourant] do
begin
pen.Mode:=pmXor;
pen.width:=5;
pen.Color:=clred;
Brush.Color:=clblack;
Rectangle(xCadre1,yCadre1,xCadre2,yCadre2);
ligneAffiche:=not(ligneAffiche);
end;
end;
// encadre la colonne cliquée du tco courant
procedure encadre_colonne;
var ligneY : integer;
begin
ligneY:=XClicCell[indexTCOcourant];
xCadre1:=(ligneY-1)*HauteurCell[IndexTcoCourant];yCadre1:=1;
xCadre2:=(ligneY)*HauteurCell[IndexTcoCourant]; yCadre2:=NbreCellY[IndexTCOCourant]*HauteurCell[IndexTcoCourant];
with PcanvasTCO[indexTCOCourant] do
begin
pen.Mode:=pmXor;
pen.width:=5;
pen.Color:=clred;
Brush.color:=clBlack;
Rectangle(xCadre1,yCadre1,xCadre2,yCadre2);
colonneAffiche:=not(colonneAffiche);
end;
end;
procedure TFormTCO.N3Click(Sender: TObject); procedure TFormTCO.N3Click(Sender: TObject);
var c : Tcomponent; var c : Tcomponent;
@@ -13686,30 +13771,6 @@ begin
actualise(IndexTCO); // actualiser après avoir affiché formConfCellTCO actualise(IndexTCO); // actualiser après avoir affiché formConfCellTCO
end; end;
procedure TFormTCO.LigneDessusClick(Sender: TObject);
var x,y,indexTCO : integer;
c : tcomponent;
begin
c:=popupmenu1.PopupComponent ; // imageTCO
c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c);
if NbreCellY[indexTCO]>=MaxCellY then exit;
TamponAffecte:=false;
init_tampon_copiercoller;
for y:=NbreCellY[indexTCO]-1 downto YClicCell[indexTCO] do
for x:=1 to NbreCellX[indexTCO] do tco[indextco,x,y+1]:=tco[indextco,x,y];
for x:=1 to NbreCellX[indexTCO] do
begin
raz_cellule(indextco,x,YClicCell[indexTCO]);
end;
inc(NbreCellY[indexTCO]);
affiche_TCO(indexTCO);
end;
procedure TFormTCO.LigneDessousClick(Sender: TObject); procedure TFormTCO.LigneDessousClick(Sender: TObject);
var x,y,indexTCO : integer; var x,y,indexTCO : integer;
c : tcomponent; c : tcomponent;
@@ -13718,67 +13779,35 @@ begin
c:=c.GetParentComponent; // scrollBox c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
if NbreCellY[indexTCO]>=MaxCellY then exit; if NbreCellY[indexTCO]>=MaxCellY then exit;
TamponAffecte:=false; TamponAffecte:=false;
init_tampon_copiercoller; init_tampon_copiercoller;
ligne_Supprime:=YClicCell[indexTCO]+1; // variable globale
for y:=NbreCellY[indexTCO] downto YClicCell[indexTCO]+1 do insere_ligne(indexTCO,ligne_Supprime);
begin
for x:=1 to NbreCellX[indexTCO] do tco[indextco,x,y+1]:=tco[indextco,x,y];
end;
for x:=1 to NbreCellX[indexTCO] do
begin
raz_cellule(indextco,x,YClicCell[indexTCO]);
end;
inc(NbreCellY[indexTCO]);
affiche_TCO(indexTCO); affiche_TCO(indexTCO);
end; end;
procedure TFormTCO.SupprimeLigneClick(Sender: TObject); procedure TFormTCO.LigneDessusClick(Sender: TObject);
var x,y,indexTCO : integer; var c : tcomponent;
c : tcomponent; indexTCO : integer;
begin begin
c:=popupmenu1.PopupComponent ; // imageTCO c:=popupmenu1.PopupComponent ; // imageTCO
c:=c.GetParentComponent; // scrollBox c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
if NbreCellY[indexTCO]<=1 then exit;
if NbreCellY[indexTCO]>=MaxCellY then exit;
TamponAffecte:=false; TamponAffecte:=false;
// tampon de sauvegarde init_tampon_copiercoller;
TamponTCO_org.numTCO:=indexTCO; ligne_Supprime:=YClicCell[indexTCO]; // variable globale
TamponTCO_Org.NbreCellX:=NbreCellX[indexTCO]; insere_ligne(indexTCO,ligne_Supprime);
TamponTCO_Org.NbreCellY:=NbreCellY[indexTCO];
TamponTCO_Org.x1:=1;
TamponTCO_Org.x2:=NbreCellX[indexTCO];
TamponTCO_Org.y1:=YClicCell[indexTCO];
TamponTCO_Org.y2:=YClicCell[indexTCO];
xcoupe:=1;ycoupe:=1;
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
begin
//Affiche(intToSTR(x)+' '+intToSTR(y),clyellow);
tampontco[x,y]:=tco[indextco,x,y];
end;
TamponAffecte:=true;
// supression ligne
for y:=YClicCell[indexTCO] to NbreCellY[indexTCO]-1 do
begin
for x:=1 to NbreCellX[indexTCO] do tco[indextco,x,y]:=tco[indextco,x,y+1];
end;
for x:=1 to NbreCellX[indexTCO] do
begin
raz_cellule(indextco,x,NbreCellY[indexTCO]);
tco[indextco,x,NbreCellY[indexTCO]].Couleurfond:=Clfond[IndexTCO];
end;
dec(NbreCellY[indexTCO]);
affiche_TCO(indexTCO); affiche_TCO(indexTCO);
end; end;
// insersion colonne
procedure TFormTCO.Colonnegauche1Click(Sender: TObject); procedure TFormTCO.Colonnegauche1Click(Sender: TObject);
var x,y,indexTCO : integer; var indexTCO : integer;
c : tcomponent; c : tcomponent;
begin begin
c:=popupmenu1.PopupComponent ; // imageTCO c:=popupmenu1.PopupComponent ; // imageTCO
@@ -13786,19 +13815,11 @@ begin
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
if NbreCellX[indexTCO]>=MaxCellX then exit; if NbreCellX[indexTCO]>=MaxCellX then exit;
TamponAffecte:=false; TamponAffecte:=false;
init_tampon_copiercoller; init_tampon_copiercoller;
colonne_supprime:=XClicCell[indexTCO];
for x:=NbreCellX[indexTCO] downto XClicCell[indexTCO] do insere_colonne(indexTCO,colonne_supprime);
begin
for y:=1 to NbreCellY[indexTCO] do tco[indextco,x+1,y]:=tco[indextco,x,y];
end;
for y:=1 to NbreCellY[indexTCO] do
begin
raz_cellule(indextco,XClicCell[indexTCO],y);
tco[indextco,XClicCell[indexTCO],y].Couleurfond:=Clfond[IndexTCO];
end;
inc(NbreCellX[indexTCO]);
affiche_TCO(indexTCO); affiche_TCO(indexTCO);
end; end;
@@ -13811,23 +13832,65 @@ begin
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
if NbreCellX[indexTCO]>=MaxCellX then exit; if NbreCellX[indexTCO]>=MaxCellX then exit;
TamponAffecte:=false; TamponAffecte:=false;
init_tampon_copiercoller; init_tampon_copiercoller;
colonne_supprime:=XClicCell[indexTCO]+1;
for x:=NbreCellX[indexTCO] downto XClicCell[indexTCO]+1 do insere_colonne(indexTCO,colonne_supprime);
begin
for y:=1 to NbreCellY[indexTCO] do tco[indextco,x+1,y]:=tco[indextco,x,y];
end;
for y:=1 to NbreCellY[indexTCO] do
begin
raz_cellule(indextco,XClicCell[indexTCO]+1,y);
tco[indextco,XClicCell[indexTCO]+1,y].Couleurfond:=Clfond[IndexTCO];
end;
inc(NbreCellX[indexTCO]);
affiche_TCO(indexTCO); affiche_TCO(indexTCO);
end; end;
procedure TFormTCO.SupprimeLigneClick(Sender: TObject);
var x,y,indexTCO : integer;
c : tcomponent;
begin
c:=popupmenu1.PopupComponent ; // imageTCO
c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c);
if NbreCellY[indexTCO]<=1 then exit;
TamponAffecte:=true;
ligne_supprime:=YClicCell[indexTCO];
// tampon de sauvegarde
TamponTCO_org.numTCO:=indexTCO;
TamponTCO_Org.NbreCellX:=NbreCellX[indexTCO];
TamponTCO_Org.NbreCellY:=NbreCellY[indexTCO];
TamponTCO_Org.x1:=1;
TamponTCO_Org.y1:=ligne_supprime;
TamponTCO_Org.x2:=NbreCellX[indexTCO];
TamponTCO_Org.y2:=ligne_supprime;
// case de destination
xcoupe:=1;
ycoupe:=ligne_supprime;
// remplir tempon de sauvegarde
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
begin
//Affiche(intToSTR(x)+' '+intToSTR(y),clyellow);
tampontco[x,y]:=tco[indextco,x,y];
end;
// supression ligne
for y:=YClicCell[indexTCO] to NbreCellY[indexTCO]-1 do
begin
for x:=1 to NbreCellX[indexTCO] do tco[indextco,x,y]:=tco[indextco,x,y+1];
end;
for x:=1 to NbreCellX[indexTCO] do
begin
raz_cellule(indextco,x,NbreCellY[indexTCO]);
tco[indextco,x,NbreCellY[indexTCO]].Couleurfond:=Clfond[IndexTCO];
end;
dec(NbreCellY[indexTCO]);
TCO_modifie:=true;
affiche_TCO(indexTCO);
end;
// suppression colonne // suppression colonne
procedure TFormTCO.ColonneClick(Sender: TObject); procedure TFormTCO.ColonneClick(Sender: TObject);
var x,y,indexTCO : integer; var x,y,indexTCO : integer;
@@ -13838,19 +13901,25 @@ begin
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
if NbreCellX[indexTCO]<=1 then exit; if NbreCellX[indexTCO]<=1 then exit;
TamponAffecte:=false; TamponAffecte:=true;
colonne_supprime:=XClicCell[indexTCO];
// tampon de sauvegarde // tampon de sauvegarde
TamponTCO_org.numTCO:=indexTCO;
TamponTCO_Org.NbreCellX:=NbreCellX[indexTCO]; TamponTCO_Org.NbreCellX:=NbreCellX[indexTCO];
TamponTCO_Org.NbreCellY:=NbreCellY[indexTCO]; TamponTCO_Org.NbreCellY:=NbreCellY[indexTCO];
TamponTCO_Org.x1:=xClicCell[indexTCO]; TamponTCO_Org.x1:=colonne_supprime;
TamponTCO_Org.x2:=xClicCell[indexTCO]; TamponTCO_Org.x2:=colonne_supprime;
TamponTCO_Org.y1:=1; TamponTCO_Org.y1:=1;
TamponTCO_Org.y2:=NbreCellY[indexTCO]; TamponTCO_Org.y2:=NbreCellY[indexTCO];
xcoupe:=1;ycoupe:=1;
// cellule de destination
xcoupe:=colonne_supprime;
ycoupe:=1;
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
tampontco[x,y]:=tco[indextco,x,y]; tampontco[x,y]:=tco[indextco,x,y];
TamponAffecte:=true;
// supression colonne // supression colonne
for x:=xClicCell[indexTCO] to NbreCellx[indexTCO]-1 do for x:=xClicCell[indexTCO] to NbreCellx[indexTCO]-1 do
@@ -13866,7 +13935,7 @@ begin
tco[indextco,NbreCellx[indexTCO],y].CouleurFond:=Clfond[IndexTCO]; tco[indextco,NbreCellx[indexTCO],y].CouleurFond:=Clfond[IndexTCO];
end; end;
dec(NbreCellX[indexTCO]); dec(NbreCellX[indexTCO]);
TCO_modifie:=true;
affiche_TCO(indexTCO); affiche_TCO(indexTCO);
end; end;
@@ -13917,7 +13986,10 @@ begin
{GetCursorPos(Position); {GetCursorPos(Position);
x:=position.x div LargeurCell[indexTCO] +1 ; x:=position.x div LargeurCell[indexTCO] +1 ;
y:=position.Y div hauteurCell[indexTCO] +1 ; y:=position.Y div hauteurCell[indexTCO] +1 ;
} ScrollBox.HorzScrollBar.position:=x;
ScrollBox.VertScrollBar.position:=y;
exit;}
maxi:=ScrollBox.HorzScrollBar.Range-ScrollBox.ClientWidth; maxi:=ScrollBox.HorzScrollBar.Range-ScrollBox.ClientWidth;
i:=round(xClicCell[indexTCO]*maxi/NbreCellx[indexTCO]); i:=round(xClicCell[indexTCO]*maxi/NbreCellx[indexTCO]);
ScrollBox.HorzScrollBar.position:=i; ScrollBox.HorzScrollBar.position:=i;
@@ -14034,34 +14106,25 @@ begin
affiche_cellule(indexTCO,XClicCell[indexTCO],YClicCell[indexTCO]); affiche_cellule(indexTCO,XClicCell[indexTCO],YClicCell[indexTCO]);
end; end;
procedure TFormTCO.Toutslectionner1Click(Sender: TObject); procedure TFormTCO.Toutslectionner1Click(Sender: TObject);
var c: tcomponent; var c: tComponent;
indextco : integer; indexTCO : integer;
begin begin
c:=popupmenu1.PopupComponent ; // imageTCO c:=popupmenu1.PopupComponent ; // imageTCO
c:=c.GetParentComponent; // scrollBox c:=c.GetParentComponent; // scrollBox
c:=c.GetParentComponent; // formTCO c:=c.GetParentComponent; // formTCO
indexTCO:=index_tco(c); indexTCO:=index_tco(c);
xminiSel:=0; selec_tout(indexTCO);
yminiSel:=0;
xMaxiSel:=(NbreCellX[indexTCO]-1)*LargeurCell[indexTCO];
yMaxiSel:=(NbreCellY[indexTCO]-1)*hauteurCell[indexTCO];
rAncien:=rect(xminiSel,YminiSel,xmaxiSel+LargeurCell[indexTCO],YMaxiSel+hauteurCell[indexTCO]);
SelectionAffichee[indexTCO]:=true;
with formTCO[indexTCO].imageTCO.Canvas do
begin
Pen.Mode:=PmXor;
Pen.color:=clGrille[IndexTCO];
Brush.Color:=clblue;
Rectangle(rAncien);
end;
end; end;
procedure dessinerTCO(indexTCO : integer); procedure dessinerTCO(indexTCO : integer);
begin begin
if not(modetrace[indexTCO]) then if not(modetrace[indexTCO]) then
begin begin
tamponAffecte:=false;
ligne_supprime:=0;
colonne_supprime:=0;
modetrace[indexTCO]:=true; modetrace[indexTCO]:=true;
indexTrace:=0; indexTrace:=0;
traceXY[1].x:=0; traceXY[1].x:=0;
@@ -14232,7 +14295,6 @@ begin
auto_tcurs:=false; auto_tcurs:=false;
end; end;
procedure TFormTCO.ImagePalette52DragOver(Sender, Source: TObject; X, procedure TFormTCO.ImagePalette52DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean); Y: Integer; State: TDragState; var Accept: Boolean);
begin begin
@@ -14352,5 +14414,6 @@ begin
end; end;
end; end;
end. end.
+20
View File
@@ -83,6 +83,8 @@ type
var var
FormPlace: TFormPlace; FormPlace: TFormPlace;
procedure couleurs_place;
implementation implementation
uses UnitConfig, UnitTCO; uses UnitConfig, UnitTCO;
@@ -529,9 +531,27 @@ begin
placement[6].detdir:=i; placement[6].detdir:=i;
end; end;
procedure couleurs_place;
var i : integer;
c : tComponent;
begin
if sombre then with formPlace do
begin
color:=couleurFond;
for i:=0 to ComponentCount-1 do
begin
c:=Components[i];
composant(c,couleurFond,couleurTexte);
end;
end;
end;
procedure TFormPlace.FormCreate(Sender: TObject); procedure TFormPlace.FormCreate(Sender: TObject);
var c : tcomponent;
i : integer;
begin begin
PlaceAffiche:=true; PlaceAffiche:=true;
couleurs_place;
end; end;
procedure TFormPlace.BitBtn1Click(Sender: TObject); procedure TFormPlace.BitBtn1Click(Sender: TObject);
+1 -1
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.35'; // sert à la comparaison de la version publiée Const Version='8.36'; // 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;
+2
View File
@@ -219,4 +219,6 @@ version 8.34 : Correction signal Unisemaf.
version 8.35 : Correction ajout de signaux et d'aiguillages. version 8.35 : Correction ajout de signaux et d'aiguillages.
Renforcement de la vérification de la cohérence. Renforcement de la vérification de la cohérence.
Amélioration de l'édition des TJD. Amélioration de l'édition des TJD.
version 8.36 : Création d'un mode de fond sombre modifiable pour l'affichage.
Amélioration édition des lignes et colonnes du TCO.