V5.7
This commit is contained in:
BIN
Binary file not shown.
@@ -14,8 +14,8 @@
|
||||
-$N+
|
||||
-$O+
|
||||
-$P+
|
||||
-$Q-
|
||||
-$R-
|
||||
-$Q+
|
||||
-$R+
|
||||
-$S-
|
||||
-$T-
|
||||
-$U-
|
||||
|
||||
@@ -17,8 +17,8 @@ M=0
|
||||
N=1
|
||||
O=1
|
||||
P=1
|
||||
Q=0
|
||||
R=0
|
||||
Q=1
|
||||
R=1
|
||||
S=0
|
||||
T=0
|
||||
U=0
|
||||
|
||||
BIN
Binary file not shown.
+29
-29
@@ -223,21 +223,12 @@ object FormCDF: TFormCDF
|
||||
Height = 13
|
||||
Caption = '1 '#224' 4'
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 128
|
||||
Top = 432
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Ok'
|
||||
TabOrder = 0
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object Edit1: TEdit
|
||||
Left = 120
|
||||
Top = 176
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 1
|
||||
TabOrder = 0
|
||||
OnChange = Edit1Change
|
||||
end
|
||||
object Edit2: TEdit
|
||||
@@ -245,7 +236,7 @@ object FormCDF: TFormCDF
|
||||
Top = 200
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
TabOrder = 1
|
||||
OnChange = Edit2Change
|
||||
end
|
||||
object Edit3: TEdit
|
||||
@@ -253,7 +244,7 @@ object FormCDF: TFormCDF
|
||||
Top = 224
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
OnChange = Edit3Change
|
||||
end
|
||||
object Edit4: TEdit
|
||||
@@ -261,7 +252,7 @@ object FormCDF: TFormCDF
|
||||
Top = 248
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
TabOrder = 3
|
||||
OnChange = Edit4Change
|
||||
end
|
||||
object Edit5: TEdit
|
||||
@@ -269,7 +260,7 @@ object FormCDF: TFormCDF
|
||||
Top = 272
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
TabOrder = 4
|
||||
OnChange = Edit5Change
|
||||
end
|
||||
object Edit6: TEdit
|
||||
@@ -277,7 +268,7 @@ object FormCDF: TFormCDF
|
||||
Top = 296
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
OnChange = Edit6Change
|
||||
end
|
||||
object Edit7: TEdit
|
||||
@@ -285,7 +276,7 @@ object FormCDF: TFormCDF
|
||||
Top = 320
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
OnChange = Edit7Change
|
||||
end
|
||||
object Edit8: TEdit
|
||||
@@ -293,7 +284,7 @@ object FormCDF: TFormCDF
|
||||
Top = 344
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 8
|
||||
TabOrder = 7
|
||||
OnChange = Edit8Change
|
||||
end
|
||||
object Edit9: TEdit
|
||||
@@ -301,7 +292,7 @@ object FormCDF: TFormCDF
|
||||
Top = 368
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 9
|
||||
TabOrder = 8
|
||||
OnChange = Edit9Change
|
||||
end
|
||||
object Edit10: TEdit
|
||||
@@ -309,7 +300,7 @@ object FormCDF: TFormCDF
|
||||
Top = 392
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 10
|
||||
TabOrder = 9
|
||||
OnChange = Edit10Change
|
||||
end
|
||||
object Edit11: TEdit
|
||||
@@ -317,7 +308,7 @@ object FormCDF: TFormCDF
|
||||
Top = 200
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 11
|
||||
TabOrder = 10
|
||||
OnChange = Edit11Change
|
||||
end
|
||||
object Edit12: TEdit
|
||||
@@ -325,7 +316,7 @@ object FormCDF: TFormCDF
|
||||
Top = 224
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 12
|
||||
TabOrder = 11
|
||||
OnChange = Edit12Change
|
||||
end
|
||||
object Edit13: TEdit
|
||||
@@ -333,7 +324,7 @@ object FormCDF: TFormCDF
|
||||
Top = 248
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 13
|
||||
TabOrder = 12
|
||||
OnChange = Edit13Change
|
||||
end
|
||||
object Edit14: TEdit
|
||||
@@ -341,7 +332,7 @@ object FormCDF: TFormCDF
|
||||
Top = 272
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 14
|
||||
TabOrder = 13
|
||||
OnChange = Edit14Change
|
||||
end
|
||||
object Edit15: TEdit
|
||||
@@ -349,7 +340,7 @@ object FormCDF: TFormCDF
|
||||
Top = 296
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 15
|
||||
TabOrder = 14
|
||||
OnChange = Edit15Change
|
||||
end
|
||||
object Edit16: TEdit
|
||||
@@ -357,7 +348,7 @@ object FormCDF: TFormCDF
|
||||
Top = 320
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 16
|
||||
TabOrder = 15
|
||||
OnChange = Edit16Change
|
||||
end
|
||||
object Edit17: TEdit
|
||||
@@ -365,7 +356,7 @@ object FormCDF: TFormCDF
|
||||
Top = 344
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 17
|
||||
TabOrder = 16
|
||||
OnChange = Edit17Change
|
||||
end
|
||||
object Edit18: TEdit
|
||||
@@ -373,7 +364,7 @@ object FormCDF: TFormCDF
|
||||
Top = 368
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 18
|
||||
TabOrder = 17
|
||||
OnChange = Edit18Change
|
||||
end
|
||||
object Edit19: TEdit
|
||||
@@ -381,7 +372,7 @@ object FormCDF: TFormCDF
|
||||
Top = 392
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 19
|
||||
TabOrder = 18
|
||||
OnChange = Edit19Change
|
||||
end
|
||||
object EditNAdresses: TEdit
|
||||
@@ -389,8 +380,17 @@ object FormCDF: TFormCDF
|
||||
Top = 120
|
||||
Width = 25
|
||||
Height = 21
|
||||
TabOrder = 20
|
||||
TabOrder = 19
|
||||
Text = '1'
|
||||
OnChange = EditNAdressesChange
|
||||
end
|
||||
object BitBtnOk: TBitBtn
|
||||
Left = 136
|
||||
Top = 432
|
||||
Width = 75
|
||||
Height = 25
|
||||
TabOrder = 20
|
||||
OnClick = BitBtnOkClick
|
||||
Kind = bkOK
|
||||
end
|
||||
end
|
||||
|
||||
+9
-7
@@ -4,11 +4,10 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, ExtCtrls , unitconfig, UnitPrinc;
|
||||
Dialogs, StdCtrls, ExtCtrls , unitconfig, UnitPrinc, Buttons;
|
||||
|
||||
type
|
||||
TFormCDF = class(TForm)
|
||||
Button1: TButton;
|
||||
Label20: TLabel;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
@@ -56,7 +55,7 @@ type
|
||||
EditNAdresses: TEdit;
|
||||
LabelTitre: TLabel;
|
||||
Label24: TLabel;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
BitBtnOk: TBitBtn;
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure Edit1Change(Sender: TObject);
|
||||
procedure Edit2Change(Sender: TObject);
|
||||
@@ -78,6 +77,7 @@ type
|
||||
procedure Edit19Change(Sender: TObject);
|
||||
procedure Edit17Change(Sender: TObject);
|
||||
procedure EditNAdressesChange(Sender: TObject);
|
||||
procedure BitBtnOkClick(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -92,10 +92,7 @@ implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TFormCDF.Button1Click(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormCDF.FormActivate(Sender: TObject);
|
||||
var erreur : integer;
|
||||
@@ -380,4 +377,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCDF.BitBtnOkClick(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Binary file not shown.
+37
-19
@@ -2102,7 +2102,7 @@ object FormConfig: TFormConfig
|
||||
Top = 200
|
||||
Width = 297
|
||||
Height = 73
|
||||
Caption = 'Acc'#232's Ethernet '#224' l'#39'interface'
|
||||
Caption = 'Acc'#232's Ethernet '#224' l'#39'interface vers la centrale'
|
||||
TabOrder = 2
|
||||
object Label7: TLabel
|
||||
Left = 14
|
||||
@@ -2382,7 +2382,7 @@ object FormConfig: TFormConfig
|
||||
object LabelCrois: TLabel
|
||||
Left = 32
|
||||
Top = 320
|
||||
Width = 193
|
||||
Width = 187
|
||||
Height = 26
|
||||
Caption =
|
||||
'Les croisements re'#231'oivent une adresse m'#234'me s'#39'ils ne sont pas pil' +
|
||||
@@ -3793,8 +3793,8 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBoxRadio: TGroupBox
|
||||
Left = 120
|
||||
Top = 8
|
||||
Left = 56
|
||||
Top = 16
|
||||
Width = 225
|
||||
Height = 73
|
||||
Caption = 'Type d'#39'action'
|
||||
@@ -3828,8 +3828,8 @@ object FormConfig: TFormConfig
|
||||
end
|
||||
end
|
||||
object GroupBoxAct: TGroupBox
|
||||
Left = 120
|
||||
Top = 44
|
||||
Left = 64
|
||||
Top = 60
|
||||
Width = 233
|
||||
Height = 341
|
||||
Caption = 'Action fonction de locomotive '
|
||||
@@ -4146,7 +4146,7 @@ object FormConfig: TFormConfig
|
||||
Left = 0
|
||||
Top = 32
|
||||
Width = 345
|
||||
Height = 185
|
||||
Height = 225
|
||||
Caption = 'Actionneurs/d'#233'tecteurs locomotives ou accessoires'
|
||||
TabOrder = 1
|
||||
object ButtonNouvAcc: TButton
|
||||
@@ -4174,24 +4174,26 @@ object FormConfig: TFormConfig
|
||||
Left = 8
|
||||
Top = 48
|
||||
Width = 329
|
||||
Height = 129
|
||||
Height = 161
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
HideSelection = False
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 2
|
||||
WordWrap = False
|
||||
OnKeyDown = RichActKeyDown
|
||||
OnMouseDown = RichActMouseDown
|
||||
end
|
||||
end
|
||||
object GroupBox17: TGroupBox
|
||||
Left = 0
|
||||
Top = 224
|
||||
Top = 272
|
||||
Width = 345
|
||||
Height = 193
|
||||
Caption = 'Actionneurs passage '#224' niveau'
|
||||
@@ -4228,11 +4230,13 @@ object FormConfig: TFormConfig
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
HideSelection = False
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 2
|
||||
WordWrap = False
|
||||
OnKeyDown = RichPNKeyDown
|
||||
OnMouseDown = RichPNMouseDown
|
||||
end
|
||||
end
|
||||
@@ -4607,9 +4611,11 @@ object FormConfig: TFormConfig
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
HideSelection = False
|
||||
ParentFont = False
|
||||
ReadOnly = True
|
||||
TabOrder = 0
|
||||
OnKeyDown = RichEditTrainsKeyDown
|
||||
OnMouseDown = RichEditTrainsMouseDown
|
||||
end
|
||||
object GroupBox24: TGroupBox
|
||||
@@ -4643,9 +4649,9 @@ object FormConfig: TFormConfig
|
||||
object Label56: TLabel
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 115
|
||||
Width = 215
|
||||
Height = 13
|
||||
Caption = 'Vitesse '#224' l'#39'avertissement'
|
||||
Caption = 'Vitesse '#224' l'#39'avertissement ou au ralentissement'
|
||||
end
|
||||
object Label57: TLabel
|
||||
Left = 16
|
||||
@@ -4659,13 +4665,16 @@ object FormConfig: TFormConfig
|
||||
Top = 24
|
||||
Width = 145
|
||||
Height = 21
|
||||
Hint = 'Nom du train'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
OnChange = EditNomTrainChange
|
||||
end
|
||||
object EditAdresseTrain: TEdit
|
||||
Left = 136
|
||||
Left = 240
|
||||
Top = 48
|
||||
Width = 65
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'Adresse du d'#233'codeur du train'
|
||||
ParentShowHint = False
|
||||
@@ -4674,26 +4683,35 @@ object FormConfig: TFormConfig
|
||||
OnChange = EditAdresseTrainChange
|
||||
end
|
||||
object EditVitesseMaxi: TEdit
|
||||
Left = 136
|
||||
Left = 240
|
||||
Top = 120
|
||||
Width = 65
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'Vitesse maximale autoris'#233'e par le d'#233'codeur'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
OnChange = EditVitesseMaxiChange
|
||||
end
|
||||
object EditVitRalenti: TEdit
|
||||
Left = 136
|
||||
Left = 240
|
||||
Top = 72
|
||||
Width = 65
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'Vitesse apr'#232's l'#39'avertissement'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
OnChange = EditVitRalentiChange
|
||||
end
|
||||
object EditVitNom: TEdit
|
||||
Left = 136
|
||||
Left = 240
|
||||
Top = 96
|
||||
Width = 65
|
||||
Width = 41
|
||||
Height = 21
|
||||
Hint = 'Vitesse si voie libre'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
OnChange = EditVitNomChange
|
||||
end
|
||||
|
||||
+683
-255
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+13
-12
@@ -14,17 +14,9 @@ object FormConfCellTCO: TFormConfCellTCO
|
||||
OldCreateOrder = False
|
||||
OnActivate = FormActivate
|
||||
OnCreate = FormCreate
|
||||
OnKeyPress = FormKeyPress
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object ButtonOk: TButton
|
||||
Left = 168
|
||||
Top = 368
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Ok'
|
||||
TabOrder = 0
|
||||
OnClick = ButtonOkClick
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 8
|
||||
Top = 264
|
||||
@@ -37,7 +29,7 @@ object FormConfCellTCO: TFormConfCellTCO
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
TabOrder = 0
|
||||
object Label1: TLabel
|
||||
Left = 8
|
||||
Top = 41
|
||||
@@ -96,7 +88,7 @@ object FormConfCellTCO: TFormConfCellTCO
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
TabOrder = 1
|
||||
object Label15: TLabel
|
||||
Left = 8
|
||||
Top = 22
|
||||
@@ -297,7 +289,16 @@ object FormConfCellTCO: TFormConfCellTCO
|
||||
ParentFont = False
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
OnClick = CheckPinvClick
|
||||
end
|
||||
object BitBtnOk: TBitBtn
|
||||
Left = 152
|
||||
Top = 368
|
||||
Width = 75
|
||||
Height = 25
|
||||
TabOrder = 3
|
||||
OnClick = BitBtnOkClick
|
||||
Kind = bkOK
|
||||
end
|
||||
end
|
||||
|
||||
+22
-13
@@ -4,11 +4,11 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, UnitTCO, ExtCtrls;
|
||||
Dialogs, StdCtrls, UnitTCO, ExtCtrls,
|
||||
Buttons;
|
||||
|
||||
type
|
||||
TFormConfCellTCO = class(TForm)
|
||||
ButtonOk: TButton;
|
||||
GroupBox1: TGroupBox;
|
||||
ComboRepr: TComboBox;
|
||||
Label1: TLabel;
|
||||
@@ -29,7 +29,7 @@ type
|
||||
RadioButtonD: TRadioButton;
|
||||
EditAdrElement: TEdit;
|
||||
ButtonFond: TButton;
|
||||
procedure ButtonOkClick(Sender: TObject);
|
||||
BitBtnOk: TBitBtn;
|
||||
procedure EditTypeImageKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure EditAdrElementChange(Sender: TObject);
|
||||
procedure EditTexteCCTCOChange(Sender: TObject);
|
||||
@@ -45,6 +45,8 @@ type
|
||||
procedure EditAdrElementKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure ButtonFondClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure FormKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure BitBtnOkClick(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -68,6 +70,7 @@ procedure actualise;
|
||||
var Bimage : integer;
|
||||
oriente,piedFeu : integer;
|
||||
begin
|
||||
if not(formConfCellTCOAff) then exit;
|
||||
actualize:=true; // évite les évènements parasites
|
||||
FormConfCellTCO.caption:='Propriétés de la cellule '+IntToSTR(XClicCell)+','+intToSTR(YClicCell);
|
||||
Bimage:=TCO[XClicCell,YClicCell].Bimage;
|
||||
@@ -118,7 +121,7 @@ begin
|
||||
20: Assign(FormTCO.ImagePalette20.Picture);
|
||||
21: Assign(FormTCO.ImagePalette21.Picture);
|
||||
22: Assign(FormTCO.ImagePalette22.Picture);
|
||||
23: Assign(FormTCO.ImagePalette23.Picture);
|
||||
23,31: Assign(FormTCO.ImagePalette31.Picture);
|
||||
30: begin
|
||||
With formConfCellTCO.ImagePalette do
|
||||
begin
|
||||
@@ -194,10 +197,7 @@ begin
|
||||
actualize:=false;
|
||||
end;
|
||||
|
||||
procedure TFormConfCellTCO.ButtonOkClick(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormConfCellTCO.EditTypeImageKeyPress(Sender: TObject; var Key: Char);
|
||||
var Bimage,erreur : integer;
|
||||
@@ -207,7 +207,7 @@ begin
|
||||
Key:=#0; // évite beeping
|
||||
Val(EditTypeImage.Text,Bimage,erreur);
|
||||
//Affiche('Keypressed / Bimage='+IntToSTR(bimage),clyellow);
|
||||
if (erreur<>0) or not(Bimage in[0..23,30]) then
|
||||
if (erreur<>0) or not(Bimage in[0..23,30,31]) then
|
||||
begin
|
||||
EditTypeImage.text:=intToSTR(tco[XClicCell,YClicCell].BImage);
|
||||
exit;
|
||||
@@ -279,6 +279,7 @@ var i,x,y : integer;
|
||||
begin
|
||||
// fenetre toujours dessus
|
||||
actualize:=false;
|
||||
formConfCellTCOAff:=true;
|
||||
SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NoMove or SWP_NoSize);
|
||||
exit;
|
||||
|
||||
@@ -319,7 +320,7 @@ begin
|
||||
20 : ImageSRC:=FormTCO.ImagePalette20;
|
||||
21 : ImageSRC:=FormTCO.ImagePalette21;
|
||||
22 : ImageSRC:=FormTCO.ImagePalette22;
|
||||
23 : ImageSRC:=FormTCO.ImagePalette23;
|
||||
23,31 : ImageSRC:=FormTCO.ImagePalette31;
|
||||
24 : ImageSRC:=FormTCO.ImagePalette30;
|
||||
end;
|
||||
picture.Bitmap:=ImageSRC.picture.BitMap;
|
||||
@@ -337,8 +338,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TFormConfCellTCO.ComboReprChange(Sender: TObject);
|
||||
begin
|
||||
tco[XClicCell,YClicCell].Repr:=comborepr.ItemIndex;
|
||||
@@ -355,7 +354,7 @@ begin
|
||||
if (xClicCell=0) or (xClicCell>NbreCellX) or (yClicCell=0) or (yClicCell>NbreCelly) then exit;
|
||||
Bimage:=Tco[xClicCell,yClicCell].Bimage;
|
||||
if (bimage=2) or (bimage=3) or (bimage=4) or (bimage=5) or (bimage=12) or (bimage=13)
|
||||
or (bimage=14) or (bimage=15) then
|
||||
or (bimage=14) or (bimage=15) or (bimage=24) then
|
||||
begin
|
||||
TCO[xClicCell,yClicCell].inverse:=CheckPinv.checked;
|
||||
TCO_modifie:=true;
|
||||
@@ -423,4 +422,14 @@ begin
|
||||
else ButtonFond.caption:='Couleur de fond de la cellule';
|
||||
end;
|
||||
|
||||
procedure TFormConfCellTCO.FormKeyPress(Sender: TObject; var Key: Char);
|
||||
begin
|
||||
if key=chr(27) then close;
|
||||
end;
|
||||
|
||||
procedure TFormConfCellTCO.BitBtnOkClick(Sender: TObject);
|
||||
begin
|
||||
close
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Binary file not shown.
+25
-26
@@ -63,38 +63,29 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Height = 13
|
||||
Caption = '/10'
|
||||
end
|
||||
object ButtonOK: TButton
|
||||
Left = 216
|
||||
Top = 240
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'OK'
|
||||
TabOrder = 0
|
||||
OnClick = ButtonOKClick
|
||||
end
|
||||
object ButtonDessine: TButton
|
||||
Left = 16
|
||||
Top = 240
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Redessine'
|
||||
TabOrder = 1
|
||||
TabOrder = 0
|
||||
OnClick = ButtonDessineClick
|
||||
end
|
||||
object CheckDessineGrille: TCheckBox
|
||||
Left = 16
|
||||
Top = 88
|
||||
Top = 96
|
||||
Width = 105
|
||||
Height = 17
|
||||
Caption = 'dessine grille'
|
||||
TabOrder = 2
|
||||
TabOrder = 1
|
||||
end
|
||||
object EditNbCellX: TEdit
|
||||
Left = 184
|
||||
Top = 40
|
||||
Width = 49
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
Text = 'EditNbCellX'
|
||||
end
|
||||
object EditNbCellY: TEdit
|
||||
@@ -102,7 +93,7 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Top = 64
|
||||
Width = 49
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
TabOrder = 3
|
||||
Text = 'EditNbCellY'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
@@ -111,7 +102,7 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Width = 353
|
||||
Height = 265
|
||||
Caption = 'Couleurs '
|
||||
TabOrder = 5
|
||||
TabOrder = 4
|
||||
object Label5: TLabel
|
||||
Left = 21
|
||||
Top = 32
|
||||
@@ -134,9 +125,9 @@ object FormConfigTCO: TFormConfigTCO
|
||||
OnClick = ImageFondClick
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 32
|
||||
Left = 33
|
||||
Top = 72
|
||||
Width = 76
|
||||
Width = 75
|
||||
Height = 26
|
||||
Alignment = taRightJustify
|
||||
Caption = 'Couleur de fond par d'#233'faut'
|
||||
@@ -247,26 +238,25 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Top = 208
|
||||
Width = 281
|
||||
Height = 17
|
||||
Caption = 'Couleur du cantons activ'#233' par la couleur du train'
|
||||
Caption = 'Couleur du canton activ'#233' par la couleur du train'
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object Memo1: TMemo
|
||||
Left = 16
|
||||
Top = 120
|
||||
Top = 136
|
||||
Width = 273
|
||||
Height = 81
|
||||
Height = 65
|
||||
BevelInner = bvLowered
|
||||
BevelKind = bkFlat
|
||||
BorderStyle = bsNone
|
||||
Lines.Strings = (
|
||||
'Si vous d'#233'finissez un nombre de cellules en '
|
||||
'horizontal ou en vertical plus petit(s) que l'#39'actuel'
|
||||
'(s), alors le TCO sera tronqu'#233', et les '#233'l'#233'ments '
|
||||
'tronqu'#233's seront perdus '#224' la prochaine '
|
||||
'sauvegarde.')
|
||||
'horizontal ou en vertical plus petit(s) que l'#39'actuel(s), '
|
||||
'alors le TCO sera tronqu'#233', et les '#233'l'#233'ments tronqu'#233's '
|
||||
'seront perdus '#224' la prochaine sauvegarde.')
|
||||
ReadOnly = True
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
end
|
||||
object EditRatio: TEdit
|
||||
Left = 48
|
||||
@@ -276,9 +266,18 @@ object FormConfigTCO: TFormConfigTCO
|
||||
Hint = 'Rapport X/Y d'#39'affichage des cellules'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
Text = 'EditRatio'
|
||||
end
|
||||
object BitBtnOk: TBitBtn
|
||||
Left = 208
|
||||
Top = 240
|
||||
Width = 75
|
||||
Height = 25
|
||||
TabOrder = 7
|
||||
OnClick = BitBtnOkClick
|
||||
Kind = bkOK
|
||||
end
|
||||
object ColorDialog1: TColorDialog
|
||||
OnShow = ColorDialog1Show
|
||||
Left = 248
|
||||
|
||||
+64
-65
@@ -4,11 +4,11 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls , UnitTCO, ExtCtrls, Menus;
|
||||
Dialogs, StdCtrls , UnitTCO, ExtCtrls, Menus,
|
||||
Buttons;
|
||||
|
||||
type
|
||||
TFormConfigTCO = class(TForm)
|
||||
ButtonOK: TButton;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
ButtonDessine: TButton;
|
||||
@@ -43,7 +43,7 @@ type
|
||||
CheckCouleur: TCheckBox;
|
||||
Label1: TLabel;
|
||||
ImagePiedFeu: TImage;
|
||||
procedure ButtonOKClick(Sender: TObject);
|
||||
BitBtnOk: TBitBtn;
|
||||
procedure ButtonDessineClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure ImageAigClick(Sender: TObject);
|
||||
@@ -55,6 +55,7 @@ type
|
||||
procedure ImageTexteClick(Sender: TObject);
|
||||
procedure ImageQuaiClick(Sender: TObject);
|
||||
procedure ImagePiedFeuClick(Sender: TObject);
|
||||
procedure BitBtnOkClick(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -76,25 +77,24 @@ procedure icone_aig;
|
||||
var r : Trect;
|
||||
x1,y1,x2,y2,x3,y3,x4,y4 : integer;
|
||||
begin
|
||||
with FormConfigTCO.ImageAig do
|
||||
begin
|
||||
canvas.Pen.color:=clfond;
|
||||
canvas.Brush.Color:=clfond;
|
||||
canvas.Rectangle(0,0,Width,Height);
|
||||
with FormConfigTCO.ImageAig do
|
||||
begin
|
||||
canvas.Pen.color:=clfond;
|
||||
canvas.Brush.Color:=clfond;
|
||||
canvas.Rectangle(0,0,Width,Height);
|
||||
|
||||
canvas.pen.color:=clVoies;
|
||||
canvas.brush.color:=clvoies;
|
||||
// bande horizontale
|
||||
r:=Rect(0,(height div 2)-3,width,(height div 2)+3);
|
||||
canvas.FillRect(r);
|
||||
|
||||
x1:=(width div 2); y1:=(height div 2)-3;
|
||||
x2:=3; y2:=0;
|
||||
x3:=0; y3:=3;
|
||||
x4:=0+(width div 2)-1; y4:=(height div 2)+3-1;
|
||||
canvas.Polygon([point(x1,y1),Point(x2,y2),Point(x3,y3),Point(x4,y4)]);
|
||||
end;
|
||||
canvas.pen.color:=clVoies;
|
||||
canvas.brush.color:=clvoies;
|
||||
// bande horizontale
|
||||
r:=Rect(0,(height div 2)-3,width,(height div 2)+3);
|
||||
canvas.FillRect(r);
|
||||
|
||||
x1:=(width div 2); y1:=(height div 2)-3;
|
||||
x2:=3; y2:=0;
|
||||
x3:=0; y3:=3;
|
||||
x4:=0+(width div 2)-1; y4:=(height div 2)+3-1;
|
||||
canvas.Polygon([point(x1,y1),Point(x2,y2),Point(x3,y3),Point(x4,y4)]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure dessine_icones;
|
||||
@@ -156,7 +156,7 @@ begin
|
||||
canvas.FillRect(r);
|
||||
end;
|
||||
|
||||
//6 texte
|
||||
// 6 texte
|
||||
with formCOnfigTCO.ImageTexte do
|
||||
begin
|
||||
canvas.Pen.color:=clfond;
|
||||
@@ -167,7 +167,7 @@ begin
|
||||
canvas.Textout(5,10,'Voie 1');
|
||||
end;
|
||||
|
||||
//Quai
|
||||
// Quai
|
||||
with formconfigTCO.ImageQuai do
|
||||
begin
|
||||
canvas.Pen.color:=clfond;
|
||||
@@ -260,48 +260,6 @@ begin
|
||||
NbCellulesTCO:=NbreCellX*NbreCellY;
|
||||
end;
|
||||
|
||||
procedure TFormConfigTCO.ButtonOKClick(Sender: TObject);
|
||||
var ok : boolean;
|
||||
begin
|
||||
ok:=true;
|
||||
|
||||
if verif_config_TCO then
|
||||
begin
|
||||
with FormTCO.ImageTCO do
|
||||
begin
|
||||
Width:=LargeurCell*NbreCellX;
|
||||
Height:=HauteurCell*NbreCellY;
|
||||
end;
|
||||
|
||||
try
|
||||
SetLength(TCO,NbreCellX+1,NbreCellY+1);
|
||||
except
|
||||
LabelErreur.caption:='TCO Mémoire insuffisante';
|
||||
NbreCellX:=20;NbreCellY:=12;
|
||||
SetLength(TCO,NbreCellX+1,NbreCellY+1);
|
||||
ok:=false;
|
||||
end;
|
||||
|
||||
try
|
||||
SetLength(TamponTCO,NbreCellX+1,NbreCellY+1);
|
||||
except
|
||||
LabelErreur.caption:='TamponTCO Mémoire insuffisante';
|
||||
NbreCellX:=20;NbreCellY:=12;
|
||||
SetLength(TamponTCO,NbreCellX+1,NbreCellY+1);
|
||||
ok:=false;
|
||||
end;
|
||||
|
||||
|
||||
AvecGrille:=checkDessineGrille.Checked;
|
||||
if ok then
|
||||
begin
|
||||
calcul_cellules;
|
||||
affiche_TCO;
|
||||
LabelErreur.caption:='';
|
||||
close;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormConfigTCO.ButtonDessineClick(Sender: TObject);
|
||||
begin
|
||||
@@ -434,9 +392,50 @@ end;
|
||||
// change le titre de la fenêtre de choix des couleurs à son ouverture
|
||||
procedure TFormConfigTCO.ColorDialog1Show(Sender: TObject);
|
||||
begin
|
||||
SetWindowText(ColorDialog1.Handle,pchar(titre_couleur));
|
||||
SetWindowText(ColorDialog1.Handle,pchar(titre_couleur));
|
||||
end;
|
||||
|
||||
procedure TFormConfigTCO.BitBtnOkClick(Sender: TObject);
|
||||
var ok : boolean;
|
||||
begin
|
||||
ok:=true;
|
||||
|
||||
if verif_config_TCO then
|
||||
begin
|
||||
with FormTCO.ImageTCO do
|
||||
begin
|
||||
Width:=LargeurCell*NbreCellX;
|
||||
Height:=HauteurCell*NbreCellY;
|
||||
end;
|
||||
|
||||
try
|
||||
SetLength(TCO,NbreCellX+1,NbreCellY+1);
|
||||
except
|
||||
LabelErreur.caption:='TCO Mémoire insuffisante';
|
||||
NbreCellX:=20;NbreCellY:=12;
|
||||
SetLength(TCO,NbreCellX+1,NbreCellY+1);
|
||||
ok:=false;
|
||||
end;
|
||||
|
||||
try
|
||||
SetLength(TamponTCO,NbreCellX+1,NbreCellY+1);
|
||||
except
|
||||
LabelErreur.caption:='TamponTCO Mémoire insuffisante';
|
||||
NbreCellX:=20;NbreCellY:=12;
|
||||
SetLength(TamponTCO,NbreCellX+1,NbreCellY+1);
|
||||
ok:=false;
|
||||
end;
|
||||
|
||||
|
||||
AvecGrille:=checkDessineGrille.Checked;
|
||||
if ok then
|
||||
begin
|
||||
calcul_cellules;
|
||||
affiche_TCO;
|
||||
LabelErreur.caption:='';
|
||||
close;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Binary file not shown.
+22
-20
@@ -3,8 +3,7 @@ object FormDebug: TFormDebug
|
||||
Top = 21
|
||||
Width = 864
|
||||
Height = 788
|
||||
VertScrollBar.Position = 28
|
||||
VertScrollBar.Smooth = True
|
||||
VertScrollBar.Increment = 67
|
||||
VertScrollBar.Tracking = True
|
||||
Caption = 'Fen'#234'tre de d'#233'bug'
|
||||
Color = clWindow
|
||||
@@ -21,13 +20,13 @@ object FormDebug: TFormDebug
|
||||
OnCreate = FormCreate
|
||||
OnKeyPress = FormKeyPress
|
||||
DesignSize = (
|
||||
839
|
||||
757)
|
||||
831
|
||||
749)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 595
|
||||
Top = -24
|
||||
Top = 4
|
||||
Width = 108
|
||||
Height = 13
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -43,7 +42,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 443
|
||||
Top = -26
|
||||
Top = 2
|
||||
Width = 131
|
||||
Height = 18
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -57,7 +56,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object EditNivDebug: TEdit
|
||||
Left = 754
|
||||
Top = -26
|
||||
Top = 2
|
||||
Width = 49
|
||||
Height = 21
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -73,7 +72,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonEcrLog: TButton
|
||||
Left = 442
|
||||
Top = 300
|
||||
Top = 328
|
||||
Width = 97
|
||||
Height = 29
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -83,7 +82,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonRazTampon: TButton
|
||||
Left = 442
|
||||
Top = 332
|
||||
Top = 360
|
||||
Width = 97
|
||||
Height = 33
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -94,17 +93,20 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonCherche: TButton
|
||||
Left = 442
|
||||
Top = 268
|
||||
Top = 296
|
||||
Width = 97
|
||||
Height = 25
|
||||
Hint = 'Cherche la cha'#238'ne "erreur"'
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Chercher erreurs'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
OnClick = ButtonChercheClick
|
||||
end
|
||||
object ButtonAffEvtChrono: TButton
|
||||
Left = 442
|
||||
Top = 228
|
||||
Top = 256
|
||||
Width = 97
|
||||
Height = 33
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -115,7 +117,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonCop: TButton
|
||||
Left = 442
|
||||
Top = 180
|
||||
Top = 208
|
||||
Width = 97
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -132,7 +134,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonRazLog: TButton
|
||||
Left = 442
|
||||
Top = 372
|
||||
Top = 400
|
||||
Width = 97
|
||||
Height = 33
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -143,7 +145,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 448
|
||||
Top = 572
|
||||
Top = 600
|
||||
Width = 369
|
||||
Height = 185
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -291,7 +293,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 440
|
||||
Top = -8
|
||||
Top = 20
|
||||
Width = 401
|
||||
Height = 149
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -483,7 +485,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object RichDebug: TRichEdit
|
||||
Left = 8
|
||||
Top = -20
|
||||
Top = 8
|
||||
Width = 425
|
||||
Height = 741
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
@@ -496,7 +498,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 448
|
||||
Top = 460
|
||||
Top = 488
|
||||
Width = 372
|
||||
Height = 57
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -563,7 +565,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object ButtonRazTout: TButton
|
||||
Left = 443
|
||||
Top = 148
|
||||
Top = 176
|
||||
Width = 97
|
||||
Height = 25
|
||||
Hint =
|
||||
@@ -578,7 +580,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object GroupBox6: TGroupBox
|
||||
Left = 448
|
||||
Top = 524
|
||||
Top = 552
|
||||
Width = 372
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
@@ -655,7 +657,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
object MemoEvtDet: TRichEdit
|
||||
Left = 544
|
||||
Top = 146
|
||||
Top = 174
|
||||
Width = 281
|
||||
Height = 307
|
||||
Anchors = [akTop, akRight]
|
||||
|
||||
+26
-15
@@ -109,7 +109,7 @@ type
|
||||
|
||||
var
|
||||
FormDebug: TFormDebug;
|
||||
NivDebug,signalDebug : integer;
|
||||
NivDebug,signalDebug,compt_erreur,positionErreur,LigneErreur : integer;
|
||||
AffSignal,AffAffect,initform,AffFD,debug_dec_sig,debugTCO,DebugAffiche,AFfDetSIg : boolean;
|
||||
N_event_det : integer; // index du dernier évènement (de 1 à 20)
|
||||
N_Event_tick : integer ; // dernier index
|
||||
@@ -183,6 +183,8 @@ begin
|
||||
s:=DateToStr(date)+' '+TimeToStr(Time)+' ';
|
||||
Autoscroll:=true; // permet l'affichage de l'ascenseur dans radstudio
|
||||
DebugAffiche:=true;
|
||||
compt_erreur:=0;
|
||||
LigneErreur:=0;
|
||||
end;
|
||||
|
||||
procedure TFormDebug.ButtonEcrLogClick(Sender: TObject);
|
||||
@@ -240,28 +242,37 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormDebug.ButtonChercheClick(Sender: TObject);
|
||||
var ligne,l,position : integer;
|
||||
var i,l,positionErreur : integer;
|
||||
s : string;
|
||||
trouve : boolean;
|
||||
begin
|
||||
// faire avec
|
||||
with RichDebug do
|
||||
begin
|
||||
ligne:=0;
|
||||
l:=0;
|
||||
repeat
|
||||
s:=lowercase(Lines[ligne]);
|
||||
l:=l+length(s)+2;
|
||||
position:=pos('erreur',s);
|
||||
trouve:=position<>0;
|
||||
inc(ligne);
|
||||
until (ligne>=Lines.Count) or trouve;
|
||||
s:=lowercase(Lines[ligneErreur]);
|
||||
positionErreur:=pos('erreur',s);
|
||||
trouve:=positionErreur<>0;
|
||||
inc(LigneErreur);
|
||||
until (LigneErreur>=Lines.Count) or trouve;
|
||||
|
||||
if trouve then
|
||||
begin
|
||||
//Affiche('trouvé en '+intToSTR(ligne),clyellow);
|
||||
SelStart:= l-length(s)+position-3;
|
||||
inc(compt_erreur);
|
||||
//Affiche('trouvé en '+Lines[ligneErreur-1],clred);
|
||||
l:=0;
|
||||
for i:=0 to ligneErreur-1 do
|
||||
begin
|
||||
l:=l+length(Lines[i])+2;
|
||||
end;
|
||||
SelStart:= l-length(s)+positionErreur-3;
|
||||
SelLength:=6;
|
||||
SetFocus;
|
||||
SetFocus; // afficher la sélection
|
||||
Perform(EM_SCROLLCARET,0,0); // et scroller à l'endroit de la sélection
|
||||
end
|
||||
else
|
||||
begin
|
||||
LigneErreur:=0;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -380,7 +391,6 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TFormDebug.ButtonCPClick(Sender: TObject);
|
||||
var Adr,erreur,ancdebug,adrtrain,voie : integer ;
|
||||
begin
|
||||
@@ -447,12 +457,13 @@ end;
|
||||
|
||||
procedure TFormDebug.ButtonRazToutClick(Sender: TObject);
|
||||
begin
|
||||
AfficheDebug('Raz tous trains et routes',clLime);
|
||||
Raz_tout;
|
||||
end;
|
||||
|
||||
procedure TFormDebug.MemoEvtDet1Change(Sender: TObject);
|
||||
begin
|
||||
SendMessage(MemoEvtDet.handle, WM_VSCROLL, SB_BOTTOM, 0);
|
||||
SendMessage(MemoEvtDet.handle,WM_VSCROLL,SB_BOTTOM,0);
|
||||
end;
|
||||
|
||||
procedure TFormDebug.EditDebugSignalChange(Sender: TObject);
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
object Frame1: TFrame1
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 289
|
||||
Height = 86
|
||||
TabOrder = 0
|
||||
object Label1: TLabel
|
||||
Left = 104
|
||||
Top = 16
|
||||
Width = 60
|
||||
Height = 13
|
||||
Caption = 'Cadre Frame'
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,22 @@
|
||||
unit UnitFrame1;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls;
|
||||
|
||||
type
|
||||
TFrame1 = class(TFrame)
|
||||
Label1: TLabel;
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
{ Déclarations publiques }
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
end.
|
||||
Binary file not shown.
+9
-6
@@ -61,9 +61,6 @@ type
|
||||
{ Déclarations publiques }
|
||||
end;
|
||||
|
||||
// définition des adresses normalisées du décodeur de leds de digitalBahn
|
||||
// l'ordre des adresses est à respecter dans la programation des signaux.
|
||||
// L'oeilleton est cablé sur la sortie 4, il est géré directement par le décodeur. **/
|
||||
// code des aspects des signaux
|
||||
const
|
||||
|
||||
@@ -258,14 +255,20 @@ if ord(Key) = VK_RETURN then
|
||||
end;
|
||||
|
||||
procedure TFormPilote.FormActivate(Sender: TObject);
|
||||
var i,d : integer;
|
||||
var n,i,d : integer;
|
||||
begin
|
||||
// mise à jour du champ décodeur
|
||||
i:=index_feu(AdrPilote);
|
||||
d:=feux[i].decodeur;
|
||||
n:=feux[i].aspect;
|
||||
LabelDec.Caption:=decodeur[d];
|
||||
// check
|
||||
checkVerrouCarre.Checked:=feux[i].VerrouilleCarre;
|
||||
// checkcarré
|
||||
if (n<4) or (n>10) then checkVerrouCarre.Visible:=false else
|
||||
begin
|
||||
checkVerrouCarre.Visible:=true;
|
||||
checkVerrouCarre.Checked:=feux[i].VerrouilleCarre;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TFormPilote.CheckVerrouCarreClick(Sender: TObject);
|
||||
|
||||
Binary file not shown.
+64
-54
@@ -1,6 +1,6 @@
|
||||
object FormPrinc: TFormPrinc
|
||||
Left = 59
|
||||
Top = 174
|
||||
Left = 66
|
||||
Top = 209
|
||||
Width = 1213
|
||||
Height = 670
|
||||
Caption = 'Signaux complexes'
|
||||
@@ -225,8 +225,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image7feux: TImage
|
||||
Left = 504
|
||||
Top = 8
|
||||
Left = 144
|
||||
Top = 0
|
||||
Width = 57
|
||||
Height = 105
|
||||
Picture.Data = {
|
||||
@@ -666,8 +666,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image2feux: TImage
|
||||
Left = 896
|
||||
Top = 88
|
||||
Left = 904
|
||||
Top = 136
|
||||
Width = 33
|
||||
Height = 57
|
||||
Picture.Data = {
|
||||
@@ -740,8 +740,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image2Dir: TImage
|
||||
Left = 936
|
||||
Top = 144
|
||||
Left = 984
|
||||
Top = 120
|
||||
Width = 41
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -815,8 +815,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image3Dir: TImage
|
||||
Left = 840
|
||||
Top = 136
|
||||
Left = 968
|
||||
Top = 168
|
||||
Width = 49
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -893,7 +893,7 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image4Dir: TImage
|
||||
Left = 1064
|
||||
Left = 1032
|
||||
Top = 120
|
||||
Width = 57
|
||||
Height = 25
|
||||
@@ -981,8 +981,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image5Dir: TImage
|
||||
Left = 464
|
||||
Top = 0
|
||||
Left = 1096
|
||||
Top = 120
|
||||
Width = 65
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -1079,8 +1079,8 @@ object FormPrinc: TFormPrinc
|
||||
Visible = False
|
||||
end
|
||||
object Image6Dir: TImage
|
||||
Left = 872
|
||||
Top = 136
|
||||
Left = 896
|
||||
Top = 120
|
||||
Width = 81
|
||||
Height = 25
|
||||
Picture.Data = {
|
||||
@@ -1200,22 +1200,17 @@ object FormPrinc: TFormPrinc
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
end
|
||||
object Splitter: TSplitter
|
||||
object SplitterH: TSplitter
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 5
|
||||
Height = 589
|
||||
Color = clWindowFrame
|
||||
ParentColor = False
|
||||
Visible = False
|
||||
OnMoved = SplitterMoved
|
||||
end
|
||||
object ScrollBox1: TScrollBox
|
||||
Left = 632
|
||||
Top = 192
|
||||
Top = 200
|
||||
Width = 546
|
||||
Height = 399
|
||||
HorzScrollBar.Smooth = True
|
||||
Height = 391
|
||||
HorzScrollBar.Increment = 48
|
||||
HorzScrollBar.Tracking = True
|
||||
VertScrollBar.Smooth = True
|
||||
VertScrollBar.Tracking = True
|
||||
@@ -1291,20 +1286,20 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 904
|
||||
Top = 5
|
||||
Top = 13
|
||||
Width = 282
|
||||
Height = 108
|
||||
Anchors = [akTop, akRight]
|
||||
TabOrder = 4
|
||||
object Label1: TLabel
|
||||
Left = 136
|
||||
Left = 56
|
||||
Top = 88
|
||||
Width = 89
|
||||
Height = 13
|
||||
Caption = 'Nombre de trains : '
|
||||
end
|
||||
object LabelNbTrains: TLabel
|
||||
Left = 256
|
||||
Left = 240
|
||||
Top = 84
|
||||
Width = 9
|
||||
Height = 19
|
||||
@@ -1391,27 +1386,6 @@ object FormPrinc: TFormPrinc
|
||||
Caption = 'xx'
|
||||
TabOrder = 5
|
||||
end
|
||||
object FenRich: TRichEdit
|
||||
Left = 8
|
||||
Top = 32
|
||||
Width = 601
|
||||
Height = 513
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
Font.Height = -13
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
PopupMenu = PopupMenuFenRich
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 6
|
||||
WordWrap = False
|
||||
OnChange = FenRichChange
|
||||
OnMouseDown = FenRichMouseDown
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 633
|
||||
Top = 64
|
||||
@@ -1419,7 +1393,7 @@ object FormPrinc: TFormPrinc
|
||||
Height = 105
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Variables CV'
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
object Label3: TLabel
|
||||
Left = 208
|
||||
Top = 34
|
||||
@@ -1481,7 +1455,7 @@ object FormPrinc: TFormPrinc
|
||||
Height = 129
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Commande aux trains'
|
||||
TabOrder = 8
|
||||
TabOrder = 7
|
||||
object Label4: TLabel
|
||||
Left = 8
|
||||
Top = 22
|
||||
@@ -1698,7 +1672,7 @@ object FormPrinc: TFormPrinc
|
||||
TabOrder = 5
|
||||
end
|
||||
object TrackBarVit: TTrackBar
|
||||
Left = 16
|
||||
Left = 24
|
||||
Top = 64
|
||||
Width = 233
|
||||
Height = 21
|
||||
@@ -1717,7 +1691,7 @@ object FormPrinc: TFormPrinc
|
||||
Height = 33
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Envoi vers centrale DCC++'
|
||||
TabOrder = 9
|
||||
TabOrder = 8
|
||||
WordWrap = True
|
||||
OnClick = ButtonEnvClick
|
||||
end
|
||||
@@ -1727,7 +1701,7 @@ object FormPrinc: TFormPrinc
|
||||
Width = 121
|
||||
Height = 21
|
||||
Anchors = [akTop, akRight]
|
||||
TabOrder = 10
|
||||
TabOrder = 9
|
||||
Text = '<1>'
|
||||
end
|
||||
object Button1: TButton
|
||||
@@ -1737,10 +1711,45 @@ object FormPrinc: TFormPrinc
|
||||
Height = 25
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Button1'
|
||||
TabOrder = 11
|
||||
TabOrder = 10
|
||||
Visible = False
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 8
|
||||
Top = 32
|
||||
Width = 609
|
||||
Height = 497
|
||||
TabOrder = 11
|
||||
object SplitterV: TSplitter
|
||||
Left = 1
|
||||
Top = 1
|
||||
Width = 8
|
||||
Height = 495
|
||||
Beveled = True
|
||||
OnMoved = SplitterVMoved
|
||||
end
|
||||
object FenRich: TRichEdit
|
||||
Left = 8
|
||||
Top = 16
|
||||
Width = 593
|
||||
Height = 505
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clYellow
|
||||
Font.Height = -13
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
PopupMenu = PopupMenuFenRich
|
||||
ReadOnly = True
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 0
|
||||
WordWrap = False
|
||||
OnChange = FenRichChange
|
||||
OnMouseDown = FenRichMouseDown
|
||||
end
|
||||
end
|
||||
object Timer1: TTimer
|
||||
Interval = 100
|
||||
OnTimer = Timer1Timer
|
||||
@@ -1959,6 +1968,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
end
|
||||
object PopupMenuFeu: TPopupMenu
|
||||
OnPopup = PopupMenuFeuPopup
|
||||
Left = 896
|
||||
object Proprits1: TMenuItem
|
||||
Caption = 'Propri'#233't'#233's du signal'
|
||||
|
||||
+282
-120
@@ -13,7 +13,7 @@ Unit UnitPrinc;
|
||||
+ 2 = aiguillage droit = sortie 2 de l'adresse d'accessoire
|
||||
- 1 = aiguillage dévié = sortie 1 de l'adresse d'accessoire
|
||||
|
||||
port com lenz=57600
|
||||
vitesse port com lenz=57600
|
||||
*)
|
||||
|
||||
// en mode simulation run:
|
||||
@@ -44,7 +44,7 @@ uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, OleCtrls, ExtCtrls, jpeg, ComCtrls, ShellAPI, TlHelp32,
|
||||
ImgList, ScktComp, StrUtils, Menus, ActnList, MSCommLib_TLB, MMSystem , registry,
|
||||
Buttons ;
|
||||
Buttons;
|
||||
|
||||
type
|
||||
TFormPrinc = class(TForm)
|
||||
@@ -105,7 +105,6 @@ type
|
||||
ButtonLanceCDM: TButton;
|
||||
Affichefentredebug1: TMenuItem;
|
||||
StaticText: TStaticText;
|
||||
FenRich: TRichEdit;
|
||||
PopupMenuFenRich: TPopupMenu;
|
||||
Copier1: TMenuItem;
|
||||
Etatdessignaux1: TMenuItem;
|
||||
@@ -157,7 +156,10 @@ type
|
||||
SBMarcheArretLoco: TSpeedButton;
|
||||
Label1: TLabel;
|
||||
LabelNbTrains: TLabel;
|
||||
Splitter: TSplitter;
|
||||
SplitterH: TSplitter;
|
||||
Panel2: TPanel;
|
||||
FenRich: TRichEdit;
|
||||
SplitterV: TSplitter;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure MSCommUSBLenzComm(Sender: TObject);
|
||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
@@ -234,13 +236,15 @@ type
|
||||
procedure RazResaClick(Sender: TObject);
|
||||
procedure SBMarcheArretLocoClick(Sender: TObject);
|
||||
procedure EditAdrTrainChange(Sender: TObject);
|
||||
procedure SplitterMoved(Sender: TObject);
|
||||
private
|
||||
procedure SplitterVMoved(Sender: TObject);
|
||||
procedure PopupMenuFeuPopup(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
procedure DoHint(Sender : Tobject);
|
||||
public
|
||||
{ Déclarations publiques }
|
||||
Procedure ImageOnClick(Sender : TObject);
|
||||
procedure ProcOnMouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
procedure proc_checkBoxFB(Sender : Tobject);
|
||||
procedure proc_checkBoxFV(Sender : Tobject);
|
||||
procedure proc_checkBoxFR(Sender : Tobject);
|
||||
@@ -389,16 +393,18 @@ var
|
||||
NombreImages,signalCpx,branche_trouve,Indexbranche_trouve,Actuel,Signal_suivant,
|
||||
Nbre_recu_cdm,Tempo_chgt_feux,Adj1,Adj2,NbrePN,ServeurInterfaceCDM,index_couleur,
|
||||
ServeurRetroCDM,TailleFonte,Nb_Det_Dist,Tdoubleclic,algo_Unisemaf,fA,fB,
|
||||
etape,idEl,avecRoulage,intervalle_courant,filtrageDet0,SauvefiltrageDet0 : integer;
|
||||
etape,idEl,avecRoulage,intervalle_courant,filtrageDet0,SauvefiltrageDet0,
|
||||
TpsTimeoutSL : integer;
|
||||
|
||||
ack,portCommOuvert,traceTrames,AffMem,CDM_connecte,dupliqueEvt,affiche_retour_dcc,
|
||||
Raz_Acc_signaux,AvecInit,AvecTCO,terminal,Srvc_Aig,Srvc_Det,Srvc_Act,MasqueBandeauTCO,
|
||||
Srvc_PosTrain,Srvc_Sig,debugtrames,LayParParam,AvecFVR,InverseMotif,
|
||||
Hors_tension,traceSign,TraceZone,Ferme,parSocketLenz,ackCdm,PremierFD,doubleclic,
|
||||
NackCDM,MsgSim,StopSimu,succes,recu_cv,AffAigDet,Option_demarrage,AffTiers,AvecDemandeAiguillages,
|
||||
NackCDM,MsgSim,StopSimu,succes,recu_cv,AffAigDet,AffTiers,AvecDemandeAiguillages,
|
||||
TraceListe,clignotant,nack,Maj_feux_cours,configNulle,LanceCDM,AvecInitAiguillages,
|
||||
AvecDemandeInterfaceUSB,AvecDemandeInterfaceEth,aff_acc,affiche_aigdcc,modeStkRetro,
|
||||
retEtatDet,roulage,init_aig_cours,affevt,placeAffiche,clicComboTrain,clicAdrTrain : boolean;
|
||||
retEtatDet,roulage,init_aig_cours,affevt,placeAffiche,clicComboTrain,clicAdrTrain,
|
||||
avec_splitter : boolean;
|
||||
|
||||
tick,Premier_tick : longint;
|
||||
|
||||
@@ -465,7 +471,7 @@ var
|
||||
,AdrTrain : integer;
|
||||
end;
|
||||
|
||||
Tablo_actionneur : array[1..Max_actionneurs] of
|
||||
Tablo_actionneur : array[0..Max_actionneurs] of
|
||||
record
|
||||
loco,act,son: boolean; // destinataire loco acessoire ou son
|
||||
adresse,adresse2, // adresse: adresse de base ; adresse2=cas d'une Zone
|
||||
@@ -478,7 +484,7 @@ var
|
||||
end;
|
||||
|
||||
KeyInputs: array of TInput;
|
||||
Tablo_PN : array[1..Max_actionneurs] of
|
||||
Tablo_PN : array[0..Max_actionneurs] of
|
||||
record
|
||||
AdresseFerme : integer; // adresse de pilotage DCC pour la fermeture
|
||||
commandeFerme : integer; // commande de fermeture (1 ou 2)
|
||||
@@ -486,10 +492,10 @@ var
|
||||
commandeOuvre : integer; // commande d'ouverture (1 ou 2)
|
||||
NbVoies : integer; // Nombre de voies du PN
|
||||
Pulse : integer; // 0=commande maintenue 1=Impulsionnel
|
||||
compteur : integer; // comptage actionneurs fermeture et décomptage actionneurs ouverturef
|
||||
Voie : array [1..4] of record
|
||||
ActFerme,ActOuvre : integer ; // actionneurs provoquant la fermeture et l'ouverture
|
||||
detZ1F,detZ2F,detZ1O,detZ2O : integer; // Zones de détection
|
||||
PresTrain : boolean; // mémoire de présence de train sur la voie
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -606,8 +612,9 @@ procedure Maj_Feux(detect : boolean);
|
||||
procedure Det_Adj(adresse : integer);
|
||||
procedure reserve_canton(detecteur1,detecteur2,adrtrain : integer);
|
||||
function signal_detecteur(detecteur : integer) : integer;
|
||||
function det_suiv_cont(det1,det2 : integer) : integer;
|
||||
function det_suiv_cont(det1,det2,alg : integer) : integer;
|
||||
function BTypeToChaine(BT : TEquipement) : string;
|
||||
function testBit(n : word;position : integer) : boolean;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -741,7 +748,8 @@ begin
|
||||
with Acanvas do
|
||||
begin
|
||||
brush.Color:=couleur;
|
||||
Pen.Color:=clBlack;
|
||||
pen.Color:=clBlack;
|
||||
pen.Width:=1;
|
||||
Ellipse(x-rayon,y-rayon,x+rayon,y+rayon);
|
||||
end;
|
||||
end;
|
||||
@@ -1172,6 +1180,7 @@ var rayon,x1,x2,x3,y1,y2,y3,x4,y4,x5,y5,x6,y6,LgImage,HtImage,temp : integer;
|
||||
ech : real;
|
||||
begin
|
||||
if (n<2) or (n>6) then n:=2;
|
||||
if (orientation<1) or (orientation>3) then orientation:=1;
|
||||
rayon:=round(6*frX);
|
||||
if n=2 then x2:=25 else x2:=22;
|
||||
x1:=11;x3:=33;x4:=43;x5:=53;x6:=63;
|
||||
@@ -1417,7 +1426,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// procédure activée quand on clique gauche sur l'image d'un feu
|
||||
// procédure activée si on clique G ou D sur une image d'un signal
|
||||
procedure TFormPrinc.ProcOnMouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
var s : string;
|
||||
P_image_pilote : Timage;
|
||||
i,erreur : integer;
|
||||
begin
|
||||
if button=mbRight then
|
||||
begin
|
||||
P_image_pilote:=Sender as TImage; // récupérer l'objet image du feu qu'on a cliqué de la forme pilote
|
||||
s:=P_Image_pilote.Hint; // récupérer son hint qui contient l'adresse du feu cliqué
|
||||
i:=pos('@',s); if i<>0 then delete(s,1,i);
|
||||
i:=pos('=',s); if i<>0 then delete(s,i,1);
|
||||
i:=pos(' ',s);
|
||||
if i<>0 then s:=copy(s,1,i-1);
|
||||
val(s,AdrPilote,erreur);
|
||||
end;
|
||||
end;
|
||||
|
||||
// procédure activée quand on clique gauche sur l'image d'un signal
|
||||
Procedure TFormprinc.ImageOnClick(Sender : Tobject);
|
||||
var s : string;
|
||||
P_image_pilote : Timage;
|
||||
@@ -1480,6 +1507,7 @@ begin
|
||||
14 : Bm:=Formprinc.Image4Dir.picture.Bitmap;
|
||||
15 : Bm:=Formprinc.Image5Dir.picture.Bitmap;
|
||||
16 : Bm:=Formprinc.Image6Dir.picture.Bitmap;
|
||||
else Bm:=nil;
|
||||
end;
|
||||
Select_dessin_feu:=bm;
|
||||
end;
|
||||
@@ -1500,6 +1528,8 @@ begin
|
||||
begin
|
||||
if debug=1 then affiche('Image '+intToSTR(rang)+' créée',clLime);
|
||||
//canvas.Create;
|
||||
Autosize:=true;
|
||||
align:=alNone;
|
||||
Parent:=Formprinc.ScrollBox1; // dire que l'image est dans la scrollBox1
|
||||
//formprinc.ScrollBox1.Color:=ClGreen;
|
||||
Name:='ImageFeu'+IntToSTR(adresse); // nom de l'image - sert à identifier le composant si on fait clic droit.
|
||||
@@ -1515,10 +1545,16 @@ begin
|
||||
Hint:=s;
|
||||
|
||||
onClick:=Formprinc.Imageonclick; // affectation procédure clique sur image
|
||||
onMouseDown:=Formprinc.ProcOnMouseDown;
|
||||
PopUpMenu:=Formprinc.PopupMenuFeu; // affectation popupmenu sur clic droit
|
||||
|
||||
// affecter le type d'image de feu dans l'image créée
|
||||
T_BP:=Select_dessin_feu(TypeFeu);
|
||||
if T_BP=nil then
|
||||
begin
|
||||
Affiche('Erreur 418 : sélection type signal incorrecte pour signal '+intToSTR(adresse),clred);
|
||||
exit;
|
||||
end;
|
||||
picture.Bitmap:=T_Bp;
|
||||
|
||||
picture.BitMap.TransparentMode:=tmfixed; // tmauto (la couleur transparente est déterminée par pixel le plus en haut à gauche du bitmap)
|
||||
@@ -3489,11 +3525,12 @@ begin
|
||||
7 : envoi_SR(Adr);
|
||||
end;
|
||||
|
||||
// Gestion démarrage temporisé des trains si on quitte le rouge : ne fonctionne qu'avec CDM rail connecté ou roulage
|
||||
if (Option_demarrage and cdm_connecte) or roulage then
|
||||
// Gestion démarrage temporisé des trains si on quitte le rouge : ne fonctionne qu'en roulage
|
||||
if roulage then
|
||||
begin
|
||||
a:=feux[i].AncienEtat;
|
||||
b:=feux[i].EtatSignal;
|
||||
// si l'ancien état était au rouge/violet et on quitte le rouge/violet
|
||||
if ((a=semaphore_F) or (a=carre_F) or (a=violet_F)) and ((b<>semaphore_F) and (b<>carre_F) and (b<>violet_F)) then
|
||||
begin
|
||||
// y a t il un train en face du signal
|
||||
@@ -3783,7 +3820,7 @@ end;
|
||||
// bits1 et 2: (2+4)=6= arret sur aiguillage en talon mal positionnée ou aiguillage réservé
|
||||
// bit3 (8)=arret sur un aiguillage pris en pointe dévié et AdrDevie contient l'adresse de l'aiguillage dévié ainsi que typeGen
|
||||
// code de sortie : élément suivant ou:
|
||||
// 9999: erreur fatale ou itération trop longue
|
||||
// 9999: erreur fatale: élément non trouvé ou itération trop longue
|
||||
// 9998: arret sur aiguillage en talon mal positionnée
|
||||
// 9997: arrêt sur aiguillage dévié
|
||||
// 9996: arrêt sur position inconnue d'aiguillage
|
||||
@@ -4764,6 +4801,7 @@ end;
|
||||
// renvoie l'élément avant det2 si det1 et det2 sont contigus ou ne sont séparés que par des aiguillages
|
||||
// si det1 et det2 sont contigus sans aiguillages entre eux, çà renvoie det1 sinon renvoie l'aiguillage entre les 2
|
||||
// s'ils ne sont pas contigus, renvoie 0
|
||||
// Si un élément est inconnu, renvoie 9999
|
||||
// det_contigu(527,520: renvoie 7 dans suivant
|
||||
// det_contigu(514,522: renvoie 514 dans suivant
|
||||
// det_contigu(517,524: renvoie 30
|
||||
@@ -4971,6 +5009,7 @@ begin
|
||||
begin
|
||||
if NivDebug=3 then AfficheDebug('Element '+intToSTR(det1)+' non trouvé',clred);
|
||||
if debug=3 then formprinc.Caption:='';
|
||||
suivant:=9999;
|
||||
exit;
|
||||
end;
|
||||
indexBranche_det1:=IndexBranche_trouve;
|
||||
@@ -4981,8 +5020,9 @@ begin
|
||||
trouve_element(det2,tp,1); // branche_trouve IndexBranche_trouve
|
||||
if IndexBranche_trouve=0 then
|
||||
begin
|
||||
if NivDebug=3 then AfficheDebug('Element '+intToSTR(actuel)+' non trouvé',clred);
|
||||
if NivDebug=3 then AfficheDebug('Element '+intToSTR(det2)+' non trouvé',clred);
|
||||
if debug=3 then formprinc.Caption:='';
|
||||
suivant:=9999;
|
||||
exit;
|
||||
end;
|
||||
|
||||
@@ -5066,16 +5106,16 @@ end;
|
||||
// les aiguillages n'ont pas besoin d'être positionnés entre 1 et 2.
|
||||
// par contre pour le suivant au det2, les aiguillages doivent être positionnés
|
||||
// si on ne trouve pas le suivant, renvoie 9999
|
||||
function det_suiv_cont(det1,det2 : integer) : integer;
|
||||
function det_suiv_cont(det1,det2,alg : integer) : integer;
|
||||
var dernier: integer;
|
||||
derniertyp : Tequipement;
|
||||
begin
|
||||
// si un aiguilage est entre det1 et det2 renvoie l'aig, sinon renvoie det1 si det1 et det2 sont contigus
|
||||
det_contigu(det1,det2,dernier,dernierTyp);
|
||||
if dernier<>0 then
|
||||
if (dernier<>0) and (dernier<>9999) then
|
||||
begin
|
||||
// détecteur suivant
|
||||
det_suiv_cont:=detecteur_suivant(dernier,dernierTyp,det2,det,1);
|
||||
det_suiv_cont:=detecteur_suivant(dernier,dernierTyp,det2,det,alg);
|
||||
//Affiche(intToSTR(suivant),clorange);
|
||||
end
|
||||
else det_suiv_cont:=9999;
|
||||
@@ -5286,6 +5326,7 @@ end;
|
||||
|
||||
|
||||
// renvoie le nombre de croisements entre les détecteurs el1 et el2
|
||||
// jamais utilisée !
|
||||
function Test_croisement(el1,el2,alg: integer) : integer ;
|
||||
var IndexBranche_det1,IndexBranche_det2,branche_trouve_det1,branche_trouve_det2,i,
|
||||
j,AdrPrec,Adr,AdrFonc,i1,N_det : integer;
|
||||
@@ -5364,7 +5405,7 @@ begin
|
||||
begin
|
||||
Adr:=9999;
|
||||
end;
|
||||
|
||||
|
||||
//AfficheDebug('Sortie Alg3: '+IntToSTR(Adr)+'/'+intToSTR(typeGen),clyellow);
|
||||
if TypeGen=det then inc(N_Det);
|
||||
if NivDebug=3 then
|
||||
@@ -5789,8 +5830,8 @@ begin
|
||||
if (NivDebug=3) and (adrFeu=0) then AfficheDebug('Pas Trouvé de signal suivant au signal Adr='+IntToSTR(det1),clOrange);
|
||||
end;
|
||||
|
||||
// renvoie l'état du signal suivant. Si renvoie 0, pas trouvé le signal suivant.
|
||||
// adresse : adresse du feu
|
||||
// renvoie l'état du signal suivant du signal "adresse". Si renvoie 0, pas trouvé le signal suivant.
|
||||
// adresse : adresse du signal
|
||||
// rang=1 pour feu suivant, 2 pour feu suivant le 1, etc
|
||||
// retour dans AdrSignalsuivant : adresse du feu suivant
|
||||
// stocke les éléments trouvés dans Elements
|
||||
@@ -5961,7 +6002,7 @@ begin
|
||||
exit;
|
||||
end;
|
||||
|
||||
// renvoie l'adresse de l'aiguille si elle est déviée après le signal et ce jusqu'au prochain signal
|
||||
// renvoie l'adresse de la première aiguille déviée après le signal "adresse" et ce jusqu'au prochain signal
|
||||
// sinon renvoie 0
|
||||
// adresse=adresse du signal
|
||||
function Aiguille_deviee(adresse : integer) : integer ;
|
||||
@@ -6075,7 +6116,7 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
// renvoie vrai si une mémoire de zone est occupée après le signal courant au signal suivant
|
||||
// renvoie vrai si une mémoire de zone est occupée après le signal "adresse" jusqu'au signal suivant
|
||||
// sort de suite si on trouve un train
|
||||
// adresse=adresse du signal
|
||||
function test_memoire_zones(adresse : integer) : boolean;
|
||||
@@ -6103,7 +6144,7 @@ begin
|
||||
ife:=1; // index feu de 1 à 4 pour explorer les 4 détecteurs d'un feu
|
||||
repeat
|
||||
Nfeux:=0;
|
||||
if NivDebug=3 then AfficheDebug('Boucle de test feu '+intToSTR(ife)+'/4',clOrange);
|
||||
if NivDebug=3 then AfficheDebug('Boucle de test signal '+intToSTR(ife)+'/4',clOrange);
|
||||
if (ife=1) then
|
||||
begin
|
||||
prec:=feux[i].Adr_det1;
|
||||
@@ -6626,7 +6667,7 @@ end;
|
||||
// AdrFeu: adresse du signal
|
||||
// detect: si true, tient compte de la présence des trains par détecteurs dans la fonction signalPrec
|
||||
procedure Maj_Feu(Adrfeu : integer;detect : boolean);
|
||||
var Adr_det,etat,Aig,Adr_El_Suiv,modele,index,IndexAig,trainreserve,AdrTrainLoc,voie : integer ;
|
||||
var Adr_det,etat,Aig,Adr_El_Suiv,modele,index,IndexAig,AdrTrainLoc,voie : integer ;
|
||||
PresTrain,Aff_semaphore,car,reserveTrainTiers : boolean;
|
||||
code,combine,AdrSignalsuivant : integer;
|
||||
Btype_el_suivant : TEquipement;
|
||||
@@ -6711,6 +6752,7 @@ begin
|
||||
// si le signal peut afficher un carré et les aiguillages après le signal sont mal positionnées ou aig réservé ou que pas présence train avant signal et signal
|
||||
// verrouillable au carré, afficher un carré
|
||||
car:=carre_signal(AdrFeu,AdrTrainLoc,reserveTrainTiers); // si reserveTrainTiers, réservé par un autre train
|
||||
if AffSignal and reserveTrainTiers then AfficheDebug('trouvé aiguillage réservé par autre train',clYellow);
|
||||
if AffSignal and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
||||
// En mode roulage, si la réservation est faite par le train détecté en étape A, ne pas verrouiller au carré
|
||||
if roulage then car:=reserveTrainTiers or car;
|
||||
@@ -6720,7 +6762,8 @@ begin
|
||||
//if AffSignal and car then AfficheDebug('le signal a des aiguilles en talon aval mal positionnées',clYellow);
|
||||
if AffSignal and feux[index].VerrouilleCarre then AfficheDebug('le signal est verrouillé au carré',clYellow);
|
||||
|
||||
if (modele>=4) and ( (not(PresTrain) and Feux[index].VerrouCarre) or (car and feux[index].VerrouilleCarre) ) then Maj_Etat_Signal(AdrFeu,carre)
|
||||
if (modele>=4) and Feux[index].VerrouCarre and
|
||||
( (not(PresTrain) or car or feux[index].Verrouillecarre) ) then Maj_Etat_Signal(AdrFeu,carre)
|
||||
else
|
||||
begin
|
||||
// si on quitte le détecteur on affiche un sémaphore : tester le sens de circulation
|
||||
@@ -6835,6 +6878,8 @@ begin
|
||||
if debug=3 then formprinc.Caption:='';
|
||||
end;
|
||||
|
||||
// mise à jour des signaux
|
||||
// detect: si true, tient compte de la présence des trains sur les détecteurs dans la fonction signalPrec
|
||||
Procedure Maj_feux(detect : boolean);
|
||||
var i : integer;
|
||||
begin
|
||||
@@ -7134,7 +7179,7 @@ begin
|
||||
|
||||
if TraceListe or (NivDebug=3) then AfficheDebug('2-0 traitement Train n°'+intToSTR(i)+' 2 détecteurs',couleur);
|
||||
// test si det1, det2 et det3 sont contigus malgré aig mal positionnés
|
||||
det_suiv:=det_suiv_cont(det1,det2); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
det_suiv:=det_suiv_cont(det1,det2,1); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
if traceliste then affichedebug('Le suivant aux '+intToSTR(det1)+' '+intToSTR(det2)+' est '+intToSTR(det_suiv),couleur);
|
||||
SuivOk:=det_suiv=det3;
|
||||
CasAig:=false;
|
||||
@@ -7541,7 +7586,7 @@ begin
|
||||
MemZone[det3,det1].etat:=False; // on dévalide la zone inverse
|
||||
|
||||
// test si on peut réserver le canton suivant
|
||||
det_suiv:=det_suiv_cont(det1,det3);
|
||||
det_suiv:=det_suiv_cont(det1,det3,1);
|
||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc);
|
||||
s:='route ok de '+intToSTR(det1)+' à '+IntToSTR(det3)+' pour train '+intToSTR(i);
|
||||
Affiche_Evt(s,clWhite);
|
||||
@@ -7580,7 +7625,7 @@ begin
|
||||
begin
|
||||
if TraceListe or (NivDebug=3) then AfficheDebug('2-0 traitement Train n°'+intToSTR(i)+' 2 détecteurs',couleur);
|
||||
// test si det1, det2 et det3 sont contigus malgré aig mal positionnés
|
||||
det_suiv:=det_suiv_cont(det1,det2); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
det_suiv:=det_suiv_cont(det1,det2,1); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
if traceliste then affichedebug('Le suivant aux '+intToSTR(det1)+' '+intToSTR(det2)+' est '+intToSTR(det_suiv),couleur);
|
||||
SuivOk:=det_suiv=det3;
|
||||
CasAig:=false;
|
||||
@@ -7779,9 +7824,9 @@ begin
|
||||
|
||||
if (nbre=2) and etat then
|
||||
begin
|
||||
if TraceListe or (NivDebug=3) then AfficheDebug('2-1 traitement Train n°'+intToSTR(i)+' 2 détecteurs',clwhite);
|
||||
if TraceListe or (NivDebug=3) then AfficheDebug('2-1 traitement Train n°'+intToSTR(i)+' 2 détecteurs',couleur);
|
||||
// front descendant sur détecteur 2
|
||||
det_suiv:=det_suiv_cont(det1,det2); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
det_suiv:=det_suiv_cont(det1,det2,1); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
if traceliste then affichedebug('Le suivant aux '+intToSTR(det1)+' '+intToSTR(det2)+' est '+intToSTR(det_suiv),clWhite);
|
||||
if (det_suiv=det3) then
|
||||
begin
|
||||
@@ -7809,7 +7854,7 @@ begin
|
||||
|
||||
pilote_train(det2,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||
// test si on peut réserver le canton suivant
|
||||
det_suiv:=det_suiv_cont(det2,det3);
|
||||
det_suiv:=det_suiv_cont(det2,det3,1);
|
||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc);
|
||||
// libère canton
|
||||
libere_canton(det2,det3);
|
||||
@@ -7907,7 +7952,7 @@ begin
|
||||
|
||||
pilote_train(i2,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||
// test si on peut réserver le canton suivant
|
||||
det_suiv:=det_suiv_cont(i2,det3);
|
||||
det_suiv:=det_suiv_cont(i2,det3,1);
|
||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc);
|
||||
// libère canton
|
||||
libere_canton(i2,det3);
|
||||
@@ -8220,7 +8265,7 @@ begin
|
||||
MemZone[det3,det1].etat:=False; // on dévalide la zone inverse
|
||||
|
||||
// test si on peut réserver le canton suivant
|
||||
det_suiv:=det_suiv_cont(det1,det3);
|
||||
det_suiv:=det_suiv_cont(det1,det3,1);
|
||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc);
|
||||
s:='route ok de '+intToSTR(det1)+' à '+IntToSTR(det3)+' pour train '+intToSTR(i);
|
||||
Affiche_Evt(s,clWhite);
|
||||
@@ -8281,7 +8326,7 @@ begin
|
||||
if TraceListe then AfficheDebug('Route est valide, dét '+intToSTR(det2)+' '+intToSTR(det3)+' contigus',couleur);
|
||||
// ici on cherche le suivant à det2 det3, algo=1
|
||||
event_det_tick[N_event_tick].train:=i;
|
||||
Adrsuiv:=det_suiv_cont(det1,det2);
|
||||
Adrsuiv:=det_suiv_cont(det1,det2,1);
|
||||
//if not(casAig) then AdrSuiv:=detecteur_suivant_el(det2,det,det3,det,0); // dans le cas de CasAig, alors adrSuiv=9996 donc AdrSuiv est calculé plus haut
|
||||
event_det_train[i].suivant:=AdrSuiv;
|
||||
if TraceListe then AfficheDebug('le sursuivant est '+intToSTR(adrsuiv),couleur);
|
||||
@@ -8446,7 +8491,7 @@ begin
|
||||
begin
|
||||
if TraceListe or (NivDebug=3) then AfficheDebug('2-1 traitement Train n°'+intToSTR(i)+' 2 détecteurs',clwhite);
|
||||
// front descendant sur détecteur 2
|
||||
det_suiv:=det_suiv_cont(det1,det2); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
det_suiv:=det_suiv_cont(det1,det2,1); // test si le suivant de det1 à det2 est bien le nouveau détecteur (det3)
|
||||
if traceliste then affichedebug('Le suivant aux '+intToSTR(det1)+' '+intToSTR(det2)+' est '+intToSTR(det_suiv),clWhite);
|
||||
if (det_suiv=det3) then
|
||||
begin
|
||||
@@ -8486,7 +8531,7 @@ begin
|
||||
|
||||
pilote_train(det2,det3,adrtrainLoc,i); // pilote le train sur det3
|
||||
// test si on peut réserver le canton suivant
|
||||
det_suiv:=det_suiv_cont(det2,det3);
|
||||
det_suiv:=det_suiv_cont(det2,det3,1);
|
||||
if det_suiv<9990 then reserve_canton(det3,det_suiv,AdrTrainLoc);
|
||||
// libère canton
|
||||
libere_canton(det2,det3);
|
||||
@@ -8679,6 +8724,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
// affecte le détecteur "adresse" au train et met sa route à jour
|
||||
procedure calcul_zones(adresse: integer;front : boolean);
|
||||
begin
|
||||
if debug=3 then formprinc.Caption:='Calcul_zones '+intToSTR(adresse);
|
||||
@@ -8892,35 +8938,32 @@ begin
|
||||
|
||||
if (aO=adr) and (etat=0) then // actionneur d'ouverture
|
||||
begin
|
||||
Tablo_PN[i].voie[v].PresTrain:=false;
|
||||
// vérifier les présences train sur les autres voies du PN
|
||||
presTrain_PN:=false;
|
||||
for va:=1 to Tablo_PN[i].nbvoies do
|
||||
begin
|
||||
presTrain_PN:=presTrain_PN or Tablo_PN[i].voie[va].PresTrain;
|
||||
end;
|
||||
if not(presTrain_PN) then
|
||||
if tablo_pn[i].compteur=1 then // compteur du nombre de trains sur le PN
|
||||
begin
|
||||
Affiche('Ouverture PN'+intToSTR(i)+' par act '+intToSTr(adr)+' (train voie '+IntToSTR(v)+')',clOrange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseOuvre,Tablo_PN[i].CommandeOuvre,ts);
|
||||
end;
|
||||
if tablo_pn[i].compteur>0 then dec(tablo_pn[i].compteur);
|
||||
end;
|
||||
|
||||
if (aF=adr) and (etat=1) then // actionneur de fermeture
|
||||
begin
|
||||
Tablo_PN[i].voie[v].PresTrain:=true;
|
||||
s:='Fermeture PN'+IntToSTR(i)+' par act '+intToSTr(adr)+' (train voie '+IntToSTR(v)+')';
|
||||
Affiche(s,clOrange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseFerme,Tablo_PN[i].CommandeFerme,ts);
|
||||
inc(tablo_pn[i].compteur);
|
||||
if tablo_pn[i].compteur=1 then
|
||||
begin
|
||||
s:='Fermeture PN'+IntToSTR(i)+' par act '+intToSTr(adr)+' (train voie '+IntToSTR(v)+')';
|
||||
Affiche(s,clOrange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseFerme,Tablo_PN[i].CommandeFerme,ts);
|
||||
end;
|
||||
end;
|
||||
end
|
||||
end
|
||||
else
|
||||
begin
|
||||
// PN par zone de détection
|
||||
//Affiche(intToSTR(adr)+'/'+intToSTR(adr2)+' '+intToSTR(etat),clyellow);
|
||||
// Affiche(intToSTR(adr)+'/'+intToSTR(adr2)+' '+intToSTR(etat),clyellow);
|
||||
if Tablo_PN[i].nbvoies>4 then Tablo_PN[i].nbvoies:=4;
|
||||
for v:=1 to Tablo_PN[i].nbvoies do
|
||||
begin
|
||||
@@ -8930,31 +8973,28 @@ begin
|
||||
dZ2O:=Tablo_PN[i].voie[v].detZ2O;
|
||||
if (dZ1O=adr) and (dZ2O=adr2) and (etat=0) then // zone d'ouverture
|
||||
begin
|
||||
Tablo_PN[i].voie[v].PresTrain:=false;
|
||||
// vérifier les présences train sur les autres voies du PN
|
||||
presTrain_PN:=false;
|
||||
for va:=1 to Tablo_PN[i].nbvoies do
|
||||
begin
|
||||
presTrain_PN:=presTrain_PN or Tablo_PN[i].voie[va].PresTrain;
|
||||
end;
|
||||
if not(presTrain_PN) then
|
||||
if Tablo_PN[i].compteur=1 then
|
||||
begin
|
||||
s:='Ouverture PN'+intToSTR(i)+' par zone '+intToSTr(adr)+' '+intToSTR(adr2);
|
||||
Affiche(s,clorange);
|
||||
//if AffAigDet then AfficheDebug(s,clorange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseOuvre,Tablo_PN[i].CommandeOuvre,ts);
|
||||
if tablo_pn[i].compteur>0 then dec(tablo_pn[i].compteur);
|
||||
end;
|
||||
end;
|
||||
|
||||
if (dZ1F=adr) and (dZ2F=adr2) and (etat=1) then // zone de fermeture
|
||||
begin
|
||||
Tablo_PN[i].voie[v].PresTrain:=true;
|
||||
s:='Fermeture PN'+IntToSTR(i)+' par zone '+intToSTr(adr)+' '+intToSTR(adr2)+' (train voie '+IntToSTR(v)+')';
|
||||
affiche(s,clorange);
|
||||
//if AffAigDet then AfficheDebug(s,clorange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseFerme,Tablo_PN[i].CommandeFerme,ts);
|
||||
inc(Tablo_PN[i].compteur);
|
||||
if tablo_pn[i].compteur=1 then
|
||||
begin
|
||||
s:='Fermeture PN'+IntToSTR(i)+' par zone '+intToSTr(adr)+' '+intToSTR(adr2)+' (train voie '+IntToSTR(v)+')';
|
||||
affiche(s,clorange);
|
||||
//if AffAigDet then AfficheDebug(s,clorange);
|
||||
if Tablo_PN[i].pulse=1 then ts:=aigP else ts:=feu;
|
||||
pilote_acc(Tablo_PN[i].AdresseFerme,Tablo_PN[i].CommandeFerme,ts);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -10453,7 +10493,7 @@ begin
|
||||
Formprinc.caption:=af+' - '+lay;
|
||||
// On a lancé CDM, déconnecter l'USB
|
||||
deconnecte_USB;
|
||||
Affiche('lance les fonctions automatiques de CDM',clyellow);
|
||||
Affiche('Lance les fonctions automatiques de CDM',clyellow);
|
||||
Sleep(3000);
|
||||
ProcessRunning(s); // récupérer le handle de CDM
|
||||
SetForegroundWindow(CDMhd);
|
||||
@@ -10614,6 +10654,12 @@ begin
|
||||
end;
|
||||
roulage:=false;
|
||||
|
||||
// raz compteurs de trains des PN
|
||||
for i:=1 to NbrePN do
|
||||
begin
|
||||
Tablo_Pn[i].compteur:=0;
|
||||
end;
|
||||
|
||||
{ ralentit au démarrage
|
||||
for i:=1 to NbreFeux do
|
||||
begin
|
||||
@@ -10686,26 +10732,29 @@ procedure TFormPrinc.FormCreate(Sender: TObject);
|
||||
var i : integer;
|
||||
s : string;
|
||||
begin
|
||||
AF:='Client TCP-IP CDM Rail ou USB - système XpressNet DCC++ Version '+Version+sousVersion;
|
||||
Caption:=AF;
|
||||
TraceSign:=True;
|
||||
configPrete:=false; // form config prete
|
||||
PremierFD:=false;
|
||||
sauve_tco:=false;
|
||||
// services commIP CDM par défaut
|
||||
ntrains:=0;
|
||||
ntrains_cdm:=0;
|
||||
protocole:=1;
|
||||
filtrageDet0:=3;
|
||||
|
||||
// services commIP CDM par défaut
|
||||
Srvc_Aig:=true;
|
||||
Srvc_Det:=true;
|
||||
Srvc_Act:=true;
|
||||
DebugAffiche:=false;
|
||||
Srvc_PosTrain:=false;
|
||||
Srvc_sig:=false;
|
||||
|
||||
DebugAffiche:=false;
|
||||
formConfCellTCOAff:=false;
|
||||
confasauver:=false;
|
||||
config_modifie:=false;
|
||||
AF:='Client TCP-IP CDM Rail ou USB - système XpressNet DCC++ Version '+Version+sousVersion;
|
||||
chaine_recue:='';
|
||||
Caption:=AF;
|
||||
Application.onHint:=doHint;
|
||||
|
||||
// box2=CV
|
||||
@@ -10737,35 +10786,111 @@ begin
|
||||
debug:=0;
|
||||
etape:=1;
|
||||
affevt:=false;
|
||||
avec_splitter:=false;
|
||||
DebugAffiche:=false;
|
||||
Algo_localisation:=1; // normal
|
||||
AntiTimeoutEthLenz:=0;
|
||||
Verif_AdrXpressNet:=1;
|
||||
avecRoulage:=0;
|
||||
AvecInit:=true; // &&&& avec initialisation des aiguillages ou pas
|
||||
Option_demarrage:=false; // démarrage des trains après tempo, pas encore au point
|
||||
Diffusion:=AvecInit; // mode diffusion publique
|
||||
|
||||
roulage1.visible:=false;
|
||||
|
||||
|
||||
With ScrollBox1 do
|
||||
begin
|
||||
HorzScrollBar.Tracking:=true;
|
||||
HorzScrollBar.Smooth:=false; // ne pas mettre true sinon figeage dans W11 si onclique sur la trackbar!!
|
||||
VertScrollBar.Tracking:=true;
|
||||
VertScrollBar.Smooth:=false;
|
||||
end;
|
||||
|
||||
with panel2 do
|
||||
begin
|
||||
Panel2.Top:=32;
|
||||
Panel2.Left:=8;
|
||||
Width:=610;
|
||||
Height:=520;
|
||||
Anchors:=[akLeft,akTop,akRight,akBottom];
|
||||
end;
|
||||
|
||||
if avec_splitter then
|
||||
begin
|
||||
with Fenrich do
|
||||
begin
|
||||
parent:=panel2;
|
||||
Align:=alLeft;
|
||||
left:=0;
|
||||
top:=0;
|
||||
width:=panel2.Width-20;
|
||||
height:=520;
|
||||
Anchors:=[akLeft,akTop,akRight,akBottom];
|
||||
end;
|
||||
|
||||
with splitterV do
|
||||
begin
|
||||
Parent:=panel2;
|
||||
Left:=FenRich.left+FenRich.Width+1;
|
||||
//Align:=Fenrich.Align;
|
||||
//MinSize:=200;
|
||||
Visible:=true;
|
||||
end;
|
||||
|
||||
with panel2 do
|
||||
begin
|
||||
//align:=alLeft;
|
||||
//Left:=SplitterV.left+10;
|
||||
end;
|
||||
|
||||
with ScrollBox1 do
|
||||
begin
|
||||
//Parent:=formprinc;
|
||||
//align:=alclient;
|
||||
Anchors:=[];
|
||||
top:=200;
|
||||
end;
|
||||
|
||||
splitterH.Visible:=false;
|
||||
{ with splitterH do
|
||||
begin
|
||||
Parent:=formprinc;
|
||||
//top:=FenRich.top+FenRich.height+1;
|
||||
Width:=FenRich.width;
|
||||
Align:=alBottom;
|
||||
MinSize:=200;
|
||||
Visible:=true;
|
||||
end;
|
||||
}
|
||||
|
||||
end
|
||||
else
|
||||
begin
|
||||
splitterV.Visible:=false;
|
||||
splitterH.Visible:=false;
|
||||
with panel2 do
|
||||
begin
|
||||
Anchors:=[akLeft,akTop,akRight,akBottom];
|
||||
end;
|
||||
with Fenrich do
|
||||
begin
|
||||
parent:=panel2;
|
||||
Align:=alLeft;
|
||||
left:=0;
|
||||
top:=0;
|
||||
width:=panel2.Width;
|
||||
height:=panel2.Height;
|
||||
Anchors:=[akLeft,akTop,akRight,akBottom];
|
||||
end;
|
||||
end;
|
||||
|
||||
// pour Rad studio------------------------
|
||||
FenRich.Height:=Height-150;
|
||||
ScrollBox1.Height:=Height-280;
|
||||
StaticText.AutoSize:=true;
|
||||
StaticText.Top:=FenRich.Height+FenRich.Top+10;
|
||||
StaticText.Top:=panel2.Height+Panel2.Top+10;
|
||||
//----------------------------------------
|
||||
|
||||
{
|
||||
FenRich.Align := alLeft;
|
||||
FenRich.Width := FormPrinc.ClientWidth div 3;
|
||||
Splitter.Parent := FormPrinc;
|
||||
// Make sure the splitter is to the right of the directory list box.
|
||||
Splitter.Left := FenRich.Left + FenRich.Width + 1;
|
||||
Splitter.Align := FenRich.Align; // Give it the same alignment as the directory.
|
||||
// Each pane must be at least one quarter of the form?s width.
|
||||
Splitter.MinSize := Formprinc.ClientWidth div 4;
|
||||
//ScrollBox1.Align:=alclient;
|
||||
}
|
||||
|
||||
ferme:=false;
|
||||
CDM_connecte:=false;
|
||||
pasreponse:=0;
|
||||
@@ -10814,6 +10939,7 @@ begin
|
||||
// Initialisation des images des signaux
|
||||
procetape('Création des signaux');
|
||||
NbreImagePLigne:=Formprinc.ScrollBox1.Width div (largImg+5);
|
||||
if NbreImagePLigne=0 then NbreImagePLigne:=1;
|
||||
|
||||
// ajoute les images des feux dynamiquement
|
||||
for i:=1 to NbreFeux do
|
||||
@@ -10849,7 +10975,7 @@ begin
|
||||
modeStkRetro:=false;
|
||||
|
||||
|
||||
// lancer CDM rail et le connecte si on le demande à faire après la création des feux et du tco
|
||||
// lancer CDM rail et le connecte si on le demande ; à faire après la création des feux et du tco
|
||||
procetape('Test CDM et son lancement');
|
||||
if LanceCDM then Lance_CDM;
|
||||
procetape('Fin cdm');
|
||||
@@ -10860,7 +10986,7 @@ begin
|
||||
procetape('Test connexion CDM');
|
||||
if not(CDM_connecte) then connecte_CDM;
|
||||
|
||||
// si CDM n'est pas connecté, on ouvre la liaison vers la centrale
|
||||
// si CDM n'est pas connecté, on regarde si on ouvre la liaison vers la centrale
|
||||
if not(CDM_connecte) then
|
||||
begin
|
||||
procetape('Ouvertures COM/USB');
|
||||
@@ -10907,7 +11033,7 @@ begin
|
||||
//Menu_interface(valide);
|
||||
end;
|
||||
|
||||
DoubleBuffered:=true;
|
||||
//DoubleBuffered:=true;
|
||||
{
|
||||
aiguillage[index_aig(1)].position:=const_droit;
|
||||
aiguillage[index_aig(3)].position:=const_devie;
|
||||
@@ -10985,7 +11111,6 @@ begin
|
||||
end;
|
||||
//if terminal then Affiche(chaine_recue,clLime);
|
||||
chaine_recue:=interprete_reponse(chaine_recue);
|
||||
//interprete_reponse(chaine_recue);
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -10998,7 +11123,6 @@ begin
|
||||
portCommOuvert:=false;
|
||||
MSCommUSBLenz.Portopen:=false;
|
||||
end;
|
||||
portCommOuvert:=false;
|
||||
ClientSocketCDM.close;
|
||||
ClientSocketInterface.close;
|
||||
timer1.Enabled:=false;
|
||||
@@ -11021,6 +11145,16 @@ var aspect,i,a,x,y,Bimage,adresse,TailleX,TailleY,orientation : integer;
|
||||
s : string;
|
||||
begin
|
||||
inc(tick);
|
||||
// envoi timeout
|
||||
if parSocketLenz and (AntiTimeoutEthLenz=1) then
|
||||
begin
|
||||
dec(TpsTimeoutSL);
|
||||
if TpsTimeoutSL<=0 then
|
||||
begin
|
||||
TpsTimeoutSL:=450; // envoyer caractère toutes les 45 secondes
|
||||
ClientSocketInterface.Socket.SendText(' ');
|
||||
end;
|
||||
end;
|
||||
if sourisclic then inc(Temposouris);
|
||||
if Tdoubleclic>0 then dec(Tdoubleclic);
|
||||
if Tempo_init>0 then dec(Tempo_init);
|
||||
@@ -11046,9 +11180,8 @@ begin
|
||||
adresse:=feux[i].adresse;
|
||||
if TestBit(a,jaune_cli) or TestBit(a,ral_60) or
|
||||
TestBit(a,rappel_60) or testBit(a,semaphore_cli) or
|
||||
testBit(a,vert_cli) or testbit(a,blanc_cli) then
|
||||
testBit(a,vert_cli) or testbit(a,blanc_cli) then
|
||||
begin
|
||||
//Affiche(IntToSTR(adresse),clOrange);
|
||||
Dessine_feu_mx(Feux[i].Img.Canvas,0,0,1,1,adresse,1);
|
||||
//Affiche('Clignote feu '+IntToSTR(adresse),clyellow);
|
||||
end;
|
||||
@@ -11123,7 +11256,7 @@ begin
|
||||
|
||||
// arret loco sur n secondes
|
||||
// démarrage loco temporisé
|
||||
for i:=1 to 20 do
|
||||
for i:=1 to ntrains do
|
||||
begin
|
||||
a:=trains[i].TempoArret;
|
||||
if a<>0 then
|
||||
@@ -11193,7 +11326,7 @@ begin
|
||||
end;
|
||||
|
||||
// temporisation détecteur à 0
|
||||
for i:=1 to NbMemZone do
|
||||
for i:=1 to NbMemZone do // i=index détecteur
|
||||
begin
|
||||
a:=detecteur[i].tempo0;
|
||||
if a<>0 then
|
||||
@@ -11308,7 +11441,7 @@ begin
|
||||
ErrorCode:=0;
|
||||
end;
|
||||
|
||||
// lecture depuis socket
|
||||
// lecture depuis socket interface
|
||||
procedure TFormPrinc.ClientSocketInterfaceRead(Sender: TObject;
|
||||
Socket: TCustomWinSocket);
|
||||
var s : string;
|
||||
@@ -11456,11 +11589,17 @@ var j,adr,adrTrain : integer;
|
||||
s : string;
|
||||
begin
|
||||
Affiche('Etat des détecteurs:',ClLime);
|
||||
nbDet1:=0;
|
||||
for j:=1 to NDetecteurs do
|
||||
begin
|
||||
adr:=Adresse_detecteur[j];
|
||||
s:='Dét '+intToSTR(adr)+'=';
|
||||
if Detecteur[adr].etat then s:=s+'1 ' else s:=s+'0 ';
|
||||
if Detecteur[adr].etat then
|
||||
begin
|
||||
s:=s+'1 ';
|
||||
inc(NbDet1);
|
||||
end
|
||||
else s:=s+'0 ';
|
||||
|
||||
s:=s+detecteur[adr].train;
|
||||
AdrTrain:=detecteur[adr].AdrTrain;
|
||||
@@ -11518,10 +11657,9 @@ begin
|
||||
if aiguillage[index_aig(j)].position=1 then s:=s+' (dévié)' else s:=s+' (droit)';
|
||||
end;
|
||||
|
||||
if (model=Crois) then s:='Croisement '+IntToSTR(aiguillage[i].Adresse);
|
||||
r:=aiguillage[i].AdrTrain;
|
||||
if (r<>0) and (model=Crois) then s:='Croisement '+IntToSTR(aiguillage[i].Adresse)+' : ';
|
||||
|
||||
if r<>0 then s:=s+' réservé par train @'+intToSTR(r);
|
||||
if r<>0 then s:=s+': réservé par train @'+intToSTR(r);
|
||||
if s<>'' then Affiche(s,clWhite);
|
||||
end;
|
||||
end;
|
||||
@@ -12085,7 +12223,7 @@ begin
|
||||
|
||||
// évènement actionneur
|
||||
// attention un actionneur qui repasse à 0 ne contient pas de nom de train
|
||||
//S-E-03-0157-CMDACC-ST_AC|049|05|NAME=0;OBJ=7101;AD=815;TRAIN=CC406526;STATE=1;
|
||||
// S-E-03-0157-CMDACC-ST_AC|049|05|NAME=0;OBJ=7101;AD=815;TRAIN=CC406526;STATE=1;
|
||||
i:=pos('CMDACC-ST_AC',commandeCDM);
|
||||
if i<>0 then
|
||||
begin
|
||||
@@ -12201,7 +12339,7 @@ begin
|
||||
val(ss,y2,erreur);
|
||||
s:=s+' Y2='+IntTostr(y2);
|
||||
Delete(commandeCDM,i,l-i+1);
|
||||
end;
|
||||
end;
|
||||
|
||||
if afftiers then afficheDebug(s,clAqua);
|
||||
end;
|
||||
@@ -12719,6 +12857,8 @@ begin
|
||||
s:=s+' Commande ouverture='+intToSTR(Tablo_PN[i].commandeOuvre);
|
||||
s:=s+' Nbre de voies='+intToSTR(Tablo_PN[i].nbVoies);
|
||||
Affiche(s,clyellow);
|
||||
s:=' Compteur trains engagés sur PN='+intToSTR(tablo_PN[i].compteur);
|
||||
Affiche(s,clyellow);
|
||||
|
||||
if tablo_PN[i].Voie[1].ActFerme<>0 then
|
||||
// par actionneur
|
||||
@@ -12736,7 +12876,7 @@ begin
|
||||
begin
|
||||
s:=' Voie '+IntToSTR(v)+': Zones de fermeture='+intToSTR(tablo_PN[i].Voie[v].detZ1F)+'-'+intToSTR(tablo_PN[i].Voie[v].detZ2F);
|
||||
s:=s+' Zones d''ouverture='+intToSTR(tablo_PN[i].Voie[v].detZ1O)+'-'+intToSTR(tablo_PN[i].Voie[v].detZ2O);
|
||||
Affiche(s,clyellow);
|
||||
Affiche(s,clyellow);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -12933,7 +13073,7 @@ end;
|
||||
procedure TFormPrinc.Apropos1Click(Sender: TObject);
|
||||
begin
|
||||
Affiche(' ',clyellow);
|
||||
Affiche('Signaux complexes GL version '+version+sousVersion+' (C) 2022 F1IWQ Gily TDR',clWhite);
|
||||
Affiche('Signaux complexes GL version '+version+sousVersion+' (C) 2022-23 F1IWQ Gily TDR',clWhite);
|
||||
|
||||
FenRich.SelStart:=length(FenRich.Text);
|
||||
FenRich.SelAttributes.Style:=[fsUnderline];
|
||||
@@ -12945,7 +13085,7 @@ begin
|
||||
FenRich.lines.add('http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906');
|
||||
RE_ColorLine(FenRich,FenRich.lines.count-1,clAqua);
|
||||
|
||||
Affiche('Ce programme pilote des signaux complexes de façon autonome ou avec CDM rail ',ClYellow);
|
||||
Affiche('Ce programme pilote des signaux complexes et les trains de façon autonome ou avec CDM rail ',ClYellow);
|
||||
Affiche('En fonction des détecteurs mis à 1 ou 0 par des locomotives',ClYellow);
|
||||
Affiche('en circulation sur le réseau',ClYellow);
|
||||
Affiche('En vert : Trames envoyées à l''interface',ClWhite);
|
||||
@@ -13001,8 +13141,8 @@ begin
|
||||
// carré
|
||||
if aspect=0 then
|
||||
begin
|
||||
Affiche('Le signal est au carré car ',clyellow);
|
||||
if carre_signal(Adresse,trainreserve,reserveTrainTiers) then affiche('les aiguillages en aval du signal sont mal positionnées ou leur positions inconnues',clyellow) ;
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est au carré car ',clyellow);
|
||||
if carre_signal(Adresse,trainreserve,reserveTrainTiers) then affiche('les aiguillages en aval du signal sont mal positionnés ou leur positions inconnues',clyellow) ;
|
||||
if reserveTrainTiers then affiche('un aiguillage ou un croisement en aval du signal sont réservés par un autre train ',clyellow);
|
||||
if Cond_Carre(Adresse) then affiche_suivi('les aiguillages déclarés dans la définition du signal sont mal positionnés',clyellow);
|
||||
if feux[i].VerrouCarre and not(PresTrainPrec(Adresse,Nb_cantons_Sig,false,TrainReserve,voie)) then affiche('le signal est verrouillable au carré et aucun train n''est présent avant le signal',clyellow);
|
||||
@@ -13011,37 +13151,37 @@ begin
|
||||
end;
|
||||
if aspect=1 then
|
||||
begin
|
||||
Affiche('Le signal est au sémaphore car ',clyellow);
|
||||
if test_memoire_zones(Adresse) then affiche_suivi('Présence train dans canton après le signal',clyellow);
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est au sémaphore car ',clyellow);
|
||||
if test_memoire_zones(Adresse) then affiche_suivi('présence train dans canton après le signal',clyellow);
|
||||
end;
|
||||
// avertissement
|
||||
if aspect=8 then
|
||||
begin
|
||||
i:=etat_signal_suivant(Adresse,1,AdrSignalsuivant);
|
||||
Affiche('Le signal est à l''avertissement car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est à l''avertissement car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
end;
|
||||
// avertissement cli
|
||||
if aspect=9 then
|
||||
begin
|
||||
i:=etat_signal_suivant(Adresse,1,AdrSignalsuivant);
|
||||
Affiche('Le signal est au jaune cli car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est au jaune cli car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
end;
|
||||
// ralen 30
|
||||
if combine=10 then
|
||||
begin
|
||||
i:=etat_signal_suivant(Adresse,1,AdrSignalsuivant);
|
||||
Affiche('Le signal est au ralentissement 30 car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est au ralentissement 30 car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
end;
|
||||
if combine=11 then
|
||||
begin
|
||||
i:=etat_signal_suivant(Adresse,1,AdrSignalsuivant);
|
||||
Affiche('Le signal est au ralentissement 60 car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
Affiche('Le signal '+intToSTR(adresse)+' est au ralentissement 60 car son signal suivant '+intToSTR(AdrSignalsuivant)+' est au '+chaine_signal(i),clyellow);
|
||||
end;
|
||||
if (combine=12) or (combine=13) then
|
||||
begin
|
||||
Aig:=Aiguille_deviee(Adresse);
|
||||
// si aiguille locale déviée
|
||||
if (aig<>0) then Affiche('Le signal est à rappel 30 car l''aiguillage suivant '+intToSTR(Aig)+' est dévié',clyellow);
|
||||
if (aig<>0) then Affiche('Le signal '+intToSTR(adresse)+' est à rappel 30 car l''aiguillage suivant '+intToSTR(Aig)+' est dévié',clyellow);
|
||||
end;
|
||||
|
||||
end;
|
||||
@@ -13368,12 +13508,34 @@ procedure TFormPrinc.EditAdrTrainChange(Sender: TObject);
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormPrinc.SplitterMoved(Sender: TObject);
|
||||
procedure TFormPrinc.SplitterVMoved(Sender: TObject);
|
||||
var pdroite : integer;
|
||||
begin
|
||||
ScrollBox1.left:=Splitter.Left+10;
|
||||
ScrollBox1.width:=width-scrollBox1.left-20;
|
||||
Affiche(intToSTR(splitterV.Left),clred);
|
||||
exit;
|
||||
//fenrich.width:=splitterV.left;
|
||||
|
||||
if not(avec_splitter) then exit;
|
||||
//Affiche('splittermoved',clyellow);
|
||||
|
||||
|
||||
pdroite:=SplitterV.Left+40;
|
||||
|
||||
panel2.Width:=pdroite;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormPrinc.PopupMenuFeuPopup(Sender: TObject);
|
||||
var s : string;
|
||||
P_image_pilote : Timage;
|
||||
adressefeuclic: integer;
|
||||
ob : TPopupMenu;
|
||||
begin
|
||||
// AdrPilote est récupéré de l'event OnMouseDown de l'image du signal qui se produit avant
|
||||
ob:=Sender as Tpopupmenu;
|
||||
s:=ob.Items[0].Caption;
|
||||
ob.Items[0].Caption:='Propriétés du signal '+intToSTR(AdrPilote);
|
||||
ob.Items[1].Caption:='Informations du signal '+intToSTR(AdrPilote);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
BIN
Binary file not shown.
+5
-5
@@ -505,7 +505,7 @@ object FormSR: TFormSR
|
||||
object LabelErreur: TLabel
|
||||
Left = 224
|
||||
Top = 528
|
||||
Width = 3
|
||||
Width = 89
|
||||
Height = 13
|
||||
Caption = ':'
|
||||
end
|
||||
@@ -669,13 +669,13 @@ object FormSR: TFormSR
|
||||
TabOrder = 15
|
||||
OnChange = ComboBoxAdr16Change
|
||||
end
|
||||
object ButtonOK: TButton
|
||||
Left = 56
|
||||
object BitBtnok: TBitBtn
|
||||
Left = 16
|
||||
Top = 520
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'OK'
|
||||
TabOrder = 16
|
||||
OnClick = ButtonOKClick
|
||||
OnClick = BitBtnokClick
|
||||
Kind = bkOK
|
||||
end
|
||||
end
|
||||
|
||||
+10
-7
@@ -7,7 +7,8 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, ExtCtrls , UnitPrinc, UnitConfig;
|
||||
Dialogs, StdCtrls, ExtCtrls , UnitPrinc, UnitConfig,
|
||||
Buttons;
|
||||
|
||||
type
|
||||
TFormSR = class(TForm)
|
||||
@@ -94,8 +95,8 @@ type
|
||||
LabelCV32: TLabel;
|
||||
ComboBoxAdr15: TComboBox;
|
||||
ComboBoxAdr16: TComboBox;
|
||||
ButtonOK: TButton;
|
||||
LabelErreur: TLabel;
|
||||
BitBtnok: TBitBtn;
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure ComboBoxAdr1Change(Sender: TObject);
|
||||
procedure ComboBoxAdr2Change(Sender: TObject);
|
||||
@@ -113,8 +114,8 @@ type
|
||||
procedure ComboBoxAdr14Change(Sender: TObject);
|
||||
procedure ComboBoxAdr15Change(Sender: TObject);
|
||||
procedure ComboBoxAdr16Change(Sender: TObject);
|
||||
procedure ButtonOKClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure BitBtnokClick(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
@@ -464,10 +465,7 @@ begin
|
||||
maj_db;
|
||||
end;
|
||||
|
||||
procedure TFormSR.ButtonOKClick(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormSR.FormCreate(Sender: TObject);
|
||||
var i : integer;
|
||||
@@ -493,5 +491,10 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormSR.BitBtnokClick(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
Binary file not shown.
+20
-8
@@ -1,10 +1,12 @@
|
||||
object FormSimulation: TFormSimulation
|
||||
Left = 332
|
||||
Top = 283
|
||||
Width = 447
|
||||
Height = 189
|
||||
Caption = 'Simulation'
|
||||
Color = clBtnFace
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Ouvrir un fichier de simulation'
|
||||
ClientHeight = 150
|
||||
ClientWidth = 431
|
||||
Color = clActiveBorder
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
@@ -16,7 +18,7 @@ object FormSimulation: TFormSimulation
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 8
|
||||
Top = 32
|
||||
Top = 24
|
||||
Width = 369
|
||||
Height = 16
|
||||
Caption = 'Intervalle de temps entre deux '#233'v'#232'nements d'#233'tecteurs (x100ms)'
|
||||
@@ -29,7 +31,7 @@ object FormSimulation: TFormSimulation
|
||||
end
|
||||
object ButtonCharge: TButton
|
||||
Left = 160
|
||||
Top = 96
|
||||
Top = 104
|
||||
Width = 105
|
||||
Height = 41
|
||||
Caption = 'Charger un fichier de simulation'
|
||||
@@ -39,7 +41,7 @@ object FormSimulation: TFormSimulation
|
||||
end
|
||||
object EditIntervalle: TEdit
|
||||
Left = 384
|
||||
Top = 32
|
||||
Top = 24
|
||||
Width = 41
|
||||
Height = 21
|
||||
TabOrder = 1
|
||||
@@ -49,12 +51,22 @@ object FormSimulation: TFormSimulation
|
||||
end
|
||||
object CheckAffTick: TCheckBox
|
||||
Left = 64
|
||||
Top = 64
|
||||
Top = 48
|
||||
Width = 313
|
||||
Height = 17
|
||||
Caption = 'RAZ des trains et de leurs placements avant de d'#233'marrer'
|
||||
TabOrder = 2
|
||||
end
|
||||
object CheckEvalroutes: TCheckBox
|
||||
Left = 64
|
||||
Top = 64
|
||||
Width = 345
|
||||
Height = 17
|
||||
Caption =
|
||||
'Affichage de l'#39#233'valuation des routes des trains dans la fen'#234'tre ' +
|
||||
'debug'
|
||||
TabOrder = 3
|
||||
end
|
||||
object OpenDialog: TOpenDialog
|
||||
Left = 48
|
||||
Top = 96
|
||||
|
||||
@@ -13,6 +13,7 @@ type
|
||||
EditIntervalle: TEdit;
|
||||
Label1: TLabel;
|
||||
CheckAffTick: TCheckBox;
|
||||
CheckEvalroutes: TCheckBox;
|
||||
procedure ButtonChargeClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure EditIntervalleKeyPress(Sender: TObject; var Key: Char);
|
||||
@@ -136,6 +137,7 @@ begin
|
||||
if openDialog.Execute then
|
||||
begin
|
||||
if checkAffTick.Checked then raz_tout;
|
||||
if checkEvalRoutes.Checked then TraceListe:=true;
|
||||
s:=openDialog.FileName;
|
||||
ouvre_simulation(s);
|
||||
end;
|
||||
|
||||
BIN
Binary file not shown.
+315
-293
@@ -1,8 +1,8 @@
|
||||
object FormTCO: TFormTCO
|
||||
Left = 132
|
||||
Top = 127
|
||||
Width = 1132
|
||||
Height = 728
|
||||
Left = 217
|
||||
Top = 60
|
||||
Width = 1142
|
||||
Height = 678
|
||||
VertScrollBar.Visible = False
|
||||
Caption = 'FormTCO'
|
||||
Color = clBtnFace
|
||||
@@ -17,12 +17,13 @@ object FormTCO: TFormTCO
|
||||
Position = poScreenCenter
|
||||
OnActivate = FormActivate
|
||||
OnCreate = FormCreate
|
||||
OnDockOver = FormDockOver
|
||||
OnDragOver = FormDragOver
|
||||
OnKeyDown = FormKeyDown
|
||||
OnKeyPress = FormKeyPress
|
||||
OnMouseWheel = FormMouseWheel
|
||||
DesignSize = (
|
||||
1124
|
||||
697)
|
||||
1126
|
||||
639)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object LabelCoord: TLabel
|
||||
@@ -65,15 +66,9 @@ object FormTCO: TFormTCO
|
||||
Height = 13
|
||||
Caption = '0'
|
||||
end
|
||||
object ImageTemp: TImage
|
||||
Left = 24
|
||||
Top = 394
|
||||
Width = 97
|
||||
Height = 97
|
||||
end
|
||||
object Label19: TLabel
|
||||
Left = 1068
|
||||
Top = 441
|
||||
Left = 1078
|
||||
Top = 391
|
||||
Width = 32
|
||||
Height = 13
|
||||
Anchors = [akRight, akBottom]
|
||||
@@ -85,11 +80,23 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImageTemp: TImage
|
||||
Left = 976
|
||||
Top = 96
|
||||
Width = 97
|
||||
Height = 97
|
||||
end
|
||||
object ImageTemp2: TImage
|
||||
Left = 976
|
||||
Top = 208
|
||||
Width = 97
|
||||
Height = 97
|
||||
end
|
||||
object ScrollBox: TScrollBox
|
||||
Left = 8
|
||||
Top = 18
|
||||
Width = 1050
|
||||
Height = 409
|
||||
Width = 828
|
||||
Height = 351
|
||||
HorzScrollBar.Smooth = True
|
||||
HorzScrollBar.Tracking = True
|
||||
VertScrollBar.Smooth = True
|
||||
@@ -100,14 +107,15 @@ object FormTCO: TFormTCO
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
DesignSize = (
|
||||
1046
|
||||
405)
|
||||
824
|
||||
347)
|
||||
object ImageTCO: TImage
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 1002
|
||||
Height = 379
|
||||
Width = 716
|
||||
Height = 305
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
AutoSize = True
|
||||
ParentShowHint = False
|
||||
PopupMenu = PopupMenu1
|
||||
ShowHint = True
|
||||
@@ -120,14 +128,16 @@ object FormTCO: TFormTCO
|
||||
end
|
||||
end
|
||||
object TrackBarZoom: TTrackBar
|
||||
Left = 1068
|
||||
Left = 1078
|
||||
Top = 18
|
||||
Width = 41
|
||||
Height = 400
|
||||
Height = 350
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
Ctl3D = True
|
||||
Max = 50
|
||||
Min = 20
|
||||
Orientation = trVertical
|
||||
ParentCtl3D = False
|
||||
Position = 20
|
||||
TabOrder = 1
|
||||
TickMarks = tmTopLeft
|
||||
@@ -135,8 +145,8 @@ object FormTCO: TFormTCO
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 522
|
||||
Width = 1114
|
||||
Top = 472
|
||||
Width = 1124
|
||||
Height = 165
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
Color = clActiveBorder
|
||||
@@ -149,18 +159,8 @@ object FormTCO: TFormTCO
|
||||
TabOrder = 2
|
||||
OnDragOver = Panel1DragOver
|
||||
DesignSize = (
|
||||
1114
|
||||
1124
|
||||
165)
|
||||
object ImagePalette5: TImage
|
||||
Left = 520
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette5DragOver
|
||||
OnEndDrag = ImagePalette5EndDrag
|
||||
OnMouseDown = ImagePalette5MouseDown
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 216
|
||||
Top = 22
|
||||
@@ -174,16 +174,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette2: TImage
|
||||
Left = 304
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette2DragOver
|
||||
OnEndDrag = ImagePalette2EndDrag
|
||||
OnMouseDown = ImagePalette2MouseDown
|
||||
end
|
||||
object Label7: TLabel
|
||||
Left = 288
|
||||
Top = 22
|
||||
@@ -210,59 +200,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette1: TImage
|
||||
Left = 232
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
Hint = 'Voie pouvant porter un d'#233'tecteur'
|
||||
DragMode = dmAutomatic
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnDragOver = ImagePalette1DragOver
|
||||
OnEndDrag = ImagePalette1EndDrag
|
||||
OnMouseDown = ImagePalette1MouseDown
|
||||
end
|
||||
object ImagePalette6: TImage
|
||||
Left = 232
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette6DragOver
|
||||
OnEndDrag = ImagePalette6EndDrag
|
||||
OnMouseDown = ImagePalette6MouseDown
|
||||
end
|
||||
object ImagePalette7: TImage
|
||||
Left = 304
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette7DragOver
|
||||
OnEndDrag = ImagePalette7EndDrag
|
||||
OnMouseDown = ImagePalette7MouseDown
|
||||
end
|
||||
object ImagePalette8: TImage
|
||||
Left = 376
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette8DragOver
|
||||
OnEndDrag = ImagePalette8EndDrag
|
||||
OnMouseDown = ImagePalette8MouseDown
|
||||
end
|
||||
object ImagePalette9: TImage
|
||||
Left = 448
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette9DragOver
|
||||
OnEndDrag = ImagePalette9EndDrag
|
||||
OnMouseDown = ImagePalette9MouseDown
|
||||
end
|
||||
object Label11: TLabel
|
||||
Left = 216
|
||||
Top = 70
|
||||
@@ -315,25 +252,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette3: TImage
|
||||
Left = 376
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette3DragOver
|
||||
OnEndDrag = ImagePalette3EndDrag
|
||||
OnMouseDown = ImagePalette3MouseDown
|
||||
end
|
||||
object ImagePalette4: TImage
|
||||
Left = 448
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnEndDrag = ImagePalette4EndDrag
|
||||
OnMouseDown = ImagePalette4MouseDown
|
||||
end
|
||||
object Label8: TLabel
|
||||
Left = 360
|
||||
Top = 22
|
||||
@@ -360,16 +278,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette10: TImage
|
||||
Left = 232
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette10DragOver
|
||||
OnEndDrag = ImageDiag10EndDrag
|
||||
OnMouseDown = ImagePalette10MouseDown
|
||||
end
|
||||
object Label16: TLabel
|
||||
Left = 208
|
||||
Top = 118
|
||||
@@ -383,16 +291,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette11: TImage
|
||||
Left = 304
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette11DragOver
|
||||
OnEndDrag = ImageDiag11EndDrag
|
||||
OnMouseDown = ImagePalette11MouseDown
|
||||
end
|
||||
object Label17: TLabel
|
||||
Left = 280
|
||||
Top = 118
|
||||
@@ -406,22 +304,8 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette30: TImage
|
||||
Left = 456
|
||||
Top = 104
|
||||
Width = 25
|
||||
Height = 41
|
||||
Hint = 'Signal'
|
||||
DragMode = dmAutomatic
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
Stretch = True
|
||||
OnDragOver = ImagePalette30DragOver
|
||||
OnEndDrag = ImagePalette30EndDrag
|
||||
OnMouseDown = ImagePalette30MouseDown
|
||||
end
|
||||
object Label18: TLabel
|
||||
Left = 424
|
||||
Left = 352
|
||||
Top = 118
|
||||
Width = 18
|
||||
Height = 19
|
||||
@@ -433,16 +317,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette12: TImage
|
||||
Left = 592
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette12DragOver
|
||||
OnEndDrag = ImagePalette12EndDrag
|
||||
OnMouseDown = ImagePalette12MouseDown
|
||||
end
|
||||
object Label20: TLabel
|
||||
Left = 568
|
||||
Top = 22
|
||||
@@ -469,16 +343,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette13: TImage
|
||||
Left = 664
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette13DragOver
|
||||
OnEndDrag = ImagePalette13EndDrag
|
||||
OnMouseDown = ImagePalette13MouseDown
|
||||
end
|
||||
object Label21: TLabel
|
||||
Left = 712
|
||||
Top = 22
|
||||
@@ -492,16 +356,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette14: TImage
|
||||
Left = 736
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette14DragOver
|
||||
OnEndDrag = ImagePalette14EndDrag
|
||||
OnMouseDown = ImagePalette14MouseDown
|
||||
end
|
||||
object Label22: TLabel
|
||||
Left = 784
|
||||
Top = 22
|
||||
@@ -515,26 +369,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette15: TImage
|
||||
Left = 808
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette15DragOver
|
||||
OnEndDrag = ImagePalette15EndDrag
|
||||
OnMouseDown = ImagePalette15MouseDown
|
||||
end
|
||||
object ImagePalette16: TImage
|
||||
Left = 520
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette16DragOver
|
||||
OnEndDrag = ImagePalette16EndDrag
|
||||
OnMouseDown = ImagePalette16MouseDown
|
||||
end
|
||||
object Label24: TLabel
|
||||
Left = 496
|
||||
Top = 70
|
||||
@@ -548,16 +382,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette17: TImage
|
||||
Left = 592
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette17DragOver
|
||||
OnEndDrag = ImagePalette17EndDrag
|
||||
OnMouseDown = ImagePalette17MouseDown
|
||||
end
|
||||
object Label25: TLabel
|
||||
Left = 568
|
||||
Top = 70
|
||||
@@ -571,16 +395,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette18: TImage
|
||||
Left = 664
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette18DragOver
|
||||
OnEndDrag = ImagePalette18EndDrag
|
||||
OnMouseDown = ImagePalette18MouseDown
|
||||
end
|
||||
object Label26: TLabel
|
||||
Left = 640
|
||||
Top = 70
|
||||
@@ -594,16 +408,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette19: TImage
|
||||
Left = 736
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette19DragOver
|
||||
OnEndDrag = ImagePalette19EndDrag
|
||||
OnMouseDown = ImagePalette19MouseDown
|
||||
end
|
||||
object Label27: TLabel
|
||||
Left = 712
|
||||
Top = 70
|
||||
@@ -617,16 +421,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette20: TImage
|
||||
Left = 808
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
DragMode = dmAutomatic
|
||||
OnDragOver = ImagePalette20DragOver
|
||||
OnEndDrag = ImagePalette20EndDrag
|
||||
OnMouseDown = ImagePalette20MouseDown
|
||||
end
|
||||
object Label28: TLabel
|
||||
Left = 784
|
||||
Top = 70
|
||||
@@ -640,19 +434,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette21: TImage
|
||||
Left = 880
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
Hint = 'Croisement ou TJD ou TJS'
|
||||
DragMode = dmAutomatic
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnDragOver = ImagePalette21DragOver
|
||||
OnEndDrag = ImagePalette21EndDrag
|
||||
OnMouseDown = ImagePalette21MouseDown
|
||||
end
|
||||
object Label29: TLabel
|
||||
Left = 856
|
||||
Top = 22
|
||||
@@ -666,19 +447,6 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette22: TImage
|
||||
Left = 952
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
Hint = 'Croisement ou TJD ou TJS'
|
||||
DragMode = dmAutomatic
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnDragOver = ImagePalette22DragOver
|
||||
OnEndDrag = ImagePalette22EndDrag
|
||||
OnMouseDown = ImagePalette22MouseDown
|
||||
end
|
||||
object Label30: TLabel
|
||||
Left = 928
|
||||
Top = 22
|
||||
@@ -692,25 +460,12 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette23: TImage
|
||||
Left = 376
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
Hint = 'Quai'
|
||||
DragMode = dmAutomatic
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnDragOver = ImagePalette23DragOver
|
||||
OnEndDrag = ImagePalette23EndDrag
|
||||
OnMouseDown = ImagePalette23MouseDown
|
||||
end
|
||||
object Label31: TLabel
|
||||
Left = 352
|
||||
Left = 424
|
||||
Top = 118
|
||||
Width = 18
|
||||
Height = 19
|
||||
Caption = '23'
|
||||
Caption = '31'
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -16
|
||||
@@ -718,8 +473,275 @@ object FormTCO: TFormTCO
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 856
|
||||
Top = 70
|
||||
Width = 18
|
||||
Height = 19
|
||||
Caption = '24'
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -16
|
||||
Font.Name = 'Arial'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label32: TLabel
|
||||
Left = 928
|
||||
Top = 70
|
||||
Width = 18
|
||||
Height = 19
|
||||
Caption = '25'
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -16
|
||||
Font.Name = 'Arial'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object ImagePalette1: TImage
|
||||
Left = 232
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette1DragOver
|
||||
OnEndDrag = ImagePalette1EndDrag
|
||||
OnMouseDown = ImagePalette1MouseDown
|
||||
end
|
||||
object ImagePalette2: TImage
|
||||
Left = 304
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette2DragOver
|
||||
OnEndDrag = ImagePalette2EndDrag
|
||||
OnMouseDown = ImagePalette2MouseDown
|
||||
end
|
||||
object ImagePalette3: TImage
|
||||
Left = 376
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette3DragOver
|
||||
OnEndDrag = ImagePalette3EndDrag
|
||||
OnMouseDown = ImagePalette3MouseDown
|
||||
end
|
||||
object ImagePalette4: TImage
|
||||
Left = 448
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette4DragOver
|
||||
OnEndDrag = ImagePalette4EndDrag
|
||||
OnMouseDown = ImagePalette4MouseDown
|
||||
end
|
||||
object ImagePalette5: TImage
|
||||
Left = 520
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette5DragOver
|
||||
OnEndDrag = ImagePalette5EndDrag
|
||||
OnMouseDown = ImagePalette5MouseDown
|
||||
end
|
||||
object ImagePalette12: TImage
|
||||
Left = 592
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette12DragOver
|
||||
OnEndDrag = ImagePalette12EndDrag
|
||||
OnMouseDown = ImagePalette12MouseDown
|
||||
end
|
||||
object ImagePalette13: TImage
|
||||
Left = 664
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette13DragOver
|
||||
OnEndDrag = ImagePalette13EndDrag
|
||||
OnMouseDown = ImagePalette13MouseDown
|
||||
end
|
||||
object ImagePalette14: TImage
|
||||
Left = 736
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette14DragOver
|
||||
OnEndDrag = ImagePalette14EndDrag
|
||||
OnMouseDown = ImagePalette14MouseDown
|
||||
end
|
||||
object ImagePalette15: TImage
|
||||
Left = 808
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette15DragOver
|
||||
OnEndDrag = ImagePalette15EndDrag
|
||||
OnMouseDown = ImagePalette15MouseDown
|
||||
end
|
||||
object ImagePalette21: TImage
|
||||
Left = 880
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette21DragOver
|
||||
OnEndDrag = ImagePalette21EndDrag
|
||||
OnMouseDown = ImagePalette21MouseDown
|
||||
end
|
||||
object ImagePalette22: TImage
|
||||
Left = 952
|
||||
Top = 8
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette22DragOver
|
||||
OnEndDrag = ImagePalette22EndDrag
|
||||
OnMouseDown = ImagePalette22MouseDown
|
||||
end
|
||||
object ImagePalette6: TImage
|
||||
Left = 232
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette6DragOver
|
||||
OnEndDrag = ImagePalette6EndDrag
|
||||
OnMouseDown = ImagePalette6MouseDown
|
||||
end
|
||||
object ImagePalette7: TImage
|
||||
Left = 304
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette7DragOver
|
||||
OnEndDrag = ImagePalette7EndDrag
|
||||
OnMouseDown = ImagePalette7MouseDown
|
||||
end
|
||||
object ImagePalette9: TImage
|
||||
Left = 448
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette9DragOver
|
||||
OnEndDrag = ImagePalette9EndDrag
|
||||
OnMouseDown = ImagePalette9MouseDown
|
||||
end
|
||||
object ImagePalette16: TImage
|
||||
Left = 520
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette16DragOver
|
||||
OnEndDrag = ImagePalette16EndDrag
|
||||
OnMouseDown = ImagePalette16MouseDown
|
||||
end
|
||||
object ImagePalette17: TImage
|
||||
Left = 592
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette17DragOver
|
||||
OnEndDrag = ImagePalette17EndDrag
|
||||
OnMouseDown = ImagePalette17MouseDown
|
||||
end
|
||||
object ImagePalette18: TImage
|
||||
Left = 664
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette18DragOver
|
||||
OnEndDrag = ImagePalette18EndDrag
|
||||
OnMouseDown = ImagePalette18MouseDown
|
||||
end
|
||||
object ImagePalette19: TImage
|
||||
Left = 736
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette19DragOver
|
||||
OnEndDrag = ImagePalette19EndDrag
|
||||
OnMouseDown = ImagePalette19MouseDown
|
||||
end
|
||||
object ImagePalette20: TImage
|
||||
Left = 808
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette20DragOver
|
||||
OnEndDrag = ImagePalette20EndDrag
|
||||
OnMouseDown = ImagePalette20MouseDown
|
||||
end
|
||||
object ImagePalette24: TImage
|
||||
Left = 880
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette24DragOver
|
||||
OnEndDrag = ImagePalette24EndDrag
|
||||
OnMouseDown = ImagePalette24MouseDown
|
||||
end
|
||||
object ImagePalette25: TImage
|
||||
Left = 952
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette25DragOver
|
||||
OnEndDrag = ImagePalette25EndDrag
|
||||
OnMouseDown = ImagePalette25MouseDown
|
||||
end
|
||||
object ImagePalette10: TImage
|
||||
Left = 232
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette10DragOver
|
||||
OnEndDrag = ImagePalette10EndDrag
|
||||
OnMouseDown = ImagePalette10MouseDown
|
||||
end
|
||||
object ImagePalette11: TImage
|
||||
Left = 304
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette11DragOver
|
||||
OnEndDrag = ImagePalette11EndDrag
|
||||
OnMouseDown = ImagePalette11MouseDown
|
||||
end
|
||||
object ImagePalette31: TImage
|
||||
Left = 448
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 41
|
||||
Hint = 'Quai'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
OnDragOver = ImagePalette31DragOver
|
||||
OnEndDrag = ImagePalette31EndDrag
|
||||
OnMouseDown = ImagePalette31MouseDown
|
||||
end
|
||||
object ImagePalette30: TImage
|
||||
Left = 384
|
||||
Top = 104
|
||||
Width = 25
|
||||
Height = 41
|
||||
Hint = 'Signal'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
Stretch = True
|
||||
OnDragOver = ImagePalette30DragOver
|
||||
OnEndDrag = ImagePalette30EndDrag
|
||||
OnMouseDown = ImagePalette30MouseDown
|
||||
end
|
||||
object ImagePalette8: TImage
|
||||
Left = 376
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 41
|
||||
OnDragOver = ImagePalette8DragOver
|
||||
OnEndDrag = ImagePalette8EndDrag
|
||||
OnMouseDown = ImagePalette8MouseDown
|
||||
end
|
||||
object ButtonSauveTCO: TButton
|
||||
Left = 1006
|
||||
Left = 1016
|
||||
Top = 48
|
||||
Width = 92
|
||||
Height = 33
|
||||
@@ -730,7 +752,7 @@ object FormTCO: TFormTCO
|
||||
OnClick = ButtonSauveTCOClick
|
||||
end
|
||||
object ButtonRedessine: TButton
|
||||
Left = 1006
|
||||
Left = 1016
|
||||
Top = 8
|
||||
Width = 92
|
||||
Height = 33
|
||||
@@ -758,7 +780,7 @@ object FormTCO: TFormTCO
|
||||
OnClick = Button2Click
|
||||
end
|
||||
object ButtonConfigTCO: TButton
|
||||
Left = 1006
|
||||
Left = 1016
|
||||
Top = 88
|
||||
Width = 92
|
||||
Height = 33
|
||||
@@ -768,8 +790,8 @@ object FormTCO: TFormTCO
|
||||
OnClick = ButtonConfigTCOClick
|
||||
end
|
||||
object ButtonSimu: TButton
|
||||
Left = 864
|
||||
Top = 80
|
||||
Left = 760
|
||||
Top = 136
|
||||
Width = 113
|
||||
Height = 25
|
||||
Caption = 'Simu canton occup'#233
|
||||
@@ -777,7 +799,7 @@ object FormTCO: TFormTCO
|
||||
OnClick = ButtonSimuClick
|
||||
end
|
||||
object ButtonMasquer: TButton
|
||||
Left = 1006
|
||||
Left = 1016
|
||||
Top = 128
|
||||
Width = 92
|
||||
Height = 33
|
||||
@@ -948,7 +970,7 @@ object FormTCO: TFormTCO
|
||||
end
|
||||
end
|
||||
object buttonRaz: TButton
|
||||
Left = 902
|
||||
Left = 912
|
||||
Top = 128
|
||||
Width = 92
|
||||
Height = 33
|
||||
@@ -969,8 +991,8 @@ object FormTCO: TFormTCO
|
||||
end
|
||||
end
|
||||
object ButtonAfficheBandeau: TButton
|
||||
Left = 1060
|
||||
Top = 465
|
||||
Left = 1070
|
||||
Top = 415
|
||||
Width = 57
|
||||
Height = 33
|
||||
Anchors = [akRight, akBottom]
|
||||
|
||||
+1284
-496
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
+39
-34
@@ -19,7 +19,7 @@ object FormPlace: TFormPlace
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 32
|
||||
Left = 40
|
||||
Top = 8
|
||||
Width = 229
|
||||
Height = 20
|
||||
@@ -123,22 +123,13 @@ object FormPlace: TFormPlace
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Buttonferme: TButton
|
||||
Left = 16
|
||||
Top = 416
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Fermer'
|
||||
TabOrder = 0
|
||||
OnClick = ButtonfermeClick
|
||||
end
|
||||
object ButtonInitAig: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 273
|
||||
Height = 25
|
||||
Caption = 'Positionner les aiguillages en position initiale'
|
||||
TabOrder = 1
|
||||
TabOrder = 0
|
||||
OnClick = ButtonInitAigClick
|
||||
end
|
||||
object ButtonSauve: TButton
|
||||
@@ -146,8 +137,13 @@ object FormPlace: TFormPlace
|
||||
Top = 376
|
||||
Width = 273
|
||||
Height = 25
|
||||
Hint =
|
||||
'Enregistre la configuration de placement dans le fichier de conf' +
|
||||
'iguration'
|
||||
Caption = 'Enregistrer la configuration de placement'
|
||||
TabOrder = 2
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
OnClick = ButtonSauveClick
|
||||
end
|
||||
object Edit1: TEdit
|
||||
@@ -158,7 +154,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 1'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
OnChange = Edit1Change
|
||||
end
|
||||
object Edit2: TEdit
|
||||
@@ -169,7 +165,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 2'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
TabOrder = 3
|
||||
OnChange = Edit2Change
|
||||
end
|
||||
object Edit3: TEdit
|
||||
@@ -180,7 +176,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 3'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 5
|
||||
TabOrder = 4
|
||||
OnChange = Edit3Change
|
||||
end
|
||||
object Edit4: TEdit
|
||||
@@ -191,7 +187,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 4'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
OnChange = Edit4Change
|
||||
end
|
||||
object Edit5: TEdit
|
||||
@@ -202,7 +198,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 5'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
OnChange = Edit5Change
|
||||
end
|
||||
object Edit6: TEdit
|
||||
@@ -213,7 +209,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur recevant le train 6'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 8
|
||||
TabOrder = 7
|
||||
OnChange = Edit6Change
|
||||
end
|
||||
object ButtonPlace: TButton
|
||||
@@ -222,7 +218,7 @@ object FormPlace: TFormPlace
|
||||
Width = 273
|
||||
Height = 25
|
||||
Caption = 'Placer les trains sur les d'#233'tecteurs ci-dessus'
|
||||
TabOrder = 9
|
||||
TabOrder = 8
|
||||
OnClick = ButtonPlaceClick
|
||||
end
|
||||
object ButtonLanceRoutage: TButton
|
||||
@@ -237,7 +233,7 @@ object FormPlace: TFormPlace
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
TabOrder = 9
|
||||
OnClick = ButtonLanceRoutageClick
|
||||
end
|
||||
object Button1: TButton
|
||||
@@ -246,7 +242,7 @@ object FormPlace: TFormPlace
|
||||
Width = 81
|
||||
Height = 25
|
||||
Caption = 'Config trains'
|
||||
TabOrder = 11
|
||||
TabOrder = 10
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object ButtonArretroutage: TButton
|
||||
@@ -255,7 +251,7 @@ object FormPlace: TFormPlace
|
||||
Width = 273
|
||||
Height = 25
|
||||
Caption = 'Arr'#234't du roulage'
|
||||
TabOrder = 12
|
||||
TabOrder = 11
|
||||
OnClick = ButtonArretroutageClick
|
||||
end
|
||||
object CheckInverse1: TCheckBox
|
||||
@@ -267,7 +263,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 13
|
||||
TabOrder = 12
|
||||
OnClick = CheckInverse1Click
|
||||
end
|
||||
object CheckInverse2: TCheckBox
|
||||
@@ -279,7 +275,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 14
|
||||
TabOrder = 13
|
||||
OnClick = CheckInverse2Click
|
||||
end
|
||||
object CheckInverse3: TCheckBox
|
||||
@@ -291,7 +287,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 15
|
||||
TabOrder = 14
|
||||
OnClick = CheckInverse3Click
|
||||
end
|
||||
object CheckInverse4: TCheckBox
|
||||
@@ -303,7 +299,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 16
|
||||
TabOrder = 15
|
||||
OnClick = CheckInverse4Click
|
||||
end
|
||||
object CheckInverse5: TCheckBox
|
||||
@@ -315,7 +311,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 17
|
||||
TabOrder = 16
|
||||
OnClick = CheckInverse5Click
|
||||
end
|
||||
object CheckInverse6: TCheckBox
|
||||
@@ -327,7 +323,7 @@ object FormPlace: TFormPlace
|
||||
Caption = 'sens inverse'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 18
|
||||
TabOrder = 17
|
||||
OnClick = CheckInverse6Click
|
||||
end
|
||||
object EditDir1: TEdit
|
||||
@@ -338,7 +334,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 1'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 19
|
||||
TabOrder = 18
|
||||
OnChange = EditDir1Change
|
||||
end
|
||||
object EditDir2: TEdit
|
||||
@@ -349,7 +345,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 2'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 20
|
||||
TabOrder = 19
|
||||
OnChange = EditDir2Change
|
||||
end
|
||||
object EditDir3: TEdit
|
||||
@@ -360,7 +356,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 3'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 21
|
||||
TabOrder = 20
|
||||
OnChange = EditDir3Change
|
||||
end
|
||||
object EditDir4: TEdit
|
||||
@@ -371,7 +367,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 4'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 22
|
||||
TabOrder = 21
|
||||
OnChange = EditDir4Change
|
||||
end
|
||||
object EditDir5: TEdit
|
||||
@@ -382,7 +378,7 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 5'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 23
|
||||
TabOrder = 22
|
||||
OnChange = EditDir5Change
|
||||
end
|
||||
object EditDir6: TEdit
|
||||
@@ -393,7 +389,16 @@ object FormPlace: TFormPlace
|
||||
Hint = 'D'#233'tecteur suivant vers lequel doit se diriger le train 6'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 24
|
||||
TabOrder = 23
|
||||
OnChange = EditDir6Change
|
||||
end
|
||||
object BitBtn1: TBitBtn
|
||||
Left = 16
|
||||
Top = 416
|
||||
Width = 73
|
||||
Height = 25
|
||||
TabOrder = 24
|
||||
OnClick = BitBtn1Click
|
||||
Kind = bkClose
|
||||
end
|
||||
end
|
||||
|
||||
+536
-520
File diff suppressed because it is too large
Load Diff
Binary file not shown.
+2
-2
@@ -23,8 +23,8 @@ var
|
||||
Lance_verif : integer;
|
||||
verifVersion,notificationVersion : boolean;
|
||||
|
||||
Const Version='5.6'; // sert à la comparaison de la version publiée
|
||||
SousVersion=' '; // en cas d'absence de sous version mettre un espace
|
||||
Const Version='5.7'; // sert à la comparaison de la version publiée
|
||||
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
@@ -150,5 +150,11 @@ version 5.51 : Renforcement de la v
|
||||
version 5.52 : Correction bug exploitation TCO
|
||||
version 5.6 : Ajout d'affichage d'informations supplémentaires
|
||||
Couleur de fond définissable pour chaque cellule du TCO ou une zone.
|
||||
Correction d'un bug sur les trackbar du TCO sous Windows 10/11
|
||||
version 5.7 : Glisser-déposer du TCO avec les icônes de placement.
|
||||
Vérification des incompatibilités de placement des icônes du TCO.
|
||||
Gestion des passages à niveau par comptage/décomptage des trains.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user