V3.1
This commit is contained in:
14
README.adoc
Normal file
14
README.adoc
Normal file
@@ -0,0 +1,14 @@
|
||||
Signaux_complexes_GL
|
||||
====================
|
||||
|
||||
Client signaux complexes pour CDM rail ou centrales pilotées par XpressNet
|
||||
en USB ou Ethernet.
|
||||
Fichiers sources.
|
||||
|
||||
== Liens ==
|
||||
|
||||
:lien: http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499
|
||||
:cdm: http://cdmrail.free.fr/SiteCDR/index.html
|
||||
|
||||
* {lien} [Lien vers le fil] -- Forum de CDM rail
|
||||
* {cdm} [Lin vers CDM rail] -- Site de CDM rail
|
||||
@@ -1,4 +0,0 @@
|
||||
# Signaux_complexes_GL
|
||||
Client signaux complexes pour CDM rail ou centrales LENZ
|
||||
Fichiers sources et exécutables.
|
||||
http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499
|
||||
BIN
UnitConfig.dcu
BIN
UnitConfig.dcu
Binary file not shown.
365
UnitConfig.dfm
365
UnitConfig.dfm
@@ -1,13 +1,13 @@
|
||||
object FormConfig: TFormConfig
|
||||
Left = 345
|
||||
Top = 219
|
||||
Left = 285
|
||||
Top = 127
|
||||
Hint =
|
||||
'Modifie les fichiers de configuration selon les s'#233'lections chois' +
|
||||
'ies'
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Configuration g'#233'n'#233'rale'
|
||||
ClientHeight = 501
|
||||
ClientWidth = 854
|
||||
ClientWidth = 902
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
@@ -21,7 +21,7 @@ object FormConfig: TFormConfig
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object LabelInfo: TLabel
|
||||
Left = 601
|
||||
Left = 649
|
||||
Top = 416
|
||||
Width = 29
|
||||
Height = 16
|
||||
@@ -34,7 +34,7 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object Image1: TImage
|
||||
Left = 600
|
||||
Left = 648
|
||||
Top = 128
|
||||
Width = 249
|
||||
Height = 177
|
||||
@@ -944,7 +944,7 @@ object FormConfig: TFormConfig
|
||||
Stretch = True
|
||||
end
|
||||
object Label11: TLabel
|
||||
Left = 600
|
||||
Left = 648
|
||||
Top = 32
|
||||
Width = 244
|
||||
Height = 31
|
||||
@@ -957,7 +957,7 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object ImageAig: TImage
|
||||
Left = 600
|
||||
Left = 648
|
||||
Top = 312
|
||||
Width = 137
|
||||
Height = 57
|
||||
@@ -1229,7 +1229,7 @@ object FormConfig: TFormConfig
|
||||
Visible = False
|
||||
end
|
||||
object ImageTJD: TImage
|
||||
Left = 720
|
||||
Left = 760
|
||||
Top = 320
|
||||
Width = 137
|
||||
Height = 57
|
||||
@@ -1365,7 +1365,7 @@ object FormConfig: TFormConfig
|
||||
Visible = False
|
||||
end
|
||||
object ImageTri: TImage
|
||||
Left = 600
|
||||
Left = 648
|
||||
Top = 336
|
||||
Width = 145
|
||||
Height = 65
|
||||
@@ -1543,7 +1543,7 @@ object FormConfig: TFormConfig
|
||||
Caption = 'Verrouillable au carr'#233' :'
|
||||
end
|
||||
object Image2: TImage
|
||||
Left = 720
|
||||
Left = 760
|
||||
Top = 352
|
||||
Width = 129
|
||||
Height = 41
|
||||
@@ -1773,9 +1773,9 @@ object FormConfig: TFormConfig
|
||||
object PageControl: TPageControl
|
||||
Left = 8
|
||||
Top = 8
|
||||
Width = 585
|
||||
Width = 633
|
||||
Height = 457
|
||||
ActivePage = TabSheetSig
|
||||
ActivePage = TabSheetCDM
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
@@ -1787,7 +1787,7 @@ object FormConfig: TFormConfig
|
||||
object TabSheetCDM: TTabSheet
|
||||
Caption = 'CDM Rail'
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 8
|
||||
Left = 16
|
||||
Top = 8
|
||||
Width = 273
|
||||
Height = 81
|
||||
@@ -1827,7 +1827,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 8
|
||||
Left = 16
|
||||
Top = 96
|
||||
Width = 273
|
||||
Height = 185
|
||||
@@ -1900,7 +1900,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBox6: TGroupBox
|
||||
Left = 296
|
||||
Left = 320
|
||||
Top = 8
|
||||
Width = 273
|
||||
Height = 169
|
||||
@@ -1980,7 +1980,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBox7: TGroupBox
|
||||
Left = 296
|
||||
Left = 320
|
||||
Top = 184
|
||||
Width = 273
|
||||
Height = 137
|
||||
@@ -2036,7 +2036,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBox8: TGroupBox
|
||||
Left = 8
|
||||
Left = 16
|
||||
Top = 288
|
||||
Width = 273
|
||||
Height = 113
|
||||
@@ -2091,7 +2091,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBox15: TGroupBox
|
||||
Left = 296
|
||||
Left = 320
|
||||
Top = 328
|
||||
Width = 273
|
||||
Height = 73
|
||||
@@ -2120,7 +2120,7 @@ object FormConfig: TFormConfig
|
||||
object Label9: TLabel
|
||||
Left = 8
|
||||
Top = 400
|
||||
Width = 297
|
||||
Width = 294
|
||||
Height = 13
|
||||
Caption = 'Ces param'#232'tres sont utilis'#233's en fonctionnement sans CDM Rail'
|
||||
WordWrap = True
|
||||
@@ -2260,55 +2260,54 @@ object FormConfig: TFormConfig
|
||||
object Memo1: TMemo
|
||||
Left = 312
|
||||
Top = 8
|
||||
Width = 257
|
||||
Width = 297
|
||||
Height = 97
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
BorderStyle = bsNone
|
||||
Lines.Strings = (
|
||||
'1. Port COM de l'#39'adresse USB de l'#39'interface '
|
||||
'XpressNet.'
|
||||
'Attention de COM1 '#224' 9 - Si le port de l'#39'interface '
|
||||
'USB>9, il faut le changer manuellement dans le '
|
||||
'gestionnaire des p'#233'riph'#233'riques. Mettre 0 si inutilis'#233'e. '
|
||||
'Le programme ne tentera pas de se connecter '#224' la '
|
||||
'centrale si CDM rail est d'#233'tect'#233'.')
|
||||
'1. Port COM de l'#39'adresse USB de l'#39'interface XpressNet.'
|
||||
'Attention de COM1 '#224' 9 - Si le port de l'#39'interface USB>9, il '
|
||||
'faut le changer manuellement dans le gestionnaire des '
|
||||
'p'#233'riph'#233'riques. '
|
||||
'Mettre 0 si inutilis'#233'e. Le programme ne tentera pas de se '
|
||||
'connecter '#224' la centrale si CDM rail est d'#233'tect'#233'.')
|
||||
ReadOnly = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object Memo2: TMemo
|
||||
Left = 312
|
||||
Top = 112
|
||||
Width = 257
|
||||
Width = 297
|
||||
Height = 97
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
BorderStyle = bsNone
|
||||
Lines.Strings = (
|
||||
'2. Valeur de temporisation entre deux octets '
|
||||
'transf'#233'r'#233's '#224' l'#39'interface. Elle peut '#234'tre nulle. Pour '
|
||||
'les interfaces s'#233'rie sans protocole (0) comme le '
|
||||
'GENLI, il est conseill'#233' de la positionner '#224' une '
|
||||
'valeur de l'#39'ordre de 30 (ms). Pour les interfaces avec '
|
||||
'protocole mat'#233'riel RTS-CTS (2) cette '
|
||||
'variable est ignor'#233'e.')
|
||||
'2. Valeur de temporisation entre deux octets transf'#233'r'#233's '#224' '
|
||||
'l'#39'interface. Elle peut '#234'tre nulle. '
|
||||
'Pour les interfaces s'#233'rie sans protocole (0) comme le '
|
||||
'GENLI, il est conseill'#233' de la positionner '#224' une valeur de '
|
||||
'l'#39'ordre de 30 (ms). '
|
||||
'Pour les interfaces avec protocole mat'#233'riel RTS-CTS (2) '
|
||||
'cette variable est ignor'#233'e.')
|
||||
ReadOnly = True
|
||||
TabOrder = 4
|
||||
end
|
||||
object Memo3: TMemo
|
||||
Left = 312
|
||||
Top = 216
|
||||
Width = 257
|
||||
Width = 297
|
||||
Height = 89
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
BorderStyle = bsNone
|
||||
Lines.Strings = (
|
||||
'3. Valeur maximale par tranche de 100 ms qui d'#233'finit '
|
||||
'le temps d'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's '
|
||||
'une trame qui lui est transf'#233'r'#233'e. Cette valeur est '#224' '
|
||||
'tester en fonction de votre interface. En cas de '
|
||||
'd'#233'passement de la valeur, un message '#171' pas de '
|
||||
'3. Valeur maximale par tranche de 100 ms qui d'#233'finit le temps '
|
||||
'd'#39'attente de la r'#233'ponse de l'#39'interface apr'#232's '
|
||||
'une trame qui lui est transf'#233'r'#233'e. '
|
||||
'Cette valeur est '#224' tester en fonction de votre interface. '
|
||||
'En cas de d'#233'passement de la valeur, un message '#171' pas de '
|
||||
'r'#233'ponse de l'#39'interface '#187' sera affich'#233'.')
|
||||
ReadOnly = True
|
||||
TabOrder = 5
|
||||
@@ -2316,17 +2315,17 @@ object FormConfig: TFormConfig
|
||||
object Memo4: TMemo
|
||||
Left = 312
|
||||
Top = 312
|
||||
Width = 257
|
||||
Width = 297
|
||||
Height = 73
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
BorderStyle = bsNone
|
||||
Lines.Strings = (
|
||||
'4. Pour l'#39'utilisation d'#39'interfaces s'#233'rie (GENLI), cette '
|
||||
'valeur doit '#234'tre '#224' 0. Pour les interfaces utilisant '
|
||||
'nativement de l'#39'USB, cette valeur doit '#234'tre '#224' 1. La '
|
||||
'valeur 2 est utilis'#233'e exclusivement pour des '
|
||||
'interfaces '#224' base d'#39'arduino pour xpressnet.')
|
||||
'4. Pour l'#39'utilisation d'#39'interfaces s'#233'rie (GENLI), cette valeur '
|
||||
'doit '#234'tre '#224' 0. Pour les interfaces utilisant nativement de '
|
||||
'l'#39'USB, cette valeur doit '#234'tre '#224' 1. '
|
||||
'La valeur 2 est utilis'#233'e exclusivement pour des interfaces '#224' '
|
||||
'base d'#39'arduino pour xpressnet.')
|
||||
ReadOnly = True
|
||||
TabOrder = 6
|
||||
end
|
||||
@@ -2397,11 +2396,25 @@ object FormConfig: TFormConfig
|
||||
Height = 13
|
||||
Caption = 'LabelTJD1'
|
||||
end
|
||||
object Label35: TLabel
|
||||
Left = 0
|
||||
Top = 56
|
||||
Width = 134
|
||||
Height = 13
|
||||
Caption = 'Configuration des aiguillages'
|
||||
end
|
||||
object Label36: TLabel
|
||||
Left = 232
|
||||
Top = 56
|
||||
Width = 86
|
||||
Height = 13
|
||||
Caption = 'Liste d'#39'initialisation'
|
||||
end
|
||||
object GroupBox11: TGroupBox
|
||||
Left = 280
|
||||
Left = 328
|
||||
Top = 32
|
||||
Width = 289
|
||||
Height = 353
|
||||
Height = 393
|
||||
Caption = 'Description de l'#39'aiguillage'
|
||||
TabOrder = 0
|
||||
object LabelAdresse: TLabel
|
||||
@@ -2433,7 +2446,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBox10: TGroupBox
|
||||
Left = 8
|
||||
Top = 96
|
||||
Top = 88
|
||||
Width = 273
|
||||
Height = 73
|
||||
Caption = 'Vitesse de franchissement d'#233'vi'#233' :'
|
||||
@@ -2468,7 +2481,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckInverse: TCheckBox
|
||||
Left = 16
|
||||
Top = 296
|
||||
Top = 269
|
||||
Width = 137
|
||||
Height = 17
|
||||
Caption = 'Inversion de l'#39#233'tat CDM'
|
||||
@@ -2484,7 +2497,7 @@ object FormConfig: TFormConfig
|
||||
OnChange = EditAdrAigChange
|
||||
end
|
||||
object ComboBoxAig: TComboBox
|
||||
Left = 72
|
||||
Left = 8
|
||||
Top = 64
|
||||
Width = 145
|
||||
Height = 21
|
||||
@@ -2500,9 +2513,9 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBox16: TGroupBox
|
||||
Left = 8
|
||||
Top = 176
|
||||
Top = 168
|
||||
Width = 273
|
||||
Height = 105
|
||||
Height = 97
|
||||
Caption = 'Repr'#233'sentation'
|
||||
TabOrder = 4
|
||||
object LabelHG: TLabel
|
||||
@@ -2577,15 +2590,15 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
end
|
||||
object LabelTJD1: TLabel
|
||||
Left = 72
|
||||
Top = 84
|
||||
Left = 96
|
||||
Top = 76
|
||||
Width = 52
|
||||
Height = 13
|
||||
Caption = 'LabelTJD1'
|
||||
end
|
||||
object LabelTJD2: TLabel
|
||||
Left = 152
|
||||
Top = 84
|
||||
Left = 168
|
||||
Top = 76
|
||||
Width = 52
|
||||
Height = 13
|
||||
Caption = 'LabelTJD1'
|
||||
@@ -2673,8 +2686,8 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object ButtonRestaureAig: TButton
|
||||
Left = 192
|
||||
Top = 296
|
||||
Left = 200
|
||||
Top = 56
|
||||
Width = 75
|
||||
Height = 25
|
||||
Hint =
|
||||
@@ -2695,24 +2708,76 @@ object FormConfig: TFormConfig
|
||||
Visible = False
|
||||
OnChange = EditAigTripleChange
|
||||
end
|
||||
object GroupBox21: TGroupBox
|
||||
Left = 8
|
||||
Top = 288
|
||||
Width = 273
|
||||
Height = 97
|
||||
Caption = 'Initialisation de l'#39'aiguillage en mode autonome'
|
||||
TabOrder = 7
|
||||
object Label37: TLabel
|
||||
Left = 8
|
||||
Top = 26
|
||||
Width = 66
|
||||
Height = 13
|
||||
Caption = 'D'#233'vi'#233' ou droit'
|
||||
end
|
||||
object Label38: TLabel
|
||||
Left = 8
|
||||
Top = 42
|
||||
Width = 129
|
||||
Height = 13
|
||||
Caption = 'Temporisation (1/10'#232'me s)'
|
||||
end
|
||||
object LabelDevie: TLabel
|
||||
Left = 200
|
||||
Top = 24
|
||||
Width = 3
|
||||
Height = 13
|
||||
end
|
||||
object EditDevDroit: TEdit
|
||||
Left = 152
|
||||
Top = 18
|
||||
Width = 41
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
OnChange = EditDevDroitChange
|
||||
end
|
||||
object EditTempo10: TEdit
|
||||
Left = 152
|
||||
Top = 40
|
||||
Width = 41
|
||||
Height = 21
|
||||
TabOrder = 1
|
||||
OnChange = EditTempo10Change
|
||||
end
|
||||
object CheckInvInit: TCheckBox
|
||||
Left = 8
|
||||
Top = 64
|
||||
Width = 153
|
||||
Height = 17
|
||||
Caption = 'Pilotage invers'#233
|
||||
TabOrder = 2
|
||||
OnClick = CheckInvInitClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object RichAig: TRichEdit
|
||||
Left = 0
|
||||
Top = 56
|
||||
Width = 265
|
||||
Height = 337
|
||||
Top = 72
|
||||
Width = 233
|
||||
Height = 353
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
Lines.Strings = (
|
||||
'RichAig')
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssVertical
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 1
|
||||
WordWrap = False
|
||||
OnMouseDown = RichAigMouseDown
|
||||
end
|
||||
object ButtonNouvAig: TButton
|
||||
@@ -2742,6 +2807,23 @@ object FormConfig: TFormConfig
|
||||
TabOrder = 4
|
||||
OnClick = ButtonAjSupClick
|
||||
end
|
||||
object RichInitAig: TRichEdit
|
||||
Left = 232
|
||||
Top = 72
|
||||
Width = 89
|
||||
Height = 353
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 5
|
||||
WordWrap = False
|
||||
end
|
||||
end
|
||||
object TabSheetBranches: TTabSheet
|
||||
Caption = 'Branches'
|
||||
@@ -2756,7 +2838,7 @@ object FormConfig: TFormConfig
|
||||
'la modifier - Valider la ligne apr'#232's modification'
|
||||
end
|
||||
object Label34: TLabel
|
||||
Left = 408
|
||||
Left = 472
|
||||
Top = 192
|
||||
Width = 136
|
||||
Height = 26
|
||||
@@ -2764,7 +2846,7 @@ object FormConfig: TFormConfig
|
||||
WordWrap = True
|
||||
end
|
||||
object GroupBox20: TGroupBox
|
||||
Left = 408
|
||||
Left = 464
|
||||
Top = 24
|
||||
Width = 153
|
||||
Height = 161
|
||||
@@ -2809,7 +2891,7 @@ object FormConfig: TFormConfig
|
||||
object RichBranche: TRichEdit
|
||||
Left = 0
|
||||
Top = 24
|
||||
Width = 401
|
||||
Width = 457
|
||||
Height = 401
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -2822,6 +2904,7 @@ object FormConfig: TFormConfig
|
||||
ParentFont = False
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 1
|
||||
WordWrap = False
|
||||
OnMouseDown = RichBrancheMouseDown
|
||||
end
|
||||
end
|
||||
@@ -2838,10 +2921,10 @@ object FormConfig: TFormConfig
|
||||
'z sur une ligne pour afficher la description du signal'
|
||||
end
|
||||
object GroupBox12: TGroupBox
|
||||
Left = 288
|
||||
Left = 336
|
||||
Top = 40
|
||||
Width = 281
|
||||
Height = 353
|
||||
Height = 385
|
||||
Caption = 'Description du signal'
|
||||
TabOrder = 0
|
||||
object ImageSignal: TImage
|
||||
@@ -2964,10 +3047,11 @@ object FormConfig: TFormConfig
|
||||
object MemoCarre: TMemo
|
||||
Left = 8
|
||||
Top = 280
|
||||
Width = 241
|
||||
Height = 65
|
||||
ScrollBars = ssVertical
|
||||
Width = 265
|
||||
Height = 89
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 0
|
||||
WordWrap = False
|
||||
OnChange = MemoCarreChange
|
||||
end
|
||||
object ComboBoxDec: TComboBox
|
||||
@@ -3052,7 +3136,7 @@ object FormConfig: TFormConfig
|
||||
OnChange = EditSuiv4Change
|
||||
end
|
||||
object CheckVerrouCarre: TCheckBox
|
||||
Left = 104
|
||||
Left = 120
|
||||
Top = 224
|
||||
Width = 145
|
||||
Height = 17
|
||||
@@ -3115,8 +3199,8 @@ object FormConfig: TFormConfig
|
||||
object RichSig: TRichEdit
|
||||
Left = 0
|
||||
Top = 56
|
||||
Width = 273
|
||||
Height = 337
|
||||
Width = 329
|
||||
Height = 369
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
@@ -3173,43 +3257,27 @@ object FormConfig: TFormConfig
|
||||
'iquez sur une ligne pour afficher la description de l'#39'action'
|
||||
end
|
||||
object GroupBox13: TGroupBox
|
||||
Left = 304
|
||||
Left = 360
|
||||
Top = 32
|
||||
Width = 257
|
||||
Height = 385
|
||||
Caption = 'Description de l'#39'actionneur '
|
||||
TabOrder = 0
|
||||
object GroupBoxRadio: TGroupBox
|
||||
object Label40: TLabel
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 225
|
||||
Height = 65
|
||||
Caption = 'Type d'#39'actionneur '
|
||||
TabOrder = 0
|
||||
object RadioButtonLoc: TRadioButton
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 193
|
||||
Height = 17
|
||||
Caption = 'Fonction F pour locomotive'
|
||||
TabOrder = 0
|
||||
OnClick = RadioButtonLocClick
|
||||
end
|
||||
object RadioButtonAccess: TRadioButton
|
||||
Left = 24
|
||||
Top = 40
|
||||
Width = 161
|
||||
Height = 17
|
||||
Caption = 'Fonction F pour accessoire'
|
||||
TabOrder = 1
|
||||
OnClick = RadioButtonAccessClick
|
||||
end
|
||||
Top = 328
|
||||
Width = 191
|
||||
Height = 26
|
||||
Caption =
|
||||
'Les accessoires ne sont utilisables qu'#39'en mode connect'#233' avec CDM' +
|
||||
' Rail'
|
||||
WordWrap = True
|
||||
end
|
||||
object GroupBoxPN: TGroupBox
|
||||
Left = 32
|
||||
Top = 80
|
||||
Left = -32
|
||||
Top = 24
|
||||
Width = 225
|
||||
Height = 193
|
||||
Height = 289
|
||||
Caption = 'Actionneurs gestion passage '#224' niveau'
|
||||
TabOrder = 2
|
||||
object Label21: TLabel
|
||||
@@ -3253,6 +3321,13 @@ object FormConfig: TFormConfig
|
||||
Width = 137
|
||||
Height = 2
|
||||
end
|
||||
object Label39: TLabel
|
||||
Left = 8
|
||||
Top = 188
|
||||
Width = 30
|
||||
Height = 13
|
||||
Caption = 'Voie 4'
|
||||
end
|
||||
object EditAdrFerme: TEdit
|
||||
Left = 120
|
||||
Top = 24
|
||||
@@ -3349,19 +3424,61 @@ object FormConfig: TFormConfig
|
||||
TabOrder = 11
|
||||
OnChange = EditV3OChange
|
||||
end
|
||||
object EditV4F: TEdit
|
||||
Left = 64
|
||||
Top = 184
|
||||
Width = 41
|
||||
Height = 21
|
||||
TabOrder = 12
|
||||
OnChange = EditV4FChange
|
||||
end
|
||||
object GroupBoxAct: TGroupBox
|
||||
object EditV4O: TEdit
|
||||
Left = 152
|
||||
Top = 184
|
||||
Width = 41
|
||||
Height = 21
|
||||
TabOrder = 13
|
||||
OnChange = EditV4OChange
|
||||
end
|
||||
end
|
||||
object GroupBoxRadio: TGroupBox
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 225
|
||||
Height = 249
|
||||
Height = 65
|
||||
Caption = 'Type d'#39'actionneur '
|
||||
TabOrder = 0
|
||||
object RadioButtonLoc: TRadioButton
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 193
|
||||
Height = 17
|
||||
Caption = 'Fonction F pour locomotive'
|
||||
TabOrder = 0
|
||||
OnClick = RadioButtonLocClick
|
||||
end
|
||||
object RadioButtonAccess: TRadioButton
|
||||
Left = 24
|
||||
Top = 40
|
||||
Width = 161
|
||||
Height = 17
|
||||
Caption = 'Fonction F pour accessoire'
|
||||
TabOrder = 1
|
||||
OnClick = RadioButtonAccessClick
|
||||
end
|
||||
end
|
||||
object GroupBoxAct: TGroupBox
|
||||
Left = 16
|
||||
Top = 104
|
||||
Width = 225
|
||||
Height = 225
|
||||
Caption = 'Actionneur fonction de locomotive '
|
||||
TabOrder = 1
|
||||
object GroupBox18: TGroupBox
|
||||
Left = 8
|
||||
Top = 24
|
||||
Width = 209
|
||||
Height = 97
|
||||
Height = 81
|
||||
Caption = 'D'#233'clencheur '
|
||||
TabOrder = 0
|
||||
object LabelActionneur: TLabel
|
||||
@@ -3417,13 +3534,13 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object GroupBox19: TGroupBox
|
||||
Left = 8
|
||||
Top = 128
|
||||
Top = 112
|
||||
Width = 209
|
||||
Height = 105
|
||||
Caption = 'Action '
|
||||
TabOrder = 1
|
||||
object LabelTempo: TLabel
|
||||
Left = 40
|
||||
Left = 48
|
||||
Top = 52
|
||||
Width = 55
|
||||
Height = 13
|
||||
@@ -3447,8 +3564,8 @@ object FormConfig: TFormConfig
|
||||
Caption = #224
|
||||
end
|
||||
object EditTempo: TEdit
|
||||
Left = 128
|
||||
Top = 45
|
||||
Left = 112
|
||||
Top = 46
|
||||
Width = 33
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
@@ -3456,7 +3573,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object CheckRAZ: TCheckBox
|
||||
Left = 32
|
||||
Top = 72
|
||||
Top = 80
|
||||
Width = 145
|
||||
Height = 17
|
||||
Caption = 'Remise '#224' 0 apr'#232's pilotage'
|
||||
@@ -3465,7 +3582,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditFonctionAccess: TEdit
|
||||
Left = 112
|
||||
Top = 15
|
||||
Top = 18
|
||||
Width = 25
|
||||
Height = 21
|
||||
Hint = 'Num'#233'ro de fonction du d'#233'codeur du train'
|
||||
@@ -3476,7 +3593,7 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
object EditEtatFoncSortie: TEdit
|
||||
Left = 160
|
||||
Top = 15
|
||||
Top = 18
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
@@ -3488,7 +3605,7 @@ object FormConfig: TFormConfig
|
||||
object GroupBox14: TGroupBox
|
||||
Left = 0
|
||||
Top = 32
|
||||
Width = 297
|
||||
Width = 345
|
||||
Height = 185
|
||||
Caption = 'Actionneurs locomotives ou accessoires'
|
||||
TabOrder = 1
|
||||
@@ -3516,7 +3633,7 @@ object FormConfig: TFormConfig
|
||||
object RichAct: TRichEdit
|
||||
Left = 8
|
||||
Top = 48
|
||||
Width = 281
|
||||
Width = 329
|
||||
Height = 129
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -3526,16 +3643,17 @@ object FormConfig: TFormConfig
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssVertical
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 2
|
||||
WordWrap = False
|
||||
OnMouseDown = RichActMouseDown
|
||||
end
|
||||
end
|
||||
object GroupBox17: TGroupBox
|
||||
Left = 0
|
||||
Top = 232
|
||||
Width = 297
|
||||
Height = 185
|
||||
Width = 345
|
||||
Height = 193
|
||||
Caption = 'Actionneurs passage '#224' niveau'
|
||||
TabOrder = 2
|
||||
object ButtonNouvPN: TButton
|
||||
@@ -3562,8 +3680,8 @@ object FormConfig: TFormConfig
|
||||
object RichPN: TRichEdit
|
||||
Left = 8
|
||||
Top = 48
|
||||
Width = 281
|
||||
Height = 129
|
||||
Width = 329
|
||||
Height = 137
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
@@ -3572,8 +3690,9 @@ object FormConfig: TFormConfig
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssVertical
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 2
|
||||
WordWrap = False
|
||||
OnMouseDown = RichPNMouseDown
|
||||
end
|
||||
end
|
||||
|
||||
1049
UnitConfig.pas
1049
UnitConfig.pas
File diff suppressed because it is too large
Load Diff
BIN
UnitDebug.dcu
BIN
UnitDebug.dcu
Binary file not shown.
BIN
UnitPrinc.dcu
BIN
UnitPrinc.dcu
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
object FormPrinc: TFormPrinc
|
||||
Left = 58
|
||||
Top = 217
|
||||
Left = 55
|
||||
Top = 177
|
||||
Width = 1212
|
||||
Height = 664
|
||||
Caption = 'Client TCP-IP CDM Rail ou USB - syst'#232'me LENZ'
|
||||
@@ -1434,6 +1434,7 @@ object FormPrinc: TFormPrinc
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 7
|
||||
WordWrap = False
|
||||
OnChange = FenRichChange
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
@@ -1600,6 +1601,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object Vrifierlacohrence: TMenuItem
|
||||
Caption = 'V'#233'rifier la coh'#233'rence'
|
||||
Hint = 'V'#233'rifie la coh'#233'rence de la configuration'
|
||||
OnClick = VrifierlacohrenceClick
|
||||
end
|
||||
object N8: TMenuItem
|
||||
|
||||
@@ -208,6 +208,7 @@ type TBranche = record
|
||||
Adresse : integer;
|
||||
modele : integer; // 0=n'existe pas 1=aiguillage 2=TJD 3=TJS 4=aiguillage triple
|
||||
position, // position actuelle : 1=dévié 2=droit (centrale LENZ)
|
||||
posInit, // position d'initialisation
|
||||
Adrtriple, // 2eme adresse pour un aiguillage triple
|
||||
temps, // temps de pilotage (durée de l'impulsion en x 100 ms)
|
||||
inversion : integer; // positionné dans fichier config_gl section_init
|
||||
@@ -268,7 +269,7 @@ TFeu = record
|
||||
posAig : char;
|
||||
end;
|
||||
CondCarre : array[1..6] of array of record // conditions supplémentaires d'aiguillages en position pour le carré
|
||||
// attention les données sont stockée en adresse 1 du tableau dynamique
|
||||
// attention les données sont stockées en adresse 1 du tableau dynamique
|
||||
Adresse : integer; // aiguillage
|
||||
posAig : char;
|
||||
end;
|
||||
@@ -1261,6 +1262,7 @@ var TypeFeu : integer;
|
||||
const espY = 15;//40; // espacement Y entre deux lignes de feux
|
||||
begin
|
||||
TypeFeu:=feux[rang].aspect;
|
||||
if typeFeu<=0 then exit;
|
||||
Feux[rang].Img:=Timage.create(Formprinc.ScrollBox1);
|
||||
with Feux[rang].Img do
|
||||
begin
|
||||
@@ -2294,7 +2296,6 @@ var
|
||||
combine,aspect,code : word;
|
||||
s : string;
|
||||
begin
|
||||
code:=etatsignalcplx[adresse];
|
||||
if (ancien_tablo_signalCplx[adresse]<>EtatSignalCplx[adresse]) then //; && (stop_cmd==FALSE))
|
||||
begin
|
||||
ancien_tablo_signalCplx[adresse]:=EtatSignalCplx[adresse];
|
||||
@@ -2430,7 +2431,6 @@ begin
|
||||
if TCO[x,y].Bimage=30 then
|
||||
begin
|
||||
adresse:=TCO[x,y].adresse; // vérifie si le feu existe dans le TCO
|
||||
a:=EtatsignalCplx[adresse]; // a = état binaire du feu
|
||||
aspect:=TCO[x,y].aspect;
|
||||
case aspect of
|
||||
2 : ImageFeu:=Formprinc.Image2feux;
|
||||
@@ -2563,7 +2563,6 @@ procedure trouve_detecteur(detecteur : integer);
|
||||
var NBranche,i : integer;
|
||||
begin
|
||||
Nbranche:=1;
|
||||
i:=1;
|
||||
repeat
|
||||
i:=index_detecteur(detecteur,Nbranche);
|
||||
if i=0 then inc(NBranche);
|
||||
@@ -2579,7 +2578,6 @@ procedure trouve_aiguillage(adresse : integer);
|
||||
var NBranche,i : integer;
|
||||
begin
|
||||
Nbranche:=1;
|
||||
i:=1;
|
||||
repeat
|
||||
i:=index_aiguillage(Adresse,Nbranche);
|
||||
if i=0 then inc(NBranche);
|
||||
@@ -2637,7 +2635,6 @@ var s,sa,chaine,SOrigine: string;
|
||||
if esp<>0 then delete(s,esp,1);
|
||||
until esp=0;
|
||||
lit_ligne:=s;
|
||||
//Affiche(s,clWhite);
|
||||
end;
|
||||
|
||||
procedure compile_section_init;
|
||||
@@ -2650,14 +2647,16 @@ var s,sa,chaine,SOrigine: string;
|
||||
if j>1 then
|
||||
begin
|
||||
begin
|
||||
adresse:=StrToINT(copy(s,1,j-1));Delete(s,1,j); // adresse aiguillage
|
||||
Val(s,adresse,erreur);
|
||||
Delete(s,1,j); // adresse aiguillage
|
||||
if (adresse>0) and (AvecInitAiguillages) then
|
||||
begin
|
||||
j:=pos(',',s);
|
||||
position:=StrToInt(copy(s,1,j-1));Delete(S,1,j);// position aiguillage
|
||||
Val(s,position,erreur);
|
||||
Delete(S,1,j);// position aiguillage
|
||||
if (position<1) or (position>2) then position:=1;
|
||||
index:=Index_Aig(adresse);
|
||||
aiguillage[index].position:=position;
|
||||
aiguillage[index].posInit:=position;
|
||||
|
||||
// temporisation aiguillage
|
||||
j:=pos(',',s);if j=0 then j:=length(s);
|
||||
@@ -2704,6 +2703,7 @@ begin
|
||||
Aiguillage[i].modele:=0 ; // sans existence
|
||||
Aiguillage[i].adresse:=0;
|
||||
Aiguillage[i].position:=const_inconnu; // position inconnue
|
||||
Aiguillage[i].PosInit:=const_inconnu; // position inconnue
|
||||
Aiguillage[i].temps:=5 ;
|
||||
Aiguillage[i].inversion:=0;
|
||||
Aiguillage[i].inversionCDM:=0;
|
||||
@@ -2715,7 +2715,6 @@ begin
|
||||
Ancien_detecteur[i]:=false;
|
||||
end;
|
||||
|
||||
|
||||
Affiche('lecture du fichier de configuration config.cfg',clyellow);
|
||||
{$I+}
|
||||
try
|
||||
@@ -3367,6 +3366,7 @@ begin
|
||||
AvecInitAiguillages:=s='1';
|
||||
end;
|
||||
|
||||
// taille de la fenetre
|
||||
sa:=uppercase(fenetre_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i<>0 then
|
||||
@@ -3378,6 +3378,7 @@ begin
|
||||
if fenetre=1 then Formprinc.windowState:=wsMaximized;
|
||||
end;
|
||||
|
||||
// temporisation aiguillages
|
||||
sa:=uppercase(Tempo_Aig_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i<>0 then
|
||||
@@ -3388,7 +3389,6 @@ begin
|
||||
val(s,Tempo_Aig,erreur);
|
||||
end;
|
||||
|
||||
|
||||
i:=pos(uppercase(section_init),s);
|
||||
if i<>0 then
|
||||
begin
|
||||
@@ -3418,7 +3418,6 @@ begin
|
||||
delete(s,i,length(sa));
|
||||
trouve_NOTIF_VERSION:=true;
|
||||
// vérification de la version au démarrage
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
notificationVersion:=i=1;
|
||||
end;
|
||||
@@ -3431,7 +3430,6 @@ begin
|
||||
delete(s,i,length(sa));
|
||||
trouve_TCO:=true;
|
||||
// vérification de la version au démarrage
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
AvecTCO:=i=1;
|
||||
end;
|
||||
@@ -3444,7 +3442,6 @@ begin
|
||||
trouve_CDM:=true;
|
||||
delete(s,i,length(sa));
|
||||
// vérification de la version au démarrage
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
LanceCDM:=i=1;
|
||||
end;
|
||||
@@ -3466,7 +3463,6 @@ begin
|
||||
inc(nv);
|
||||
trouve_serveur_interface:=true;
|
||||
delete(s,i,length(sa));
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
ServeurInterfaceCDM:=i;
|
||||
end;
|
||||
@@ -3478,7 +3474,6 @@ begin
|
||||
inc(nv);
|
||||
trouve_retro:=true;
|
||||
delete(s,i,length(sa));
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
ServeurRetroCDM:=i;
|
||||
end;
|
||||
@@ -3490,7 +3485,6 @@ begin
|
||||
inc(nv);
|
||||
trouve_NbDetDist:=true;
|
||||
delete(s,i,length(sa));
|
||||
i:=0;
|
||||
val(s,i,erreur);
|
||||
if i<2 then begin i:=2;Affiche('Attention '+nb_det_dist_ch+' ramené à '+IntToSTR(i),clOrange); end;
|
||||
Nb_Det_Dist:=i;
|
||||
@@ -4449,6 +4443,7 @@ end;
|
||||
|
||||
|
||||
// renvoie vrai si les aiguillages déclarés dans la définition du signal sont mal positionnés
|
||||
// (conditions suppplémentares)
|
||||
function cond_carre(adresse : integer) : boolean;
|
||||
var i,l,k,NCondCarre,adrAig,index : integer;
|
||||
resultatET,resultatOU: boolean;
|
||||
@@ -4469,10 +4464,13 @@ begin
|
||||
//s2:=s2+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig+' ';
|
||||
AdrAig:=feux[i].condcarre[l][k].Adresse;
|
||||
index:=index_aig(adrAig);
|
||||
if index<>0 then
|
||||
begin
|
||||
if nivDebug=3 then AfficheDebug('Contrôle aiguillage '+IntToSTR(AdrAig),clyellow);
|
||||
resultatET:=((aiguillage[index].position=const_devie) and (feux[i].condcarre[l][k].PosAig='S') or (aiguillage[index].position=const_droit) and (feux[i].condcarre[l][k].PosAig='D'))
|
||||
and resultatET;
|
||||
end;
|
||||
end;
|
||||
//if resultatET then Affiche('VRAI',clyellow) else affiche('FAUX',clred);
|
||||
inc(l);
|
||||
resultatOU:=resultatOU or resultatET;
|
||||
@@ -6269,7 +6267,7 @@ begin
|
||||
j:=posEx(',',PortCom,j+1);
|
||||
j:=posEx(',',PortCom,j+1);
|
||||
|
||||
confStCom:=copy(portCom,i+1,j-i-1); //Affiche(ConfStCom,clred);
|
||||
confStCom:=copy(portCom,i+1,j-i-1);
|
||||
Settings:=ConfStCom; // COMx:vitesse,n,8,1
|
||||
Affiche('Demande ouverture COM'+intToSTR(NumPort)+':'+ConfStCom+' protocole '+IntToSTR(protocole),CLYellow);
|
||||
if protocole>=4 then Handshaking:=0 {0=aucun 1=Xon-Xoff 2=cts 3=RTS-Xon-Xoff 4=5=protocoles "maison"}
|
||||
@@ -6786,7 +6784,7 @@ begin
|
||||
index:=index_aig(i);
|
||||
if aiguillage[index].modele<>0 then // si l'aiguillage existe
|
||||
begin
|
||||
pos:=aiguillage[index].position;
|
||||
pos:=aiguillage[index].posInit;
|
||||
s:='Init aiguillage '+intToSTR(i)+'='+intToSTR(pos);
|
||||
if pos=1 then s:=s+' (dévié)' else s:=s+' (droit)';
|
||||
Affiche(s,cyan);
|
||||
@@ -7139,7 +7137,7 @@ procedure TFormPrinc.MenuConnecterEthernetClick(Sender: TObject);
|
||||
begin
|
||||
if AdresseIP<>'0' then
|
||||
begin
|
||||
Affiche('Demande de connexion de l''interface Lenz en ethernet '+AdresseIP+':'+IntToSTR(Port),clyellow);
|
||||
Affiche('Demande de connexion de l''interface XpressNet en ethernet sur '+AdresseIP+':'+IntToSTR(Port),clyellow);
|
||||
ClientSocketLenz.port:=port;
|
||||
ClientSocketLenz.Address:=AdresseIP;
|
||||
ClientSocketLenz.Open;
|
||||
@@ -7422,7 +7420,6 @@ begin
|
||||
// Tempo_chgt_feux:=10; // demander la mise à jour des feux
|
||||
end;
|
||||
|
||||
|
||||
// évènement détecteur
|
||||
posDT:=pos('CMDACC-ST_DT',commandeCDM);
|
||||
if posDT<>0 then
|
||||
@@ -7593,9 +7590,8 @@ begin
|
||||
ConnecterCDMRail.enabled:=true;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormPrinc.Codificationdesfeux1Click(Sender: TObject);
|
||||
var i,j,k,l,CondCarre,NfeuxDir : integer;
|
||||
var i,j,k,l,CondCarre,NfeuxDir,nc : integer;
|
||||
s,s2 : string;
|
||||
begin
|
||||
Affiche('Codification interne des feux',Cyan);
|
||||
@@ -7612,31 +7608,29 @@ begin
|
||||
s:=s+' Det='+IntToSTR(feux[i].Adr_det1);
|
||||
s:=s+' El_Suiv1='+IntToSTR(feux[i].Adr_el_suiv1)+' Type suiv1='+intToSTR(feux[i].Btype_suiv1);
|
||||
case feux[i].Btype_suiv1 of
|
||||
1 : s:=s+' (détecteur)';
|
||||
2 : s:=s+' (aiguillage ou TJD-S)';
|
||||
4 : s:=s+' (aiguillage triple)';
|
||||
5 : s:=s+' (aiguillage bis)';
|
||||
1 : s:=s+' (détecteur) ';
|
||||
2 : s:=s+' (aiguillage ou TJD-S) ';
|
||||
4 : s:=s+' (aiguillage triple) ';
|
||||
5 : s:=s+' (aiguillage bis) ';
|
||||
end;
|
||||
if feux[i].decodeur=6 then
|
||||
s:=s+' Cible unisemaf='+intToSTR(feux[i].Unisemaf);
|
||||
s:=s+'Cible unisemaf= '+intToSTR(feux[i].Unisemaf);
|
||||
|
||||
// conditions sur carré
|
||||
CondCarre:=Length(feux[i].condcarre[1]);
|
||||
l:=1;
|
||||
s2:='';
|
||||
while condCarre<>0 do
|
||||
repeat
|
||||
nc:=Length(feux[i].condcarre[l])-1 ;
|
||||
if (nc>0) and (l=1) then begin Affiche(s,clYellow);s:='';end; // pour afficher sur 2 lignes
|
||||
for k:=1 to nc do
|
||||
begin
|
||||
if condcarre<>0 then dec(condcarre);
|
||||
for k:=1 to condCarre do
|
||||
begin
|
||||
s2:=s2+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig+' ';
|
||||
s:=s+'A'+IntToSTR(feux[i].condcarre[l][k].Adresse)+feux[i].condcarre[l][k].PosAig;
|
||||
if k<nc then s:=s+',';
|
||||
end;
|
||||
s2:=s2+'/';
|
||||
inc(l);
|
||||
CondCarre:=Length(feux[i].condcarre[l]);
|
||||
end;
|
||||
|
||||
if nc>0 then s:=s+'/';
|
||||
until (nc<=0) or (l>6);
|
||||
end
|
||||
|
||||
else
|
||||
// feu directionnel
|
||||
begin
|
||||
@@ -7981,7 +7975,7 @@ begin
|
||||
Tformconfig.create(nil);
|
||||
formconfig.PageControl.ActivePage:=formconfig.TabSheetSig;
|
||||
//Affiche(intToSTR(index),clOrange);
|
||||
lignecliquee:=index-1;
|
||||
ligneClicSig:=index-1;
|
||||
formconfig.showmodal;
|
||||
formconfig.close;
|
||||
end;
|
||||
|
||||
BIN
UnitTCO.dcu
BIN
UnitTCO.dcu
Binary file not shown.
Binary file not shown.
@@ -1,28 +1,31 @@
|
||||
object FormVersion: TFormVersion
|
||||
Left = 497
|
||||
Top = 186
|
||||
Width = 468
|
||||
Height = 194
|
||||
Left = 197
|
||||
Top = 230
|
||||
BorderIcons = []
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'V'#233'rification de version'
|
||||
Color = clBtnFace
|
||||
ClientHeight = 213
|
||||
ClientWidth = 644
|
||||
Color = clNavy
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -16
|
||||
Font.Name = 'Arial Narrow'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 20
|
||||
object Memo1: TMemo
|
||||
Left = 16
|
||||
Top = 32
|
||||
Width = 425
|
||||
Height = 105
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 641
|
||||
Height = 209
|
||||
BorderStyle = bsNone
|
||||
Color = clNavy
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -13
|
||||
Font.Color = clYellow
|
||||
Font.Height = -19
|
||||
Font.Name = 'Arial Narrow'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
|
||||
@@ -4,7 +4,7 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls;
|
||||
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils;
|
||||
|
||||
type
|
||||
TFormVersion = class(TForm)
|
||||
@@ -23,7 +23,7 @@ var
|
||||
Lance_verif : integer;
|
||||
verifVersion,notificationVersion : boolean;
|
||||
|
||||
Const Version='3.0'; // sert à la comparaison de la version publiée
|
||||
Const Version='3.1'; // sert à la comparaison de la version publiée
|
||||
|
||||
implementation
|
||||
|
||||
@@ -100,10 +100,11 @@ end;
|
||||
|
||||
procedure verifie_version;
|
||||
var s,s2,s3,Version_p,Url,LocalFile : string;
|
||||
trouve_version,trouve_zip : boolean;
|
||||
trouve_version,trouve_zip,zone_comm : boolean;
|
||||
fichier : text;
|
||||
i,j,erreur : integer;
|
||||
i,j,erreur,Ncomm,i2,i3 : integer;
|
||||
V_publie,V_utile : real;
|
||||
comm : array[1..10] of string;
|
||||
begin
|
||||
//Affiche('vérifie version',clLime);
|
||||
if not(AvecInit) then exit ;
|
||||
@@ -112,6 +113,8 @@ begin
|
||||
LocalFile:='page.txt';
|
||||
trouve_version:=false;
|
||||
trouve_zip:=false;
|
||||
zone_comm:=false;
|
||||
Ncomm:=0;
|
||||
if DownloadURL_NOCache(Url,localFile) then
|
||||
begin
|
||||
AssignFile(fichier,LocalFile);
|
||||
@@ -124,18 +127,43 @@ begin
|
||||
begin
|
||||
i:=pos('version ',s);
|
||||
trouve_version:=i<>0;
|
||||
if trouve_version then s2:=s;
|
||||
if trouve_version then begin s2:=s;zone_comm:=true;end;
|
||||
end;
|
||||
if not(trouve_zip) then
|
||||
begin
|
||||
i:=pos('.zip',s);
|
||||
trouve_zip:=i<>0;
|
||||
if trouve_zip then
|
||||
s3:=s;
|
||||
if trouve_zip then begin s3:=s;zone_comm:=false;end;
|
||||
end;
|
||||
// commentaire en gras
|
||||
if zone_comm then
|
||||
begin
|
||||
i:=pos('bold">',s)+6;i2:=posEx('<br />',s,i+1);
|
||||
if i<>6 then
|
||||
begin
|
||||
inc(ncomm);
|
||||
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));
|
||||
Delete(s,1,i2-1);
|
||||
j:=0;
|
||||
repeat
|
||||
i:=pos('<br />',s)+6;i3:=posEx('</span>',s,i+1);i2:=posEx('<br />',s,i+1);
|
||||
inc(ncomm);
|
||||
if i2<i3 then
|
||||
begin
|
||||
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));Delete(s,1,i2-1);
|
||||
end
|
||||
else
|
||||
begin
|
||||
comm[ncomm]:=UTF8Decode(copy(s,i,i3-i));Delete(s,1,i3-1);
|
||||
end;
|
||||
inc(j);
|
||||
until (i3<i2) or (ncomm=10) or (j=20);
|
||||
zone_comm:=false;
|
||||
end;
|
||||
end;
|
||||
// Aff(s)
|
||||
end;
|
||||
closefile(fichier);
|
||||
|
||||
if trouve_version and trouve_zip then
|
||||
begin
|
||||
// isoler le champ version
|
||||
@@ -151,7 +179,6 @@ begin
|
||||
i:=pos('.',s3);
|
||||
if i<>0 then delete(s3,i,1); // supprimer le .
|
||||
s3:='http://cdmrail.free.fr/ForumCDR'+s3 ;
|
||||
aff(s3); // lien dans s3
|
||||
|
||||
// changer le . en ,
|
||||
s:=Version_p;
|
||||
@@ -164,9 +191,17 @@ begin
|
||||
|
||||
if V_utile<V_publie then
|
||||
begin
|
||||
FormVersion.Top:=1;
|
||||
FormVersion.Left:=1;
|
||||
FormVersion.show;
|
||||
//aff(s3); // url dans s3
|
||||
s:='Vous utilisez la version '+version+' mais il existe la version '+Version_p;
|
||||
Aff(s);
|
||||
if ncomm>0 then
|
||||
begin
|
||||
Aff('Nouveautés de la V'+version_p+' de Signaux_Complexes_GL :');
|
||||
Aff(' ');
|
||||
for i:=1 to ncomm do aff(comm[i]);
|
||||
end;
|
||||
if MessageDlg(s+'. Voulez-vous la télécharger?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
||||
begin
|
||||
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
||||
|
||||
@@ -56,6 +56,9 @@ version 3.0 : Ajout des fonctions Nouveau / supprimer feu, accessoires dans le
|
||||
Tous les éléments des feux, aiguillages, branches et actionneurs peuvent être modifiés depuis le panneau.
|
||||
Nécessite de nommer les sections dans le fichier config.cfg
|
||||
Il n'est donc plus nécessaire de modifier les fichiers de configuration.
|
||||
version 3.1 : Renforcement de la vérification de la configuration.
|
||||
Modification de la liste d'initialisation des aiguillages en mode autonome.
|
||||
Indépendance des modifications entre les onglets du panneau de configuration.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user