V9.7
This commit is contained in:
f1iwq2
2024-12-20 12:17:29 +01:00
parent 087351ecd3
commit 02eccff67e
21 changed files with 2056 additions and 1395 deletions
+95 -87
View File
@@ -1,6 +1,6 @@
object FormConfig: TFormConfig
Left = 251
Top = 102
Left = 278
Top = 106
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale'
@@ -1119,9 +1119,6 @@ object FormConfig: TFormConfig
Top = 46
Width = 25
Height = 21
Hint =
'Mode d'#233'bug au d'#233'marrage (0=sans ; 1=Log d'#233'marrage ; 2=D'#233'marrage ' +
'par '#233'tape ; 3=Dynamique)'
ParentShowHint = False
ShowHint = True
TabOrder = 1
@@ -3086,26 +3083,13 @@ object FormConfig: TFormConfig
OnChange = ComboBoxOperateurChange
OnDrawItem = ComboBoxOperateurDrawItem
end
object ButtonAjouteOperateur: TButton
Left = 504
Top = 128
Width = 105
Height = 25
Hint = 'Ajoute un op'#233'rateur au m'#234'me niveau que le parent'
Caption = 'Ajouter op'#233'rateur'
ParentShowHint = False
ShowHint = True
TabOrder = 3
Visible = False
OnClick = ButtonAjouteOperateurClick
end
object ButtonVoir: TButton
Left = 480
Top = 280
Width = 113
Height = 25
Caption = 'Affiche structure'
TabOrder = 4
TabOrder = 3
WordWrap = True
OnClick = ButtonVoirClick
end
@@ -3117,7 +3101,7 @@ object FormConfig: TFormConfig
ItemHeight = 13
ParentShowHint = False
ShowHint = True
TabOrder = 5
TabOrder = 4
OnChange = ComboBoxVarChange
OnDrawItem = ComboBoxVarDrawItem
end
@@ -3126,7 +3110,7 @@ object FormConfig: TFormConfig
Top = 184
Width = 305
Height = 73
TabOrder = 6
TabOrder = 5
object LabelEtat: TLabel
Left = 240
Top = 4
@@ -3183,6 +3167,19 @@ object FormConfig: TFormConfig
TabOrder = 3
OnChange = LabeledEditTrainChange
end
object RadioGroupOP: TRadioGroup
Left = 208
Top = 8
Width = 89
Height = 57
Caption = 'Op'#233'rateur'
Items.Strings = (
'= '#233'galit'#233
'> sup'#233'rieur'
'< inf'#233'rieur')
TabOrder = 4
OnClick = RadioGroupOPClick
end
end
object ButtonSupLog: TButton
Left = 288
@@ -3193,7 +3190,7 @@ object FormConfig: TFormConfig
Caption = 'Supprimer'
ParentShowHint = False
ShowHint = True
TabOrder = 7
TabOrder = 6
OnClick = ButtonSupLogClick
end
object ComboBoxFL: TComboBox
@@ -3203,7 +3200,7 @@ object FormConfig: TFormConfig
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 8
TabOrder = 7
OnChange = ComboBoxFLChange
end
object ButtonEvalue: TButton
@@ -3217,7 +3214,7 @@ object FormConfig: TFormConfig
Caption = 'Evalue'
ParentShowHint = False
ShowHint = True
TabOrder = 9
TabOrder = 8
OnClick = ButtonEvalueClick
end
object LabeledEditNomLog: TLabeledEdit
@@ -3230,7 +3227,7 @@ object FormConfig: TFormConfig
EditLabel.Caption = 'Nom de la fonction logique'
LabelPosition = lpRight
LabelSpacing = 10
TabOrder = 10
TabOrder = 9
OnChange = LabeledEditNomLogChange
end
object ButtonAjOpEnfant: TButton
@@ -3242,7 +3239,7 @@ object FormConfig: TFormConfig
Caption = 'Ajouter op'#233'rateur'
ParentShowHint = False
ShowHint = True
TabOrder = 11
TabOrder = 10
WordWrap = True
OnClick = ButtonAjOpEnfantClick
end
@@ -3256,7 +3253,7 @@ object FormConfig: TFormConfig
EditLabel.Caption = 'Num'#233'ro de fonction'
LabelPosition = lpRight
LabelSpacing = 5
TabOrder = 12
TabOrder = 11
OnChange = LabeledEditNumFoncChange
end
end
@@ -3272,7 +3269,9 @@ object FormConfig: TFormConfig
'conditions. Elles permettent de r'#233'aliser des combinaisons logiqu' +
'es d'#39#233'lements '
'divers comme l'#39#233'tat des aiguillages, d'#233'tecteurs etc...')
'divers comme l'#39#233'tat des aiguillages, d'#233'tecteurs, boutons TCO, m'#233 +
'moires etc...')
ReadOnly = True
TabOrder = 1
end
@@ -3436,6 +3435,13 @@ object FormConfig: TFormConfig
Font.Style = [fsBold]
ParentFont = False
end
object Label65: TLabel
Left = 352
Top = 32
Width = 240
Height = 13
Caption = 'Description des d'#233'tecteurs pour le mode autonome'
end
object ListBoxDet: TListBox
Left = 0
Top = 56
@@ -3493,6 +3499,7 @@ object FormConfig: TFormConfig
LabelPosition = lpLeft
LabelSpacing = 80
ParentShowHint = False
ReadOnly = True
ShowHint = True
TabOrder = 0
OnChange = LEAdrDetChange
@@ -4864,9 +4871,6 @@ object FormConfig: TFormConfig
Top = 118
Width = 28
Height = 21
Hint =
'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'#39'+#13+'#39'Mode auto' +
'nome uniquement'#39
EditLabel.Width = 192
EditLabel.Height = 13
EditLabel.Caption = 'Utilisation de l'#39#39'anti timeout Lenz Ethernet'
@@ -4881,9 +4885,6 @@ object FormConfig: TFormConfig
Top = 142
Width = 28
Height = 21
Hint =
'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'#39'+#13+'#39'Mode auto' +
'nome uniquement'#39
EditLabel.Width = 230
EditLabel.Height = 13
EditLabel.Caption = 'Facteur de temporisation de t'#233'l'#233'commande CDM'
@@ -4898,9 +4899,6 @@ object FormConfig: TFormConfig
Top = 166
Width = 28
Height = 21
Hint =
'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'#39'+#13+'#39'Mode auto' +
'nome uniquement'#39
EditLabel.Width = 177
EditLabel.Height = 13
EditLabel.Caption = 'Nombre maximal d'#39#39#233'l'#233'ments par route'
@@ -4915,9 +4913,6 @@ object FormConfig: TFormConfig
Top = 190
Width = 44
Height = 21
Hint =
'Temps de filtrage des d'#233'tecteurs qui passent '#224' 0'#39'+#13+'#39'Mode auto' +
'nome uniquement'#39
EditLabel.Width = 124
EditLabel.Height = 13
EditLabel.Caption = 'Nombre maximal de routes'
@@ -4965,7 +4960,6 @@ object FormConfig: TFormConfig
Top = 41
Width = 28
Height = 21
Hint = 'Algorithme de localisation des trains'
EditLabel.Width = 335
EditLabel.Height = 13
EditLabel.Caption =
@@ -5033,7 +5027,6 @@ object FormConfig: TFormConfig
Top = 33
Width = 164
Height = 21
Hint = 'Algorithme de localisation des trains'
EditLabel.Width = 99
EditLabel.Height = 26
EditLabel.Caption = 'Chemin Win de CDM (Sans \CDM-Rail)'
@@ -5099,6 +5092,22 @@ object FormConfig: TFormConfig
TabOrder = 3
end
end
object ValueListEditor: TValueListEditor
Left = 312
Top = 352
Width = 297
Height = 105
Hint = 'Liste de valeurs'
ParentShowHint = False
ShowHint = True
TabOrder = 6
OnDrawCell = ValueListEditorDrawCell
OnMouseMove = ValueListEditorMouseMove
OnSetEditText = ValueListEditorSetEditText
ColWidths = (
150
141)
end
end
end
object ButtonEnregistre: TButton
@@ -5177,8 +5186,7 @@ object FormConfig: TFormConfig
end
end
object PopupMenuFL: TPopupMenu
Left = 588
Top = 224
Left = 804
object M1: TMenuItem
Caption = 'Monter'
OnClick = M1Click
@@ -5360,24 +5368,24 @@ object FormConfig: TFormConfig
0000000080000000000000008000000000000000800000000000000000000000
8000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000FF000000FF000000FF00
0000FF0000000000000000000000000000000000000000000000000000000000
0000FF000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000080000000000000008000000000000000800000000000000000000000
80000000000000000000000000000000000000000000000000000000FF000000
FF000000FF000000FF000000FF000000FF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000FF000000FF000000FF00
0000FF0000000000000000000000000000000000000000000000000000000000
0000FF000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000080000000000000008000000000000000800000000000000080000000
80000000000000000000000000000000000000000000000000000000FF000000
FF000000FF000000FF000000FF000000FF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000FF000000FF00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5385,6 +5393,7 @@ object FormConfig: TFormConfig
8000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5392,8 +5401,7 @@ object FormConfig: TFormConfig
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000080800000808000008080
@@ -5401,7 +5409,7 @@ object FormConfig: TFormConfig
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF000000FF00000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000080800000808000008080
@@ -5409,67 +5417,67 @@ object FormConfig: TFormConfig
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000000000000000000000000
00000000000000000000FF000000FF000000FF000000FF000000000000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF008080000000000000000000000000
0000808000008080000080800000000000000000000000000000808000008080
0000000000000000000000000000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000000000000808000008080
00000000000000000000FF000000FF00000000000000FF000000FF0000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF008080000000000000808000008080
0000000000008080000000000000808000008080000080800000808000000000
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000FF000000FF00
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000000000000808000008080
00000000000000FFFF0000FFFF0000FFFF008080000000000000808000008080
0000000000008080000000000000808000008080000080800000808000000000
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000000000000808000008080
00000000000000FFFF0000FFFF0000FFFF008080000000000000808000008080
0000000000008080000000000000808000008080000080800000808000000000
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF008080000000000000000000000000
0000808000008080000080800000000000000000000000000000808000008080
0000000000000000000000000000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FF00
00000000000000000000FF000000FF0000000000000000000000FF0000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000080800000808000008080
00000000000000FFFF0000FFFF0000FFFF008080000080800000808000008080
0000808000008080000080800000808000008080000080800000808000008080
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FF00
0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000008080000080800000808000008080
00000000000000FFFF0000FFFF0000FFFF008080000080800000808000008080
0000808000008080000080800000808000008080000080800000808000008080
0000808000008080000080800000808000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5602,11 +5610,11 @@ object FormConfig: TFormConfig
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000FFFFFFFFFE7FFE7FFB47FFFFFE7FFE7F
F56FFFFFFE7FFE7FF56FC0FFFE7FFE7FF54FC0FFFE7FFE7FFB6FFFFFFE7FFE7F
FFFFFFFFFE7FFE7F0000B6DBFE7FFE0000000000FE7FFE000000B6DBFE7FFE7F
00000000FE7FFE7F0000B6DBFE7FFE7F0000FFFFFE7FFE7F0000FFFFFE7FFE7F
0000FFFFFE7FFE7F0000FFFFFE7FFE7F0000FFFFFFFFFFFF0000F837F9FFFFFF
00000000000000000000000000000000FFFFFFFFFFFFFFFFFB47FFFFFFFF742E
F56FFFFF87F175EEF56FC0FF87F1546AF54FC0FFF3FF25E4FB6FFFFFF9FF742E
FFFFFFFFFCFFFFFF0000B6DBFC7FFFFF00000000FC3F00000000B6DBFC9F0000
00000000FCCF00000000B6DBFCFF00000000FFFFFCFF00000000FFFFECDF0000
0000FFFFE01F00000000FFFFFFFF00000000FFFFFFFFFFFF0000F837F9FFFFFF
0000F387FCFFFC3F0000E7CFF27FF00F0000E78FF93FE3870000F327FC9FE7E7
0000F87FFE7FCFF30000FE7FFF3FCFF30000FC3FFE7FCFF30000F99FFCFFCFF3
0000F99FF9FFE7E70000F99FF3FFE3C70000FC3FFFFFF00F0000FFFFFFFFFC3F
+750 -283
View File
File diff suppressed because it is too large Load Diff
+203 -68
View File
@@ -4,7 +4,7 @@ object FormConfCellTCO: TFormConfCellTCO
BorderStyle = bsDialog
Caption = 'FormConfCellTCO'
ClientHeight = 473
ClientWidth = 311
ClientWidth = 571
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -293,7 +293,7 @@ object FormConfCellTCO: TFormConfCellTCO
end
object GroupBoxOrientation: TGroupBox
Left = 8
Top = 200
Top = 160
Width = 273
Height = 57
Caption = 'Orientation du signal'
@@ -361,7 +361,7 @@ object FormConfCellTCO: TFormConfCellTCO
end
object GroupBoxImplantation: TGroupBox
Left = 8
Top = 216
Top = 224
Width = 273
Height = 57
Caption = 'Implantation du signal'
@@ -485,8 +485,8 @@ object FormConfCellTCO: TFormConfCellTCO
OnClick = CheckPinvClick
end
object GroupBoxAction: TGroupBox
Left = 112
Top = 72
Left = 352
Top = 80
Width = 273
Height = 145
Caption = 'Actions'
@@ -527,6 +527,9 @@ object FormConfCellTCO: TFormConfCellTCO
Top = 118
Width = 33
Height = 21
Hint = 'Param'#232'tre de l'#39'action'
ParentShowHint = False
ShowHint = True
TabOrder = 1
OnChange = EditParam1Change
end
@@ -558,8 +561,8 @@ object FormConfCellTCO: TFormConfCellTCO
OnClick = BitBtnAnnuleClick
end
object GroupBoxCanton: TGroupBox
Left = 16
Top = 152
Left = 360
Top = 288
Width = 281
Height = 129
Caption = 'Canton'
@@ -636,8 +639,8 @@ object FormConfCellTCO: TFormConfCellTCO
end
end
object GroupBoxDet: TGroupBox
Left = 32
Top = 152
Left = 376
Top = 24
Width = 281
Height = 121
Caption = 'Options d'#39'arr'#234't des trains sur le d'#233'tecteur'
@@ -659,8 +662,8 @@ object FormConfCellTCO: TFormConfCellTCO
object ImageListIcones: TImageList
Left = 160
Bitmap = {
494C01011A001D00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000008000000001002000000000000080
494C010121002200040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000009000000001002000000000000090
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -725,41 +728,65 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E00000000000000000000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E0000080E00000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E00000000000000000000080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E00000000000000000000080E0000080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E00000000000000000000080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E0000080E00000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E00000000000000000000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -800,6 +827,110 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E000FFFFFF00FFFFFF00000000000000
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF
000000FF0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E00000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E000FFFFFF00FFFFFF00000000000000
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF000000FF
000000FF000000FF0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000
FF000000FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E00000000000000000000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
00000000000000000000FFFFFF00FFFFFF0000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000FFFFFF00FFFFFF000000FF000000FF000000
FF000000FF000000FF000000FF000000FF00FFFFFF00FFFFFF00000000000000
0000000000000000000000000000000000004080E0004080E0004080E0000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E00000000000000000000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
00000000000000000000FFFFFF0000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF00000000FF000000FF000000FF000000
FF000000FF000000FF000000FF000000FF000000FF00FFFFFF00000000000000
0000000000000000000000000000000000004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000080E00000000000000000000080
E0000080E0000080E0000080E0000080E000FFFFFF00FFFFFF00000000000000
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF000000FF
000000FF000000FF0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000
FF000000FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E00000000000000000000080E0000080
E0000080E0000080E0000080E0000080E000FFFFFF00FFFFFF00000000000000
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF000000FF
000000FF000000FF0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000
FF000000FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E0000080E00000000000000000000080E0000080E0000080
E0000080E0000080E0000080E0000080E000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF000000FF
000000FF000000FF0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000
FF000000FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0004080E0004080E0004080E0004080
E0004080E0004080E0004080E0004080E0000080E0000080E0000080E0000080
E0000080E0000080E00000000000000000000080E0000080E0000080E0000080
E0000080E0000080E0000080E0000080E0000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000008080000000000000000000000000008080000000000000C0C0
C000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -809,24 +940,24 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000008080008000000000000000000000000000000000008000000000000000
0000800000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00008000000000000000000000000000000000000000FF000000FF000000FF00
0000FF0000000000000000000000000000000000000000000000000000000000
0000FF000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000C0C0
C00000000000C0C0C000000000000000000000000000C0C0C000000000008000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000FF000000FF000000FF00
0000FF0000000000000000000000000000000000000000000000000000000000
0000FF000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000C0C0
C00000000000C0C0C00000000000000000000000000000008000000000000000
0000C0C0C0000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000FF000000FF00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -834,7 +965,7 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000080008080000000000000000000000000800000000000C0C0C0000000
8000808000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000FF000000FF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -842,7 +973,7 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000C0C0C00000000000800000000080800000000000C0C0C000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -850,7 +981,7 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000808000000000008000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF000000FF00000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -858,66 +989,66 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
000000000000C0C0C00000000000800000000000800000000000C0C0C0000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF000000FF000000FF000000000000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF0000FF0000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000080800080000000000000000000000000008000808000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF00000000000000FF000000FF0000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0000FF000000FF000000FF0000FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000080800080800000000000000000000000808000800000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000FF000000FF00
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0000FF000000FF000000FF000000FF000000FF0000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000C0C0C00080000000000000000000000000008000808000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000808000000000000000000080000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000FF000000FF0000000000000000000000000000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF0000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FF00
00000000000000000000FF000000FF0000000000000000000000FF0000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0000FF000000FF000000FF000000FF000000FF0000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FF00
0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0000FF000000FF000000FF000000FF000000FF0000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000FF000000FF000000FF000000FF
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0000FF000000FF000000FF000000FF000000FF0000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF00000000000000000000000000000000
00000000000000FF000000FF000000FF000000FF000000FF000000FF00000000
@@ -1686,16 +1817,20 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000008080000080800000808000008080
0000808000008080000080800000808000008080000080800000808000008080
000080800000808000008080000080800000424D3E000000000000003E000000
2800000040000000800000000100010000000000000400000000000000000000
000000000000000000000000FFFFFF0000000000000000000000000000000000
2800000040000000900000000100010000000000800400000000000000000000
000000000000000000000000FFFFFF00FFFF000000000000742E000000000000
75EE000000000000546A00000000000025E4000000000000742E000000000000
FFFF000000000000FFFF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000FFFFFFFFFFFFFFFF742E742E742E742E
75EE75EE75EE75EE546A546A546A546A25E425E425E425E4742E742E742E742E
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000FFFFFFFF00000000FFFFF82700000000
FFFFF38700000000FFFFE38F00000000FFBFE38700000000FF9FF30700000000
C007F03F00000000C003FC7F00000000C001F81F00000000C003F99F00000000
C007F99F00000000FF9FF99F00000000FFBFFC3F00000000FFFFFFFF00000000
FFFFFFFF00000000FFFFFFFF000000000000F81FFFFF00000000E007FC3F0000
00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFF827FFFF742E
FFFFF38787F175EEFFFFE38F87F1546AFFBFE387F3FF25E4FF9FF307F9FF742E
C007F03FFCFFFFFFC003FC7FFC7FFFFFC001F81FFC3F0000C003F99FFC9F0000
C007F99FFCCF0000FF9FF99FFCFF0000FFBFFC3FFCFF0000FFFFFFFFECDF0000
FFFFFFFFE01F0000FFFFFFFFFFFF00000000F81FFFFF00000000E007FC3F0000
0000C003F81F00000000C001F00F000000008001F00F000000000180F00F0000
000003C0F00F0000000007E0F00F0000000007E0F00F0000000003C0F00F0000
00000180F00F000000008001F00F00000000C001F00F00000000C003F00F0000
+46 -11
View File
@@ -105,7 +105,7 @@ const
AcArret_horloge=7;
AcInit_horloge=8;
AcAff_horloge=9;
AcBouton_bistable=10;
var
FormConfCellTCO: TFormConfCellTCO;
@@ -120,8 +120,6 @@ uses UnitPrinc,UnitAnalyseSegCDM,UnitConfigTCO,UnitTCO,selection_train;
{$R *.dfm}
//https://codes-sources.commentcamarche.net/forum/affich-1015879-ajouter-un-icon-dans-un-listbox
// procédure qui met la bd à jour, et réactualise la cellule, ce qui appelle "select elements"
procedure stocke_bd;
var Bim,x,y,act : integer;
@@ -192,7 +190,8 @@ begin
// arreter horloge
AcArret_horloge :
begin
EditParam1.Visible:=false; EditParam2.Visible:=false;
EditParam1.Visible:=false;
EditParam2.Visible:=false;
end;
// initialiser horloge
AcInit_horloge :
@@ -200,6 +199,13 @@ begin
EditParam1.Visible:=false;
EditParam2.Visible:=false;
end;
AcBouton_bistable :
begin
EditParam1.Visible:=true;
EditParam1.Hint:='Numéro de bouton';
EditParam1.Text:=intToSTR(tco[indexTCO,XclicC,YclicC].Adresse);
EditParam2.Visible:=false;
end;
end;
end;
@@ -660,15 +666,18 @@ end;
procedure TFormConfCellTCO.EditAdrElementChange(Sender: TObject);
var Adr,erreur,index,Bimage : integer;
var Adr,erreur,index,Bimage,x,y : integer;
begin
if clicTCO or not(ConfCellTCO) or actualize then exit;
if affevt then Affiche('TFormConfCellTCO.EditAdrElementChange',clyellow);
clicTCO:=true;
Bimage:=tco[indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]].BImage;
x:=XclicCell[indexTCOcourant];
y:=YclicCell[indexTCOcourant];
Bimage:=tco[indexTCOcourant,x,y].BImage;
if (Bimage=1) or (Bimage=10) or (Bimage=11) or (Bimage=20) then
begin
if tco[indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]].buttoir<>0 then
if tco[indexTCOcourant,x,y].buttoir<>0 then
begin
EditAdrElement.Text:='';
clicTCO:=false;
@@ -679,14 +688,14 @@ begin
Val(EditAdrElement.Text,Adr,erreur);
if (erreur<>0) or (Adr<0) or (Adr>2048) then Adr:=0;
if Adr=0 then tco[indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]].repr:=2;
if Adr=0 then tco[indexTCOcourant,x,y].repr:=2;
tco[indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]].Adresse:=Adr;
tco[indexTCOcourant,x,y].Adresse:=Adr;
formTCO[indexTCOcourant].EditAdrElement.Text:=intToSTR(adr);
clicTCO:=false;
if tco[indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]].BImage=Id_signal then
if BImage=Id_signal then
begin
index:=Index_Signal(adr);
if index=0 then exit
@@ -696,6 +705,17 @@ begin
affiche_tco(indexTCOcourant);
end;
end;
if (BImage=Id_action) and (ligneclicAction+1=ActionBoutonTCO) then
begin
//if not BoutonTCO[Adr].existe then
begin
boutonTCO[adr].idtco:=indexTCOCourant;
boutonTCO[adr].x:=x;
boutonTCO[adr].y:=y;
end;
end;
if not(selectionaffichee[indexTCOcourant]) then efface_entoure(indexTCOcourant);
Affiche_cellule(indexTCOcourant,XclicCell[indexTCOcourant],YclicCell[indexTCOcourant]);
if not(selectionaffichee[indexTCOcourant]) then _entoure_cell_clic(indexTCOcourant);
@@ -750,6 +770,7 @@ begin
//RadioButtonGH.Visible:=not(diffusion);
//RadioButtonDB.Visible:=not(diffusion);
//RadioButtonDS.Visible:=not(diffusion);
width:=320;Height:=504;
with GroupBoxDet do
begin
left:=16;
@@ -839,6 +860,8 @@ begin
itemHeight:=16;
Items.Add(Format('%d%s', [8, 'Afficher l''horloge']));
itemHeight:=16;
Items.Add(Format('%d%s', [26, 'Bouton bistable']));
itemHeight:=16;
end;
// dessine les composants - non utilisé
@@ -1196,6 +1219,7 @@ procedure TFormConfCellTCO.EditParam1Change(Sender: TObject);
var i,erreur,act : integer;
begin
act:=ligneclicAction+1;
case act of
AcChangeTCO : // afficher TCO n
begin
@@ -1212,7 +1236,6 @@ begin
Affiche_cellule(IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]);
end;
//sortie
AcActSortie :
begin
@@ -1223,6 +1246,16 @@ begin
Affiche_cellule(IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]);
end;
// bouton
AcBouton_bistable :
begin
if clicTCO then exit;
val(EditParam1.Text,i,erreur);
if erreur<>0 then exit;
tco[IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]].adresse:=i;
Affiche_cellule(IndexTCOCourant,XclicCell[indexTCOCourant],YclicCell[indexTCOCourant]);
end;
end;
end;
@@ -1385,6 +1418,8 @@ begin
affiche_tco(indexTCOcourant);
end;
end.
+28 -9
View File
@@ -3,8 +3,8 @@ object FormIntro: TFormIntro
Top = 150
BorderStyle = bsDialog
Caption = 'Introduction de donn'#233'es'
ClientHeight = 95
ClientWidth = 186
ClientHeight = 106
ClientWidth = 188
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -15,22 +15,41 @@ object FormIntro: TFormIntro
PixelsPerInch = 96
TextHeight = 13
object LabeledEditDetAig: TLabeledEdit
Left = 40
Left = 24
Top = 24
Width = 121
Width = 57
Height = 21
EditLabel.Width = 47
EditLabel.Height = 13
EditLabel.Caption = 'D'#233'tecteur'
TabOrder = 0
end
object ButtonTrouver: TButton
Left = 56
Top = 56
Width = 75
object ButtonTrCanton: TButton
Left = 112
Top = 64
Width = 65
Height = 25
Caption = 'Trouver'
TabOrder = 1
OnClick = ButtonTrouverClick
OnClick = ButtonTrCantonClick
end
object LabeledEditCanton: TLabeledEdit
Left = 24
Top = 64
Width = 57
Height = 21
EditLabel.Width = 34
EditLabel.Height = 13
EditLabel.Caption = 'Canton'
TabOrder = 2
end
object ButtonTrDet: TButton
Left = 112
Top = 24
Width = 65
Height = 25
Caption = 'Trouver'
TabOrder = 3
OnClick = ButtonTrDetClick
end
end
+16 -7
View File
@@ -9,8 +9,11 @@ uses
type
TFormIntro = class(TForm)
LabeledEditDetAig: TLabeledEdit;
ButtonTrouver: TButton;
procedure ButtonTrouverClick(Sender: TObject);
ButtonTrCanton: TButton;
LabeledEditCanton: TLabeledEdit;
ButtonTrDet: TButton;
procedure ButtonTrCantonClick(Sender: TObject);
procedure ButtonTrDetClick(Sender: TObject);
private
{ Déclarations privées }
public
@@ -19,17 +22,23 @@ type
var
FormIntro: TFormIntro;
Achercher : integer;
AchercherDet,AchercherCanton : integer;
implementation
{$R *.dfm}
procedure TFormIntro.ButtonTrouverClick(Sender: TObject);
var i,erreur : integer;
procedure TFormIntro.ButtonTrCantonClick(Sender: TObject);
var erreur : integer;
begin
val(LabeledEditDetAig.text,i,erreur);
Achercher:=i;
val(LabeledEditCanton.text,Acherchercanton,erreur);
close;
end;
procedure TFormIntro.ButtonTrDetClick(Sender: TObject);
var erreur : integer;
begin
val(LabeledEditDetAig.text,AchercherDet,erreur);
close;
end;
+2 -10
View File
@@ -37,20 +37,12 @@ object FormModifAction: TFormModifAction
Width = 3
Height = 13
end
object Shape3: TShape
Left = 8
Top = 408
Width = 73
Height = 25
Brush.Color = clActiveCaption
end
object SpeedButton1: TSpeedButton
Left = 8
Top = 408
Width = 73
Height = 25
Caption = 'OK'
Flat = True
OnClick = SpeedButton1Click
end
object ComboBoxActions: TComboBox
@@ -68,7 +60,7 @@ object FormModifAction: TFormModifAction
Top = 64
Width = 729
Height = 337
ActivePage = TabSheet1
ActivePage = TabSheetOp
MultiLine = True
TabOrder = 1
object TabSheetDecl: TTabSheet
@@ -748,7 +740,7 @@ object FormModifAction: TFormModifAction
object SpinEditEtatop: TSpinEdit
Left = 152
Top = 32
Width = 33
Width = 41
Height = 22
MaxValue = 0
MinValue = 0
+114 -183
View File
@@ -86,7 +86,6 @@ type
ButtonVoirFonc: TButton;
LabelInfoFonc: TLabel;
Label2InfoFonction: TLabel;
Shape3: TShape;
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure ListBoxOperDrawItem(Control: TWinControl; Index: Integer;
@@ -155,6 +154,7 @@ var
ClicDeclenche,ClicAction,ClicCond,DeclencheurAffiche,OperationAffiche : integer;
function Info_action(i : integer) : string;
procedure affecte_operation(i : integer;t: TListBox);
implementation
@@ -163,8 +163,7 @@ uses Unitprinc, UnitConfigCellTCO, UnitConfig;
{$R *.dfm}
// rend tous les composants invisibles
procedure efface_tous_parametres;
begin
with FormModifAction do
@@ -211,18 +210,25 @@ begin
end;
end;
// ajoute à la listbox t une ligne avec son icone opérations[]
procedure affecte_operation(i : integer;t : tListBox);
begin
if i<ActionBoutonTCO then t.Items.Add(Format('%d%s', [i-1, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
if i=ActionBoutonTCO then t.Items.Add(Format('%d%s', [IconeBouton, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
if i=ActionAffecteMemoire then t.Items.Add(Format('%d%s', [IconeActionAffecteMemoire, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
if i=ActionIncMemoire then t.Items.Add(Format('%d%s', [IconeActionIncMemoire, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
if i=ActionDecMemoire then t.Items.Add(Format('%d%s', [IconeActionDecMemoire, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
end;
procedure TFormModifAction.FormCreate(Sender: TObject);
var i,icone : integer;
begin
ListBoxOper.Style:=lbOwnerDrawVariable; // pour afficher des icones
ListBoxDeclench.Style:=lbOwnerDrawVariable;
ListBoxOperations.Style:=lbOwnerDrawVariable;
ListBoxCondTot.Style:=lbOwnerDrawVariable;
ListBoxConditions.Style:=lbOwnerDrawVariable;
for i:=1 to NbreDeclencheurs do
begin
icone:=0;
@@ -243,7 +249,7 @@ begin
for i:=1 to NbreOperations do
begin
ListBoxOper.Items.Add(Format('%d%s', [i-1, operations[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
affecte_operation(i,formModifAction.ListBoxOper);
ListBoxOper.itemHeight:=17; // 16 mini taille des éléments pour l'icone
end;
@@ -258,12 +264,16 @@ begin
condHorl : icone:=IconeLanceHorl;
condTrainSig : icone:=IconeDeclSignal;
CondFonction : icone:=IconeFonction;
CondBouton : icone:=IconeBouton;
CondMemoireEgal : icone:=IconeCondMemoireEgal;
CondMemoireInf : icone:=IconeCondMemoireInf;
CondMemoireSup : icone:=IconeCondMemoireSup;
end;
ListBoxCondTot.Items.Add(Format('%d%s', [icone, Conditions[i].nom])); // valeur d'index de l'icone dans la ImagelistIcones
ListBoxCondTot.itemHeight:=17; // 16 mini taille des éléments pour l'icone
end;
with ComboBoxFamille do
begin
items.Add('Tous');
@@ -353,8 +363,7 @@ begin
if (operations[i].famille=famille) or (famille=0) then
begin
s:=operations[i].nom;
n:=Index_Operation(s);
ListBoxOper.Items.Add(Format('%d%s', [n-1, s])); // valeur d'index de l'icone dans la ImagelistIcones
affecte_operation(i,formModifAction.ListBoxOper);
end;
end;
end;
@@ -406,7 +415,7 @@ begin
nop:=Tablo_Action[i].NbCond;
for op:=1 to nop do
begin
s:=s+'condition ';
s:=s+'Condition :';
top:=Tablo_Action[i].tabloCond[op].numcondition;
case top of
CondVrai : s:=s+'toujours vraie ';
@@ -417,7 +426,11 @@ begin
CondHorl : s:=s+' horloge '+intToSTR(Tablo_Action[i].tabloCond[op].HeureMin)+'h'+intToSTR(Tablo_Action[i].tabloCond[op].MinuteMin)+' à '+
intToSTR(Tablo_Action[i].tabloCond[op].HeureMax)+'h'+intToSTR(Tablo_Action[i].tabloCond[op].MinuteMax)+' ';
condTrainSig : s:=s+'train '+Tablo_Action[i].tabloCond[op].train+' arrêté au signal '+intToSTR(Tablo_Action[i].tabloCond[op].Adresse);
condFonction : s:=s+'Fonction logique '+intToSTR(tablo_action[i].tabloCond[op].adresse);
condFonction : s:=s+'fonction logique '+intToSTR(tablo_action[i].tabloCond[op].adresse);
condBouton : s:=s+'bouton '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' TCO';
condMemoireEgal : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' à '+intToSTR(tablo_action[i].tabloCond[op].etat);
condMemoireInf : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' < '+intToSTR(tablo_action[i].tabloCond[op].etat);
condMemoireSup : s:=s+'mémoire '+intToSTR(tablo_action[i].tabloCond[op].adresse)+' > '+intToSTR(tablo_action[i].tabloCond[op].etat);
end;
s:=s+#13;
@@ -460,6 +473,10 @@ begin
r:=nop/10;
s:=s+'Temporisation '+intToSTR(nop)+' ('+Format('%.1f', [r])+'s)'#13;
end;
ActionBoutonTCO : s:=s+'Change l''état du bouton '+intToSTR(Tablo_Action[i].tabloop[op].adresse)+' à '+intToSTR(Tablo_Action[i].tabloop[op].etat)+#13;
ActionAffecteMemoire : s:=s+'Affectation de la mémoire '+intToSTR(Tablo_Action[i].tabloop[op].adresse)+' à '+intToSTR(Tablo_Action[i].tabloop[op].etat)+#13;
ActionIncMemoire : s:=s+'Incrémentation de la mémoire '+intToSTR(Tablo_Action[i].tabloop[op].adresse)+#13;
ActionDecMemoire : s:=s+'Décrémentation de la mémoire '+intToSTR(Tablo_Action[i].tabloop[op].adresse)+#13;
end;
end;
result:=s;
@@ -512,10 +529,18 @@ begin
if not(Tablo_Action[index].tabloOp[i].valide) then s:=s+' [dévalidé]';
if act<1 then icone:=0 else icone:=act-1;
items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
// listbox de la formmodifAction
if act<=ActionTempo then items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
if act=ActionBoutonTCO then items.Add(Format('%d%s', [iconeBouton, s]));
if act=ActionAffecteMemoire then items.Add(Format('%d%s', [iconeActionAffecteMemoire, s]));
if act=ActionIncMemoire then items.Add(Format('%d%s', [iconeActionIncMemoire, s]));
if act=ActionDecMemoire then items.Add(Format('%d%s', [iconeActionDecMemoire, s]));
// listboxOperations de la formConfig
formConfig.ListBoxOperations.Items.add(Format('%d%s', [act-1, s]));
if act<=ActionTempo then formConfig.ListBoxOperations.Items.add(Format('%d%s', [act-1, s]));
if act=ActionBoutonTCO then formConfig.ListBoxOperations.items.Add(Format('%d%s', [IconeBouton, s]));
itemHeight:=17;
end;
end;
@@ -538,6 +563,10 @@ begin
condHorl : icone:=IconeLanceHorl;
condTrainSig : icone:=IconeDeclSignal;
condFonction : icone:=IconeFonction;
condBouton : icone:=IconeBouton;
condMemoireEgal: icone:=IconeCondMemoireEgal;
condMemoireSup: icone:=IconeCondMemoireSup;
condMemoireInf: icone:=IconeCondMemoireinf;
end;
items.Add(Format('%d%s', [icone, s])); // valeur d'index de l'icone dans la ImagelistIcones
@@ -613,6 +642,7 @@ begin
with SpinEditEtat do
begin
text:=intToSTR(Tablo_Action[index].etat);
MaxValue:=0;
MaxValue:=2;
Hint:='Etat de l''accessoire'+#13+
'0=nul'+#13+
@@ -660,6 +690,7 @@ begin
with SpinEditEtat do
begin
text:=intToSTR(Tablo_Action[index].etat);
MaxValue:=0;
MaxValue:=1;
Hint:='Etat du détecteur/actionneur'+#13+
'0=désactivé'+#13+
@@ -702,6 +733,7 @@ begin
with SpinEditEtat do
begin
text:=intToSTR(Tablo_Action[index].etat);
MaxValue:=0;
MaxValue:=1;
Hint:='Etat de la zone de détection'+#13+
'0=désactivé'+#13+
@@ -832,6 +864,7 @@ begin
ButtonVoirFonc.Visible:=false;
labelEtat2.Visible:=true;
SpinEditEtat2.visible:=true;
SpinEditEtat2.MinValue:=0;
SpinEditEtat2.MaxValue:=2;
end;
condHorl :
@@ -869,12 +902,30 @@ begin
Label2InfoFonction.Visible:=true;
Label2InfoFonction.Caption:=NomFonction[Tablo_Action[index].tabloCond[indexCond].adresse];
end;
condBouton :
begin
champ1.Text:=intToSTR(Tablo_Action[index].tabloCond[indexCond].adresse);
champ1.editLabel.Caption:='Numéro de bouton TCO';
champTrain.Text:=Tablo_Action[index].tabloCond[indexCond].train;
champ1.Visible:=true;
ButtonVoirFonc.Visible:=false;
champTrain.Visible:=false;
Label2InfoFonction.Visible:=false;
end;
condMemoireEgal,CondMemoireInf,CondMemoireSup :
begin
champ1.Text:=intToSTR(Tablo_Action[index].tabloCond[indexCond].adresse);
champ1.editLabel.Caption:='Numéro de mémoire';
champ1.Visible:=true;
champ2.Text:=intToSTR(Tablo_Action[index].tabloCond[indexCond].etat);
Champ2.EditLabel.Caption:='Valeur';
Champ2.Visible:=true;
end;
end;
end;
end;
Nb:=Tablo_Action[index].NbOperations;
// si pas d'action sélectionnée et que la liste n'est pas nulle, sélectionner la première
@@ -971,15 +1022,44 @@ begin
LabeledEditTempoF.EditLabel.Caption:='Temporisation (x100 ms)';
LabeledEditTempoF.Text:=intToSTR(Tablo_Action[index].tabloop[indexAction].TempoF);
end;
ActionBoutonTCO :
begin
LabeledEditAdresse.Visible:=true;
LabeledEditAdresse.EditLabel.Caption:='Bouton';
LabeledEditAdresse.text:=intToSTR(Tablo_Action[index].tabloop[indexAction].adresse);
SpinEditEtatOp.Text:=intToSTR(Tablo_Action[index].tabloop[indexAction].etat);
SpinEditEtatOp.Visible:=true;
SpinEditEtatOp.MinValue:=0;
SpinEditEtatOp.MaxValue:=1;
end;
ActionAffecteMemoire :
begin
LabeledEditAdresse.EditLabel.Caption:='Mémoire';
LabeledEditAdresse.Visible:=true;
LabeledEditAdresse.text:=intToSTR(Tablo_Action[index].tabloop[indexAction].adresse);
SpinEditEtatOp.Text:=intToSTR(Tablo_Action[index].tabloop[indexAction].etat);
SpinEditEtatOp.Visible:=true;
SpinEditEtatOp.MinValue:=-999;
SpinEditEtatOp.MaxValue:=999;
end;
ActionIncMemoire :
begin
LabeledEditAdresse.EditLabel.Caption:='Mémoire';
LabeledEditAdresse.Visible:=true;
LabeledEditAdresse.text:=intToSTR(Tablo_Action[index].tabloop[indexAction].adresse);
end;
ActionDecMemoire :
begin
LabeledEditAdresse.EditLabel.Caption:='Mémoire';
LabeledEditAdresse.Visible:=true;
LabeledEditAdresse.text:=intToSTR(Tablo_Action[index].tabloop[indexAction].adresse);
end;
end;
end;
end;
clicliste:=false;
end;
procedure TFormModifAction.FormActivate(Sender: TObject);
var i : integer;
s : string;
@@ -1009,18 +1089,17 @@ begin
LabelDecl.Caption:='Liste de déclencheurs de l''action n°'+intToSTR(ComboBoxactions.ItemIndex+1);
end;
procedure TFormModifAction.ButtonAppActionClick(Sender: TObject);
var indexSrc,IndexDest,i : integer;
s : string;
begin
indexSrc:=listboxOper.ItemIndex;
IndexDest:=ListBoxOperations.Itemindex;
if (indexSrc<0) or (ligneclicAct<0) then exit;
if (indexSrc<0) or (ligneclicAct<0) or (Tablo_Action[ligneClicAct+1].NbOperations<1) then exit;
s:=ListBoxOper.Items[indexSrc];
i:=Index_Operation(s);
if i=0 then exit;
if (IndexDest<0) then IndexDest:=0;
Tablo_Action[ligneClicAct+1].TabloOp[IndexDest+1].numoperation:=i;
@@ -1055,11 +1134,8 @@ begin
Aff_champs(idbd,nbCond,Nbop);
clicAction:=NbOp-1;
ListBoxOperations.ItemIndex:=clicAction;
end;
procedure supprime_operation;
var i,indexSrc,idBD,NbOp,NumOp : integer;
s : string;
@@ -1131,19 +1207,15 @@ begin
for i:=1 to Tablo_Action[idBD].NbOperations do
begin
no:=Tablo_Action[idBD].tabloOp[i].numoperation;
items.Add(Format('%d%s', [no-1, operations[no].nom])); // valeur d'index de l'icone dans la ImagelistIcones
//items.Add(Format('%d%s', [no-1, operations[no].nom])); // valeur d'index de l'icone dans la ImagelistIcones
affecte_operation(no,ListBoxOperations);
itemHeight:=17;
end;
ItemIndex:=indexSrc-1;
end;
//Affiche(intToSTR(ligneClicAct),clyellow);
end;
procedure TFormModifAction.SpinButton1DownClick(Sender: TObject);
var no,i,indexSrc,idBD,idOp : integer;
top : Toperation;
s : string;
@@ -1153,7 +1225,6 @@ begin
idBD:=ligneClicAct+1;
idop:=indexSrc+1;
no:=Tablo_Action[idBD].NbOperations;
if (indexSrc+1>=No) then exit;
@@ -1161,7 +1232,6 @@ begin
Tablo_Action[idBD].TabloOp[idOp+1]:=Tablo_Action[idBD].TabloOp[idOp];
Tablo_Action[idBD].TabloOp[idOp]:=top;
// réencoder la ligne
s:=encode_actions(idBD);
// maj combobox
@@ -1175,16 +1245,12 @@ begin
for i:=1 to Tablo_Action[idBD].NbOperations do
begin
no:=Tablo_Action[idBD].tabloOp[i].numoperation;
items.Add(Format('%d%s', [no-1, operations[no].nom])); // valeur d'index de l'icone dans la ImagelistIcones
affecte_operation(no,ListBoxOperations);
itemHeight:=17;
end;
ItemIndex:=indexSrc+1;
end;
//Affiche(intToSTR(ligneClicAct),clyellow);
end;
procedure maj_combocactions(i : integer);
@@ -1239,6 +1305,7 @@ begin
if decl=DeclZoneDet then Tablo_Action[index].adresse2:=i;
if decl=DeclFonction then
begin
if (i<1) or (i>100) then exit;
Tablo_Action[index].adresse:=i;
LabelInfoFonc.caption:=NomFonction[i];
end;
@@ -1293,7 +1360,6 @@ begin
Aff_champs(ligneclicAct+1,1,ClicAction+1);
end;
procedure TFormModifAction.LabeledEditAdresseChange(Sender: TObject);
var i,erreur,op : integer;
begin
@@ -1304,6 +1370,10 @@ begin
ActionAffTCO : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].numTCO:=i;
ActionAccessoire: Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].adresse:=i;
ActionVitesse : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].vitesse:=i;
ActionBoutonTCO : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].adresse:=i;
ActionAffecteMemoire : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].adresse:=i;
ActionIncMemoire : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].adresse:=i;
ActionDecMemoire : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].adresse:=i;
end;
maj_combocactions(ligneclicAct);
end;
@@ -1379,142 +1449,6 @@ begin
maj_combocactions(ligneclicAct);
end;
// affiche les champs de l'actionneur PN en fonction de l'index du tableau
{
procedure aff_champs_PN(i : integer);
var erreur,j,v,periph : integer;
trouve : boolean;
s : string;
begin
if affevt then affiche('Aff_champs_PN('+intToSTR(i)+')',clyellow);
if i<1 then
begin
clicliste:=false;
exit;
end;
//s:=Uppercase(formModifAction.ListBoxPN.items[i-1]);
if s='' then
begin
clicliste:=false;
exit;
end;
with formModifAction do
begin
LabelInfo.caption:='';
raz_champs_pn;
end;
// actionneur passage à niveau
if s[1]='(' then
begin
champs_type_pn;
// trouver le numéro de périphérique
v:=pos('PN(',s);
delete(s,1,v+2);
val(s,periph,erreur);
{
i:=0;
repeat
inc(i);
trouve:=(Tablo_PN[i].AdresseFerme=adresse);
until trouve or (i>NbrePN);
if not(trouve) then exit;}
{
with formModifAction do
begin
RadioGroupActPN.itemindex:=Tablo_PN[i].TypeCde;
if Tablo_PN[i].TypeCde=0 then champs_pn_act;
if Tablo_PN[i].TypeCde=1 then champs_pn_comusbSockets;
if Tablo_PN[i].Pulse=1 then trouve:=true else trouve:=false;
CheckPnPulse.Checked:=trouve;
// par actionneur
if Tablo_PN[i].actionneur then
begin
RadioButtonSimple.Checked:=true;
RadioButtonZone.Checked:=false;
GroupBoxPNA.Visible:=true;
GroupBoxPNZ.Visible:=false;
EditV1F.text:=intToSTR(Tablo_PN[i].voie[1].ActFerme);
EditV1O.text:=intToSTR(Tablo_PN[i].voie[1].ActOuvre);
v:=Tablo_PN[i].nbvoies;
if v>=2 then
begin
EditV2F.text:=intToSTR(Tablo_PN[i].voie[2].ActFerme);
EditV2O.text:=intToSTR(Tablo_PN[i].voie[2].ActOuvre);
end;
if v>=3 then
begin
EditV3F.text:=intToSTR(Tablo_PN[i].voie[3].ActFerme);
EditV3O.text:=intToSTR(Tablo_PN[i].voie[3].ActOuvre);
end;
if v>=4 then
begin
EditV4F.text:=intToSTR(Tablo_PN[i].voie[4].ActFerme);
EditV4O.text:=intToSTR(Tablo_PN[i].voie[4].ActOuvre);
end;
if v>=5 then
begin
EditV5F.text:=intToSTR(Tablo_PN[i].voie[5].ActFerme);
EditV5O.text:=intToSTR(Tablo_PN[i].voie[5].ActOuvre);
end;
end
else
begin
// par zone de détecteurs
RadioButtonSimple.Checked:=false;
RadioButtonZone.Checked:=true;
GroupBoxPNA.Visible:=false;
GroupBoxPNZ.Visible:=true;
v:=Tablo_PN[i].nbvoies;
j:=Tablo_PN[i].voie[1].detZ1F;if j<>0 then
begin
EditZdet1V1F.text:=intToSTR(j);
EditZdet2V1F.text:=intToSTR(Tablo_PN[i].voie[1].detZ2F);
EditZdet1V1O.text:=intToSTR(Tablo_PN[i].voie[1].detZ1O);
EditZdet2V1O.text:=intToSTR(Tablo_PN[i].voie[1].detZ2O);
if v>=2 then
begin
EditZdet1V2F.text:=intToSTR(Tablo_PN[i].voie[2].detZ1F);
EditZdet2V2F.text:=intToSTR(Tablo_PN[i].voie[2].detZ2F);
EditZdet1V2O.text:=intToSTR(Tablo_PN[i].voie[2].detZ1O);
EditZdet2V2O.text:=intToSTR(Tablo_PN[i].voie[2].detZ2O);
end;
if v>=3 then
begin
EditZdet1V3F.text:=intToSTR(Tablo_PN[i].voie[3].detZ1F);
EditZdet2V3F.text:=intToSTR(Tablo_PN[i].voie[3].detZ2F);
EditZdet1V3O.text:=intToSTR(Tablo_PN[i].voie[3].detZ1O);
EditZdet2V3O.text:=intToSTR(Tablo_PN[i].voie[3].detZ2O);
end;
if v>=4 then
begin
EditZdet1V4F.text:=intToSTR(Tablo_PN[i].voie[4].detZ1F);
EditZdet2V4F.text:=intToSTR(Tablo_PN[i].voie[4].detZ2F);
EditZdet1V4O.text:=intToSTR(Tablo_PN[i].voie[4].detZ1O);
EditZdet2V4O.text:=intToSTR(Tablo_PN[i].voie[4].detZ2O);
end;
if v>=5 then
begin
EditZdet1V5F.text:=intToSTR(Tablo_PN[i].voie[5].detZ1F);
EditZdet2V5F.text:=intToSTR(Tablo_PN[i].voie[5].detZ2F);
EditZdet1V5O.text:=intToSTR(Tablo_PN[i].voie[5].detZ1O);
EditZdet2V5O.text:=intToSTR(Tablo_PN[i].voie[5].detZ2O);
end;
end;
end;
end;
end;
clicliste:=false;
end;
}
procedure TFormModifAction.ButtonApplDeclClick(Sender: TObject);
var i : integer;
begin
@@ -1537,8 +1471,6 @@ begin
Aff_champs(index,0,0);
end;
procedure TFormModifAction.ComboBoxAccComUSBChange(Sender: TObject);
var index : integer;
begin
@@ -1566,8 +1498,6 @@ begin
maj_combocactions(ligneclicAct);
end;
procedure TFormModifAction.ListBoxCondTotDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
@@ -1626,14 +1556,11 @@ begin
if (IndexDest<0) then IndexDest:=0;
Tablo_Action[ligneClicAct+1].TabloCond[IndexDest+1].numCondition:=i;
listboxConditions.Items[indexDest]:=ListBoxCondTot.Items[indexSrc];
clicAction:=ligneclicact;
Aff_champs(ligneClicAct+1,indexDest+1,0);
end;
procedure TFormModifAction.Champ1Change(Sender: TObject);
var cond,i,erreur : integer;
begin
@@ -1648,6 +1575,9 @@ begin
Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
Label2InfoFonction.caption:=NomFonction[i];
end;
CondBouton : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
CondMemoireEgal,CondMemoireInf,CondMemoireSup
: Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].adresse:=i;
end;
maj_combocactions(ligneclicAct);
end;
@@ -1660,6 +1590,8 @@ begin
cond:=Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].numcondition;
case cond of
CondVitTrain : Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].vitmaxi:=i;
CondMemoireEgal,CondMemoireInf,CondMemoireSup
: Tablo_Action[ligneclicact+1].tabloCond[cliccond+1].etat:=i;
end;
maj_combocactions(ligneclicAct);
end;
@@ -1794,6 +1726,8 @@ begin
case op of
ActionAccessoire : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].etat:=i;
ActionFonctionF : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].etat:=i;
ActionBoutonTCO : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].etat:=i;
ActionAffecteMemoire : Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].etat:=i;
end;
maj_combocactions(ligneclicAct);
end;
@@ -1844,15 +1778,12 @@ begin
clicListe:=false;
end;
procedure TFormModifAction.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Aff_champs(ligneclicAct+1,1,1);
end;
procedure TFormModifAction.ButtonFonctionClick(Sender: TObject);
begin
formModifAction.Close;
+13 -4
View File
@@ -20,8 +20,8 @@ object FormPrinc: TFormPrinc
OnCreate = FormCreate
OnResize = FormResize
DesignSize = (
1130
567)
1138
574)
PixelsPerInch = 96
TextHeight = 13
object LabelTitre: TLabel
@@ -1445,8 +1445,8 @@ object FormPrinc: TFormPrinc
end
object StatusBar1: TStatusBar
Left = 0
Top = 545
Width = 1130
Top = 552
Width = 1138
Height = 22
Panels = <
item
@@ -2093,6 +2093,10 @@ object FormPrinc: TFormPrinc
Hint = 'Affiche l'#39#233'tat des d'#233'tecteurs'
OnClick = AffEtatDetecteurs
end
object Etatdesactionneurs1: TMenuItem
Caption = 'Etat des actionneurs'
OnClick = Etatdesactionneurs1Click
end
object Etatdesaiguillages1: TMenuItem
Caption = 'Etat des aiguillages'
OnClick = Etatdesaiguillages1Click
@@ -2241,6 +2245,11 @@ object FormPrinc: TFormPrinc
Hint = 'Modifie les variables de configuration'
OnClick = ConfigClick
end
object Compilerlabasededonnes1: TMenuItem
Caption = 'Compiler la base de donn'#233'es'
Hint = 'Trie les aiguillages, les signaux, analyse les cantons'
OnClick = Compilerlabasededonnes1Click
end
object Vrifierlacohrence: TMenuItem
Caption = 'V'#233'rifier la coh'#233'rence'
Hint = 'V'#233'rifie la coh'#233'rence de la configuration'
+389 -616
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -747,8 +747,8 @@ begin
// TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
//MyBrush.Free;
FillRect(Rect);
Font.Color := TColor(ListBoxRoutes.Items.Objects[Index]);
TextOut(Rect.Left + 2, Rect.Top, ListBoxRoutes.Items[Index]);
Font.Color:=TColor(ListBoxRoutes.Items.Objects[Index]);
TextOut(Rect.Left+2, Rect.Top, ListBoxRoutes.Items[Index]);
end;
end;
+18 -11
View File
@@ -27,7 +27,7 @@ object FormRouteTrain: TFormRouteTrain
TabOrder = 3
object LabelRoute: TLabel
Left = 8
Top = 112
Top = 120
Width = 71
Height = 13
Caption = 'Route affect'#233'e'
@@ -40,16 +40,13 @@ object FormRouteTrain: TFormRouteTrain
ParentShowHint = False
ShowHint = False
end
end
object ComboBoxTrains: TComboBox
Left = 8
Top = 56
Width = 241
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 0
OnChange = ComboBoxTrainsChange
object LabelID: TLabel
Left = 13
Top = 96
Width = 68
Height = 13
Caption = 'Id de la route :'
end
end
object PageControlRoutes: TPageControl
Left = 256
@@ -259,6 +256,16 @@ object FormRouteTrain: TFormRouteTrain
end
end
end
object ComboBoxTrains: TComboBox
Left = 8
Top = 56
Width = 241
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 0
OnChange = ComboBoxTrainsChange
end
object ButtonQuitte: TButton
Left = 8
Top = 156
+32 -11
View File
@@ -7,7 +7,10 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
Dialogs, StdCtrls, ExtCtrls, ComCtrls,
unitprinc,UnitConfig,unitTCO,UnitHorloge,unitFicheHoraire,UnitDebug,UnitRoute,selection_train;
type
TFormRouteTrain = class(TForm)
@@ -35,6 +38,7 @@ type
Label1: TLabel;
CheckBoxSens: TCheckBox;
CheckBoxSIRA: TCheckBox;
LabelID: TLabel;
procedure FormActivate(Sender: TObject);
procedure ButtonQuitteClick(Sender: TObject);
procedure ComboBoxTrainsChange(Sender: TObject);
@@ -65,6 +69,7 @@ type
{ Déclarations publiques }
end;
var
FormRouteTrain: TFormRouteTrain;
IrPref : integer;
@@ -72,11 +77,10 @@ var
function aig_canton(idTrain,detect : integer) : integer;
function demarre_index_train(indexTrain : integer) : boolean;
procedure couleurs_routeTrains;
function routes_identiques(route1,route2 : TUneroute) : boolean;
implementation
uses unitprinc,UnitConfig,unitTCO,UnitHorloge,unitFicheHoraire,UnitDebug,UnitRoute,selection_train;
{$R *.dfm}
// démarre un train si le signal n'est pas au rouge
@@ -225,10 +229,28 @@ begin
trains[indextrain].TempoDemarre:=i; // démarrage à la vitesse nominale
end;
// si les routes route1 et route2 sont identiques, retourne vrai
function routes_identiques(route1,route2 : TUneroute) : boolean;
var n,i : integer;
egal : boolean;
begin
n:=route1[0].adresse;
if n=route2[0].adresse then
begin
i:=1;
repeat
egal:=(route1[i].adresse=route2[i].adresse) and (route1[i].typ=route2[i].typ);
inc(i);
until (i>n) or not(egal);
result:=egal;
end
else result:=false;
end;
// mise à jour des infos de la fenetre : combobox
procedure maj_infos(idtrain : integer);
var i,j,indexcanton,det1,det2,PixelLength : integer;
var i,j,PixelLength : integer;
s : string;
begin
formRouteTrain.comboBoxTrains.Clear;
@@ -284,7 +306,7 @@ begin
PixelLength:=0;
for j:=1 to trains[idtrain].routePref[0][0].adresse do
begin
s:=IntToSTR(j)+'. '+route_restreinte_to_string(trains[idTrain].routePref[j]);
s:='Id='+intToSTR(trains[idTrain].routePref[j][0].pos)+' '+route_restreinte_to_string(trains[idTrain].routePref[j]);
if Canvas.TextWidth(s)+30>PixelLength then PixelLength:=Canvas.TextWidth(s)+30;
ListBoxRM.Items.Add(s);
end;
@@ -681,6 +703,7 @@ begin
Trains[indexTrainFr].routePref[i]:=Trains[IndexTrainFr].route;
maj_infos(indexTrainFR);
compile_id_routes;
Sauve_config;
end;
@@ -715,7 +738,6 @@ end;
procedure TFormRouteTrain.ButtonMClick(Sender: TObject);
var n,sens,el1R,el2R,el1,el2,IdCanton,detfin,IdCantonDest,IdCantonOrg : integer;
t1,t2,t1R,t2R : tequipement;
trouve : boolean;
begin
if indexTrainFR<0 then begin labelRoute.caption:='Pas de train';exit;end;
@@ -737,7 +759,6 @@ begin
end;
}
if trains[indexTrainFR].routePref[IrPref][0].adresse<>0 then
begin
trains[indexTrainFR].route:=trains[indexTrainFR].routePref[IrPref]; // affectation de la route au train
@@ -863,8 +884,8 @@ begin
tabloRoute[NumRoute]:=trains[indexTrainFR].routePref[IrPref];
Efface_Affiche_route;
checkBoxSens.checked:=trains[indexTrainFR].routePref[IrPref][0].talon;
LabelID.caption:='Id de la route : '+intToSTR(trains[indexTrainFR].routePref[IrPref][0].pos);
// si le train de la route est en roulage, ne pas afficher la route car
// sinon les index des trains passent à 0 dans les cantons par la fonction zone_tco
if trains[indexTrainFR].roulage=0 then affiche_route_tco;
@@ -886,14 +907,14 @@ procedure TFormRouteTrain.ButtonSRClick(Sender: TObject);
var i,n : integer;
s : string;
begin
if IrPref<0 then exit;
if IrPref<1 then exit;
s:='Voulez-vous supprimer la route sauvegardée n°'+intToSTR(IrPref)+' ?';
if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit;
n:=trains[indexTrainFR].routePref[0][0].adresse; // nombre de routes
for i:=IrPref to n do
tabloRoute[i]:=tabloRoute[i+1];
tabloRoute[i]:=tabloRoute[i+1];
trains[indexTrainFR].routePref[0][0].adresse:=n-1;
dec(irPref);
maj_infos(indexTrainFR);
@@ -929,7 +950,7 @@ begin
IndexLigneRoute:=IrPref;
tabloRoute[NumRoute]:=trains[indexTrainFR].routePref[IrPref];
checkBoxSens.checked:=trains[indexTrainFR].routePref[IrPref][0].talon;
LabelID.caption:='Id de la route : '+intToSTR(trains[indexTrainFR].routePref[IrPref][0].pos);
efface_affiche_route;
EditNomRoute.Text:=trains[indexTrainFR].NomRoute[irPref];
end;
+1 -1
View File
@@ -490,7 +490,7 @@ object FormSR: TFormSR
end
object LabelCV31: TLabel
Left = 320
Top = 484
Top = 476
Width = 20
Height = 13
Caption = 'CV='
+75 -35
View File
@@ -154,12 +154,15 @@ begin
Lb:=formSR.findComponent(s) as tLabel;
Lb.Visible:=i-1<2*nadr;
s:='LabelCV'+intToSTR(i*2-1);
Lb:=formSR.findComponent(s) as tLabel;
Lb.Visible:=i-1<2*nadr;
s:='LabelCV'+intToSTR(i*2);
Lb:=formSR.findComponent(s) as tLabel;
Lb.Visible:=i-1<2*nadr;
if signaux[indexSig].decodeur=7 then
begin
s:='LabelCV'+intToSTR(i*2-1);
Lb:=formSR.findComponent(s) as tLabel;
Lb.Visible:=i-1<2*nadr;
s:='LabelCV'+intToSTR(i*2);
Lb:=formSR.findComponent(s) as tLabel;
Lb.Visible:=i-1<2*nadr;
end;
end;
for i:=1 to 8 do
@@ -546,13 +549,78 @@ begin
end;
procedure TFormSR.FormActivate(Sender: TObject);
var erreur,etat1,etat2,ne : integer;
const p2d='+ 2 droit';
m1d='- 1 dévié';
var dec,erreur,etat1,etat2,ne : integer;
begin
Val(FormConfig.EditAdrSig.text,Adr,erreur);
indexSig:=index_Signal(Adr);
if IndexSig=0 then LabelErreur.caption:='Erreur 512 : signal '+intToSTR(Adr)+' inexistant'
else
begin
dec:=signaux[IndexSig].decodeur;
// SR
if dec=7 then
begin
label1.Caption:=p2d;
label2.Caption:=m1d;
label3.Caption:=p2d;
label4.Caption:=m1d;
label5.Caption:=p2d;
label6.Caption:=m1d;
label7.Caption:=p2d;
label8.Caption:=m1d;
label9.Caption:=p2d;
label10.Caption:=m1d;
label11.Caption:=p2d;
label12.Caption:=m1d;
label13.Caption:=p2d;
label14.Caption:=m1d;
label15.Caption:=p2d;
label16.Caption:=m1d;
Caption:='Configuration du décodeur de signal Stéphane Ravaut';
label303.Visible:=true;
labelCV1.Visible:=true; labelCV2.Visible:=true; labelCV3.Visible:=true; labelCV4.Visible:=true;
labelCV5.Visible:=true; labelCV6.Visible:=true; labelCV7.Visible:=true; labelCV8.Visible:=true;
labelCV9.Visible:=true; labelCV10.Visible:=true; labelCV11.Visible:=true; labelCV12.Visible:=true;
labelCV13.Visible:=true; labelCV14.Visible:=true; labelCV15.Visible:=true; labelCV16.Visible:=true;
labelCV17.Visible:=true; labelCV18.Visible:=true; labelCV19.Visible:=true; labelCV20.Visible:=true;
labelCV21.Visible:=true; labelCV22.Visible:=true; labelCV23.Visible:=true; labelCV24.Visible:=true;
labelCV25.Visible:=true; labelCV26.Visible:=true; labelCV27.Visible:=true; labelCV28.Visible:=true;
labelCV29.Visible:=true; labelCV30.Visible:=true; labelCV31.Visible:=true; labelCV32.Visible:=true;
end;
// LEA
if dec=11 then
begin
FormSR.Caption:='Configuration du décodeur de signal LEA';
label303.Visible:=false;
labelCV1.Visible:=false; labelCV2.Visible:=false; labelCV3.Visible:=false; labelCV4.Visible:=false;
labelCV5.Visible:=false; labelCV6.Visible:=false; labelCV7.Visible:=false; labelCV8.Visible:=false;
labelCV9.Visible:=false; labelCV10.Visible:=false; labelCV11.Visible:=false; labelCV12.Visible:=false;
labelCV13.Visible:=false; labelCV14.Visible:=false; labelCV15.Visible:=false; labelCV16.Visible:=false;
labelCV17.Visible:=false; labelCV18.Visible:=false; labelCV19.Visible:=false; labelCV20.Visible:=false;
labelCV21.Visible:=false; labelCV22.Visible:=false; labelCV23.Visible:=false; labelCV24.Visible:=false;
labelCV25.Visible:=false; labelCV26.Visible:=false; labelCV27.Visible:=false; labelCV28.Visible:=false;
labelCV29.Visible:=false; labelCV30.Visible:=false; labelCV31.Visible:=false; labelCV32.Visible:=false;
label1.Caption:=m1d;
label2.Caption:=p2d;
label3.Caption:=m1d;
label4.Caption:=p2d;
label5.Caption:=m1d;
label6.Caption:=p2d;
label7.Caption:=m1d;
label8.Caption:=p2d;
label9.Caption:=m1d;
label10.Caption:=p2d;
label11.Caption:=m1d;
label12.Caption:=p2d;
label13.Caption:=m1d;
label14.Caption:=p2d;
label15.Caption:=m1d;
label16.Caption:=p2d;
end;
LabelAdrSR1.caption:=intToSTR(Adr);
LabelAdrSR2.caption:=intToSTR(Adr+1);
LabelAdrSR3.caption:=intToSTR(Adr+2);
@@ -579,34 +647,6 @@ begin
ComboBoxAdr15.ItemIndex:=Signaux[indexSig].SR[8].sortie1;
ComboBoxAdr16.ItemIndex:=Signaux[indexSig].SR[8].sortie0;
{
for i:=1 to 16 do
begin
ComboBoxAdr1.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr2.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr3.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr4.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr5.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr6.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr7.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr8.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr9.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr10.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr11.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr12.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr13.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr14.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr15.Items[i-1]:=etats[etatsDefSR[i]];
ComboBoxAdr16.Items[i-1]:=etats[etatsDefSR[i]];
end; }
ne:=Signaux[indexSig].Na; // nombre d'états du signal (2 à 19)
EditNESignal.Text:=intToSTr(ne);
+98 -2
View File
@@ -211,6 +211,102 @@ object FormTCO: TFormTCO
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
end
object ImageBt0Bistable: TImage
Left = 672
Top = 0
Width = 48
Height = 48
Picture.Data = {
07544269746D6170F6040000424DF60400000000000076000000280000003000
000030000000010004000000000080040000C20E0000C20E0000100000000000
0000000000000000800000800000008080008000000080008000808000008080
8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888880
00888888888888888888888888888888888BB800000000000000888888888888
8888888880000000088BB8000000000000000888888888888888888880000000
088BB8000000000000000008888888888888888880000000088BB88888888880
00000000088888888888888888888888888BB888888888888000000000888888
8888888888888888888BB8888888888888000000000088888888888888888888
888BB8888888888888880000000008888888888888888888888BB88888888888
88888000000000088888888888888888888BB888888888888888888000000000
0888888888888888888BB8888888888888888888800000000088888888888888
888BB88888888888888888888C0000000000888888888888888BB88888888888
888888888CCC00000000088888888888888BB88888888888888888888CCC8800
0000000888888888888BB88888888888888888888CCC88800000000088888888
888BB88888888888888888888CCC88888000000088888888888BB88888888888
888888888CCC88888800000088888888888BB88888888888888888888CCC8888
8888000888888888888BB88888888888888888888CCC88888888888888888888
888BB88888888888888888888CCC88888888888888888888888BB88888888888
888888888CCC88888888888888888888888BB88888888888888888888CCC8888
8888888888888888888BB88888888888888888888CCC88888888888888888888
888BB8888888888888CC88888CCC88888CC8888888888888888BB88888888888
88CC88888CCC88888CC8888888888888888BB8888888888888CCCCCCCCCCCCCC
CCC8888888888888888BB8888888888888CCCCCCCCCCCCCCCCC8888888888888
888BB8888888888888CCCCCCCCCCCCCCCCC8888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBB}
end
object ImageBt1Bistable: TImage
Left = 672
Top = 56
Width = 48
Height = 48
Picture.Data = {
07544269746D6170F6040000424DF60400000000000076000000280000003000
000030000000010004000000000080040000C20E0000C20E0000100000000000
0000000000000000800000800000008080008000000080008000808000008080
8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888800
00000000000000000000000000888888888BB800000000000000000000000000
0000000000000000088BB8000000000000000000000000000000000000000000
088BB8000000000000000000000000000000000000000000088BB88888888800
00000000000000000000000000888888888BB8888888888888888888888CCC88
8888888888888888888BB8888888888888888888888CCC888888888888888888
888BB8888888888888888888888CCC888888888888888888888BB88888888888
88888888888CCC888888888888888888888BB8888888888888888888888CCC88
8888888888888888888BB8888888888888888888888CCC888888888888888888
888BB8888888888888888888888CCC888888888888888888888BB88888888888
88888888888CCC888888888888888888888BB8888888888888888888888CCC88
8888888888888888888BB8888888888888888888888CCC888888888888888888
888BB8888888888888888888888CCC888888888888888888888BB88888888888
8888CC88888CCC88888CC88888888888888BB888888888888888CC88888CCC88
888CC88888888888888BB888888888888888CCCCCCCCCCCCCCCCC88888888888
888BB888888888888888CCCCCCCCCCCCCCCCC88888888888888BB88888888888
8888CCCCCCCCCCCCCCCCC88888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BB8888888888888888888888888888888888888888888
888BB8888888888888888888888888888888888888888888888BB88888888888
88888888888888888888888888888888888BB888888888888888888888888888
8888888888888888888BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBB}
end
object ScrollBox: TScrollBox
Left = 8
Top = 12
@@ -1537,9 +1633,9 @@ object FormTCO: TFormTCO
object N8: TMenuItem
Caption = '-'
end
object rouverunlment1: TMenuItem
object Trouverunlment1: TMenuItem
Caption = 'Trouver un '#233'l'#233'ment'
OnClick = rouverunlment1Click
OnClick = Trouverunlment1Click
end
object DessinerleTCO1: TMenuItem
Caption = 'Dessiner le TCO'
+132 -28
View File
@@ -163,7 +163,9 @@ type
ImageDrapRouge: TImage;
Button1: TButton;
Optiondesroutes1: TMenuItem;
rouverunlment1: TMenuItem;
Trouverunlment1: TMenuItem;
ImageBt0Bistable: TImage;
ImageBt1Bistable: TImage;
//TimerTCO: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
@@ -399,7 +401,7 @@ type
procedure AffRoutesClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Optiondesroutes1Click(Sender: TObject);
procedure rouverunlment1Click(Sender: TObject); private
procedure Trouverunlment1Click(Sender: TObject);
{ Déclarations privées }
function index_TCOMainMenu : integer;
public
@@ -476,6 +478,7 @@ type
trajet : integer; // décrit le trajet ouvert sur la voie (cas d'un croisement ou d'une tjd/S)
inverse : boolean; // aiguillage piloté inversé
repr : integer; // position de la représentation texte 0 = rien 1=centré 2=Haut 3=Bas 4=réparti 5=double centré
etat : integer; // état du bouton
Texte : string; // texte de la cellule
Fonte : string; // fonte du texte
FontStyle : string; // GSIB (Gras Souligné Italique Barré)
@@ -609,6 +612,12 @@ var
traceXY : Array[1..50] of record x,y : integer; // en coordonnées grille
end;
boutonTCO : array[0..100] of record
etat : integer; // état des boutons du TCO ; l'index est le numéro de bouton
idtco,x,y : integer;
existe : boolean;
end;
rAncien : TRect;
OldBmp : TBitMap;
PScrollBoxTCO : TScrollBox;
@@ -1828,7 +1837,7 @@ begin
exit;
end;
{$I-}
if debug=1 then Affiche('Lecture tco '+intToSTr(indexTCO)+' '+NomfichierTCO[indexTCO],clyellow);
if debug=1 then Affiche('Lecture tco '+intToSTr(indexTCO)+' '+NomfichierTCO[indexTCO],clLime);
x:=1;y:=1;NbreCellX[indexTCO]:=0;NbreCellY[indexTCO]:=0; RatioC:=10;
Graphisme:=1;
trouve_clAllume:=false;
@@ -2263,6 +2272,13 @@ begin
begin
tco[indexTCO,x,y].PiedFeu:=PiedFeu; // quelle action
tco[indexTCO,x,y].FeuOriente:=FeuOriente; // paramètre de l'action
if PiedFeu=AcBouton_bistable then
begin
BoutonTCO[Adresse].existe:=true;
BoutonTCO[Adresse].idtco:=IndexTCO;
BoutonTCO[Adresse].x:=x;
BoutonTCO[Adresse].y:=y;
end;
end;
// 7 texte optionnel
@@ -2862,6 +2878,10 @@ begin
s:=format('%d',[TCO[indexTCO,x,y].Numcanton]);
end
else
if (b=id_action) and (tco[indexTCO,x,y].PiedFeu=AcBouton_bistable) then
begin
exit;
end;
case repr of
0,1 : yt:=(hauteurCell[indexTCO] div 2)-round(tailleFont*fryGlob[indexTCO]); // au milieu
@@ -6616,8 +6636,8 @@ begin
end;
// action
procedure dessin_Action(indexTCO : integer;Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xf,yf,act,larg,haut : integer;
procedure dessin_Action(indexTCO : integer;Canvas : Tcanvas;x,y : integer);
var adresse,x0,y0,xf,yf,act,larg,haut,etat : integer;
r : Trect;
s : string;
begin
@@ -6713,31 +6733,58 @@ begin
AcAff_horloge :
begin
if s='' then s:='Aff'+#13+'horl';
if s='' then s:='Aff'+#13+'horl';
tco[indexTCO,x,y].texte:=s;
tco[indexTCO,x,y].TailleFonte:=8;
tco[indexTCO,x,y].FontStyle:='G';
end;
AcBouton_bistable :
begin
adresse:=tco[indexTCO,x,y].Adresse;
if adresse<>0 then
begin
etat:=boutonTCO[adresse].etat;
s:=intToSTR(adresse);
end
else
begin
etat:=0;
s:='?';
end;
tco[indexTCO,x,y].texte:=s;
tco[indexTCO,x,y].TailleFonte:=8;
tco[indexTCO,x,y].FontStyle:='G';
if etat=0 then
StretchBlt(Canvas.Handle,x0,y0,larg,haut,
FormTCO[indexTCO].ImageBt0Bistable.canvas.Handle,0,0,48,48,srccopy)
//FormTCO[indexTCO].Image1.canvas.Handle,0,0,48,48,srccopy)
else
StretchBlt(Canvas.Handle,x0,y0,larg,haut,
FormTCO[indexTCO].ImageBt1Bistable.canvas.Handle,0,0,48,48,srccopy);
canvas.Brush.color:=$c1c1c1; // couleur de fond du bouton
canvas.Font.color:=clBlack;
canvas.font.Style:=[];
Canvas.textOut(x0+3,y0+3,s);
//tco[indextco,x,y].repr:=2;
//PImageTCO[indexTCO].Picture.Bitmap.Canvas.Brush.Color:=clred; //$c3c3c3;
//PImageTCO[indexTCO].Picture.Bitmap.Canvas.pen.Color:=clred;
//pen.Color:=clBlue;
//font.Color:=clGreen;
//canvas.Brush.Style := bsClear;
//SetBkMode(PImageTCO[indexTCO].Picture.Bitmap.Canvas.Handle, Transparent);
//PImageTCO[indexTCO].Picture.Bitmap.Canvas.textOut(x0+3,y0+3,s);
//exit;
end;
//tf:=(tco[indexTCO,x,y].TailleFonte*LargeurCell[indexTCO]) div 40;
//tf:=(8*LargeurCell[indexTCO]) div 40;;
end;
//Font.Color:=clwhite;
//font.Name:='Arial';
//texte_reparti(s,indexTCO,x,y,tf);
affiche_texte(indextco,x,y);
//affiche_texte(indextco,x,y);
end;
// copier imagelist dans imagetemp2
{ formTCO[indexTCO].ImageListTCO.GetBitmap (0, formTCO[indexTCO].ImageTemp2.Picture.Bitmap);
StretchBlt(pcanvasTCO[indexTCO].Handle,x0,y0,LargeurCell[indexTCO],hauteurCell[indexTCO], // destination avec mise à l'échelle
FormTCO[indexTCO].ImageTemp2.Canvas.Handle,0,0,24,24,srccopy);
formTCO[indexTCO].ImageTemp2.Picture.Bitmap.Modified:=true;
}
end;
@@ -11127,12 +11174,30 @@ begin
Id_signal : dessin_Signal(indexTCO,PCanvasTCO,X,Y);
Id_Quai : dessin_Quai(indexTCO,PCanvasTCO,X,Y,mode);
Id_action : dessin_Action(indexTCO,PCanvasTCO,X,Y,mode);
Id_action : dessin_Action(indexTCO,PCanvasTCO,X,Y);
// les cantons sont affichés dans affiche_cellule car il faut dessiner les trains
end;
end;
procedure origine_canton(var x,y : integer);
var Bimage : integer;
begin
Bimage:=tco[indexTCOCourant,x,y].BImage;
if isCantonH(Bimage) then
begin
x:=x-(Bimage-Id_cantonH); // revenir à la coordonnée X du début du canton
end
else
if isCantonV(Bimage) then
begin
y:=y-(Bimage-Id_cantonH); // revenir à la coordonnée Y du début du canton
end
else
begin
x:=0;y:=0;
end;
end;
// affiche la cellule x et y en cases
// index est utilisé pour accéder au tableau du tracé de la fonction zone_tco
@@ -12035,6 +12100,7 @@ begin
end;
end;
//if (idcanton<>0) and not affecte_Loco then Affiche('Pas en mode affecte_loco',clOrange);
end;
// pour les croisements il faut mettre à jour la variable "trajet" pour l'affichage dans la cellule
@@ -12739,7 +12805,7 @@ var i,ir,adresse,But,Bimage,direction,ancienX,ancienY,x,y,xn,yn,Xdet1,yDet1,iter
begin
if aiguillage[index].EtatTJD=4 then
begin
TjdHom:=aiguillage[index].Ddevie;
TjdHom:=aiguillage[index].Ddevie;
Index_TjdHom:=index_aig(TjdHom);
position2:=aiguillage[Index_TjdHom].position;
tjd4(adresse,position,TjdHom,position2,c1,c2); // retourne c1 et C2
@@ -13708,6 +13774,11 @@ begin
end;
// fonction appellable en modes 1 2 3 10 11 12
// affiche le tracé de det1 à det2; n°Train n°i (pas son index), adresseTrain, mode=0=éteint =1 allumejaune =2 allume selon index,
// posAig=false : ne tient pas compte de la position des aiguillages pour le tracé (cherche en récursif det2
// = true : suit le tracé suivant la position des aiguillages jusque det2
// affecte_loco=true : affecte loco si on rencontre un canton. Si mode=0 çà désaffecte la loco au canton
// =false : ne change pas l'affectation d'un canton rencontré
function zone_tco(indexTCO,det1,det2,train,adrTrain,mode: integer;posAig,affecte_loco : boolean) : boolean; overload;
begin
result:=zone_tco_gx(indexTCO,det1,det,det2,train,adrTrain,mode,posAig,affecte_loco);
@@ -13903,7 +13974,7 @@ begin
dessin_34(indexTCO,ImagePalette34.canvas,1,1,0);
dessin_Quai(indexTCO,ImagePalette51.canvas,1,1,0); //quai
dessin_Action(indexTCO,ImagePalette52.canvas,1,1,0); //action
dessin_Action(indexTCO,ImagePalette52.canvas,1,1); //action
dessin_icone_canton(indexTCO,ImagePalette53.canvas,1,1,0); //action
@@ -15015,7 +15086,7 @@ begin
33 : dessin_33(indexTCO,FormTCO[indexTCO].ImageTCO.Canvas,XClic,YClic,0);
34 : dessin_34(indexTCO,FormTCO[indexTCO].ImageTCO.Canvas,XClic,YClic,0);
id_Quai : dessin_Quai(indexTCO,FormTCO[indexTCO].ImageTCO.Canvas,XClic,YClic,0);
id_action : dessin_Action(indexTCO,FormTCO[indexTCO].ImageTCO.Canvas,XClic,YClic,0);
id_action : dessin_Action(indexTCO,FormTCO[indexTCO].ImageTCO.Canvas,XClic,YClic);
id_canton :
// autorisé à déposer que sur les icones 1 et 20
@@ -15963,7 +16034,7 @@ end;
procedure TFormTCO.ImageTCOMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
var position : Tpoint;
Numcanton,xt,yt,bt,indexTCO,i,n,adresse,Bimage,xf,yf,xclic,yclic,el1,el2,senscanton,larg,haut,
indexTrain,idcantonOrg,idcantonDest,AdrTrain,sens : integer;
indexTrain,idcantonOrg,idcantonDest,AdrTrain,sens,etat : integer;
tel1,tel2 : tequipement;
s : string;
presTrain,Horz,Pc,trouve : boolean;
@@ -16008,7 +16079,7 @@ begin
end;
// clic sur canton
//if isCanton(Bimage) then
if pc then
if pc then
begin
IdCantonClic:=index_canton(indexTCO,xclic,yclic);
if IdCantonClic>0 then
@@ -16288,7 +16359,18 @@ begin
Init_Horloge;
end;
AcAff_horloge : affiche_horloge;
AcBouton_bistable:
begin
adresse:=tco[indextco,xclic,yclic].Adresse;
if (adresse<=0) or (adresse>100) then exit;
etat:=boutonTCO[adresse].etat;
inc(etat);
if etat=2 then etat:=0;
boutonTCO[adresse].etat:=etat;
dessin_Action(indexTCO,pcanvasTCO[indextco],xclic,yclic);
end;
end;
end;
@@ -18895,11 +18977,23 @@ end;
procedure TFormTCO.AffRoutesClick(Sender: TObject);
var x,y,idc : integer;
begin
with formrouteTrain do
begin
windowState:=wsNormal; //Maximized;;
TabSheetRA.Enabled:=true;
x:=XClicCell[indexTCOCourant];
y:=YClicCell[indexTCOCourant];
if isCanton(TCO[indexTcoCourant,x,y].BImage) then
begin
origine_canton(x,y);
if (x<>0) and (y<>0) then
begin
idc:=Index_Canton_numero(tco[indexTCOcourant,x,y].NumCanton); //index canton
indextrainFR:=canton[idc].indexTrain;
end;
end;
Show;
end;
end;
@@ -18914,17 +19008,21 @@ begin
formRoute.Show;
end;
procedure TFormTCO.rouverunlment1Click(Sender: TObject);
procedure TFormTCO.Trouverunlment1Click(Sender: TObject);
var x,y : integer;
trouve : boolean;
begin
IndexTCOCourant:=index_TCOMainMenu;
AchercherDet:=0;
AchercherCanton:=0;
FormIntro.showmodal;
y:=1;
repeat
x:=1;
repeat
trouve:=tco[IndexTCOCourant,x,y].Adresse=Achercher;
if AchercherDet<>0 then trouve:=tco[IndexTCOCourant,x,y].Adresse=AchercherDet;
if AchercherCanton<>0 then
trouve:=tco[IndexTCOCourant,x,y].NumCanton=Acherchercanton;
inc(x);
until (x>NbreCellX[IndexTCOCourant]) or trouve;
inc(y);
@@ -18943,5 +19041,11 @@ begin
end;
end;
end.
+4 -4
View File
@@ -17,10 +17,10 @@ object FormVersion: TFormVersion
PixelsPerInch = 96
TextHeight = 20
object Memo1: TMemo
Left = 8
Top = 8
Width = 625
Height = 217
Left = 0
Top = 0
Width = 649
Height = 233
Color = clNavy
Font.Charset = ANSI_CHARSET
Font.Color = clYellow
+30 -21
View File
@@ -11,7 +11,7 @@ type
TFormVersion = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure TimerVerifTimer(Sender: TObject);
//procedure TimerVerifTimer(Sender: TObject);
private
{ Déclarations privées }
public
@@ -21,13 +21,13 @@ type
var
FormVersion: TFormVersion;
Lance_verif : integer;
verifVersion,notificationVersion,essai : boolean;
DebugVV,verifVersion,notificationVersion,essai : boolean;
chemin_Dest,chemin_src,date_creation,nombre_tel : string;
f : text;
Const
VersionSC ='9.6'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
VersionSC ='9.7'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
// pour unzip
SHCONTCH_NOPROGRESSBOX=4;
SHCONTCH_AUTORENAME=8;
@@ -85,10 +85,13 @@ begin
t:=0;
Try Fs:=TFileStream.Create(s,fmCreate);
//hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if DebugVV then Affiche('TFileStream.Create ok',clLime);
hSession:=InternetOpen('MyApp',INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,nil,nil,0);
if DebugVV then Affiche('InternetOpen ok',clLime);
try
if Assigned(hSession) then
begin
if DebugVV then Affiche('Session assignée',clYellow);
hService:=InternetOpenUrl(hSession,PChar(aUrl),nil,0,INTERNET_FLAG_RELOAD,0);
i:=getLastError;
if i<>0 then
@@ -100,7 +103,7 @@ begin
end;
if Assigned(hService) then
try
//Affiche('Service assigné',clLime);
if DebugVV then Affiche('Service assigné',clLime);
while True do
begin
dwBytesRead:=1024;
@@ -272,10 +275,13 @@ begin
Url:='https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest';
LocalFile:='page.txt';
trouve_version:=false;
DebugVV:=false;
trouve_zip:=false;
zone_comm:=false;
Ncomm:=0;
if DebugVV then Affiche('Lancement DownloadURL_NOCache',clYellow);
if DownloadURL_NOCache(Url,localFile,taille) then
//if true then
begin
if not(FileExists(localfile)) then
begin
@@ -285,6 +291,7 @@ begin
result:=0;
exit;
end;
if DebugVV then Affiche('DownloadURL_NOCache passé',clYellow);
AssignFile(fichier,LocalFile);
reset(fichier);
@@ -292,11 +299,17 @@ begin
while not(eof(fichier)) and (not(trouve_version) or not(trouve_zip)) do
begin
readln(fichier,s);
if DebugVV then Affiche(s,clYellow);
s:=utf8Decode(s);
//Affiche(s,clyellow);
// adresse de téléchargement
s3:=extrait_champ('browser_download_url');
if s3<>'' then trouve_zip:=true;
if s3<>'' then
begin
if DebugVV then affiche('ZIP trouvé',clYellow);
trouve_zip:=true;
end;
// nombre de téléchargements
nombre_tel:=extrait_champ_simple('download_count');
@@ -306,6 +319,7 @@ begin
if date_creation_ang<>'' then
begin
//Affiche(date_creation_ang,clyellow);
if DebugVV then affiche('Date création trouvé',clYellow);
i:=pos('-',date_creation_ang);
j:=posex('-',date_creation_ang,i+1);
i2:=pos('T',date_creation_ang);
@@ -320,12 +334,14 @@ begin
if version_p<>'' then
begin
trouve_version:=true;
if DebugVV then affiche('Version trouvée',clYellow);
if not(version_p[1] in ['0'..'9']) then delete(version_p,1,1);
end;
description:=extrait_champ('body');
if description<>'' then
begin
if DebugVV then affiche('Description trouvée',clYellow);
//description:=utf8Decode(description);
i:=1 ; j:=1;
// couper en chaînes et mettre dans comm[]
@@ -350,6 +366,7 @@ begin
end;
end;
closefile(fichier);
if DebugVV then affiche('Fermeture du fichier d''échange',clYellow);
if trouve_version and trouve_zip then
begin
@@ -357,10 +374,11 @@ begin
//isoler le nom du fichier
i:=length(s3);
repeat
dec(i);
dec(i);
locZip:=s3[i]='/';
until (i=1) or LocZip;
nomfichier:=copy(s3,i+1,length(s3)-i);
//affiche(nombre_tel,cllime);
//Affiche(s3,clLime);
//Affiche(nomfichier,clred);
@@ -374,19 +392,9 @@ begin
l:=length(s);
SV_publie:=s[l];
if Sv_publie in ['0'..'9'] then Sv_Publie:=' ' else begin s:=copy(s,1,l-1);Version_P:=s;end;
val(s,V_publie,erreur);
if erreur<>0 then
begin
Affiche('Erreur 701',clred);
exit;
end;
val(s2,V_utile,erreur);
if erreur<>0 then
begin
Affiche('Erreur 702',clred);
exit;
end;
//
V_Publie:=StrToFloat(s,FormatSettings);
V_utile:=StrToFloat(s2,FormatSettings);
if (V_utile<V_publie) or ((V_utile=V_publie) and (SousVersion<SV_publie)) then
begin
FormVersion.Top:=10;
@@ -476,6 +484,7 @@ begin
end;
{
procedure TFormVersion.TimerVerifTimer(Sender: TObject);
var V_utile,V_publie : real;
erreur: integer;
@@ -496,7 +505,7 @@ begin
end;
end;
end;
}
// ne parche pas pour les répertoires non vides
procedure DeleteDirectory(const DirName: string);
+8 -2
View File
@@ -280,7 +280,7 @@ version 9.41 : Affichage des noms des cantons dans les cantons du TCO.
Pilotage de la fonction F0.
Pilotage de l'état (0/1) des fonctions F dans les actions.
Décodeurs CDF : sélection du pilotage en mode 4 (2 signaux indépendants)
version 9.42 : Affiche des exclusions dans la fenêtre de pilotage des signaux.
version 9.42 : Affiche les exclusions dans la fenêtre de pilotage des signaux.
Correction décodeur SR pour aspects combinés.
Sélection correcte des routes mémorisées.
Mesure pour étalonnage des vitesses des locomotives.
@@ -289,5 +289,11 @@ version 9.42 : Affiche des exclusions dans la fen
version 9.5 : Etalonnage des vitesses des locomotives pour le mode autonome
pour arret précis sur détecteurs à distance souhaitée.
version 9.6 : Fonctions logiques sur position d'accessoires, de détecteurs et d'actionneurs
intégrables dans les déclencheurs et les conditions des actions.
9.61 et 9.62 intégrables dans les déclencheurs et les conditions des actions.
version 9.7 : Boutons dans le TCO intégrables dans les conditions des actions,
ou commandables dans les opérations.
Mémoires actionnables dans les actions.
Gestion du décodeur de signaux LEA de Ligéa.
Correction bug PN sur mémoires de zones.