This commit is contained in:
f1iwq2
2022-11-26 20:10:21 +01:00
parent b8bd8c5771
commit b5b43f25a1
33 changed files with 3655 additions and 948 deletions
+5 -1
View File
@@ -12,7 +12,9 @@ uses
UnitConfigTCO in 'UnitConfigTCO.pas' {FormConfigTCO},
UnitSR in 'UnitSR.pas' {FormSR},
Unit_Pilote_aig in 'Unit_Pilote_aig.pas' {FormAig},
UnitConfigCellTCO in 'UnitConfigCellTCO.pas' {FormConfCellTCO};
UnitConfigCellTCO in 'UnitConfigCellTCO.pas' {FormConfCellTCO},
UnitDigikeijs in 'UnitDigikeijs.pas' {FormDigikeijs},
UnitCDF in 'UnitCDF.pas' {FormCDF};
{$R *.res}
@@ -28,5 +30,7 @@ begin
Application.CreateForm(TFormSR, FormSR);
Application.CreateForm(TFormAig, FormAig);
Application.CreateForm(TFormConfCellTCO, FormConfCellTCO);
Application.CreateForm(TFormDigikeijs, FormDigikeijs);
Application.CreateForm(TFormCDF, FormCDF);
Application.Run;
end.
Binary file not shown.
BIN
View File
Binary file not shown.
+396
View File
@@ -0,0 +1,396 @@
object FormCDF: TFormCDF
Left = 368
Top = 141
BorderStyle = bsDialog
Caption = 'Configuration du d'#233'codeur CDF'
ClientHeight = 466
ClientWidth = 341
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnActivate = FormActivate
PixelsPerInch = 96
TextHeight = 13
object Label20: TLabel
Left = 16
Top = 48
Width = 184
Height = 26
Caption =
'Tables d'#39'aspects du signal en fonction du motif envoy'#233' au d'#233'code' +
'ur CDF'
WordWrap = True
end
object Label1: TLabel
Left = 8
Top = 176
Width = 32
Height = 13
Caption = 'Label1'
end
object Label2: TLabel
Left = 8
Top = 200
Width = 32
Height = 13
Caption = 'Label2'
end
object Label3: TLabel
Left = 8
Top = 224
Width = 32
Height = 13
Caption = 'Label3'
end
object Label4: TLabel
Left = 8
Top = 248
Width = 32
Height = 13
Caption = 'Label4'
end
object Label5: TLabel
Left = 8
Top = 272
Width = 32
Height = 13
Caption = 'Label5'
end
object Label6: TLabel
Left = 8
Top = 296
Width = 32
Height = 13
Caption = 'Label6'
end
object Label7: TLabel
Left = 8
Top = 320
Width = 32
Height = 13
Caption = 'Label7'
end
object Label8: TLabel
Left = 8
Top = 344
Width = 32
Height = 13
Caption = 'Label8'
end
object Label9: TLabel
Left = 8
Top = 368
Width = 32
Height = 13
Caption = 'Label9'
end
object Label10: TLabel
Left = 8
Top = 392
Width = 38
Height = 13
Caption = 'Label10'
end
object Label11: TLabel
Left = 184
Top = 200
Width = 38
Height = 13
Caption = 'Label11'
end
object Label12: TLabel
Left = 184
Top = 224
Width = 38
Height = 13
Caption = 'Label12'
end
object Label13: TLabel
Left = 184
Top = 248
Width = 38
Height = 13
Caption = 'Label13'
end
object Label14: TLabel
Left = 184
Top = 272
Width = 38
Height = 13
Caption = 'Label14'
end
object Label15: TLabel
Left = 184
Top = 296
Width = 38
Height = 13
Caption = 'Label15'
end
object Label16: TLabel
Left = 184
Top = 320
Width = 38
Height = 13
Caption = 'Label16'
end
object Label17: TLabel
Left = 184
Top = 344
Width = 38
Height = 13
Caption = 'Label17'
end
object Label18: TLabel
Left = 184
Top = 368
Width = 38
Height = 13
Caption = 'Label18'
end
object Label19: TLabel
Left = 184
Top = 392
Width = 38
Height = 13
Caption = 'Label19'
end
object ImageDigi: TImage
Left = 240
Top = 16
Width = 57
Height = 97
end
object Shape1: TShape
Left = 168
Top = 152
Width = 2
Height = 273
end
object Label21: TLabel
Left = 120
Top = 152
Width = 29
Height = 13
Caption = 'Motif'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label22: TLabel
Left = 296
Top = 176
Width = 29
Height = 13
Caption = 'Motif'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label23: TLabel
Left = 16
Top = 104
Width = 205
Height = 13
Caption = 'Nombre d'#39'adresses occup'#233'es par le signal :'
end
object LabelTitre: TLabel
Left = 16
Top = 8
Width = 63
Height = 19
Caption = 'Adresse'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold]
ParentFont = False
end
object Label24: TLabel
Left = 56
Top = 124
Width = 24
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
OnChange = Edit1Change
end
object Edit2: TEdit
Left = 120
Top = 200
Width = 25
Height = 21
TabOrder = 2
OnChange = Edit2Change
end
object Edit3: TEdit
Left = 120
Top = 224
Width = 25
Height = 21
TabOrder = 3
OnChange = Edit3Change
end
object Edit4: TEdit
Left = 120
Top = 248
Width = 25
Height = 21
TabOrder = 4
OnChange = Edit4Change
end
object Edit5: TEdit
Left = 120
Top = 272
Width = 25
Height = 21
TabOrder = 5
OnChange = Edit5Change
end
object Edit6: TEdit
Left = 120
Top = 296
Width = 25
Height = 21
TabOrder = 6
OnChange = Edit6Change
end
object Edit7: TEdit
Left = 120
Top = 320
Width = 25
Height = 21
TabOrder = 7
OnChange = Edit7Change
end
object Edit8: TEdit
Left = 120
Top = 344
Width = 25
Height = 21
TabOrder = 8
OnChange = Edit8Change
end
object Edit9: TEdit
Left = 120
Top = 368
Width = 25
Height = 21
TabOrder = 9
OnChange = Edit9Change
end
object Edit10: TEdit
Left = 120
Top = 392
Width = 25
Height = 21
TabOrder = 10
OnChange = Edit10Change
end
object Edit11: TEdit
Left = 296
Top = 200
Width = 25
Height = 21
TabOrder = 11
OnChange = Edit11Change
end
object Edit12: TEdit
Left = 296
Top = 224
Width = 25
Height = 21
TabOrder = 12
OnChange = Edit12Change
end
object Edit13: TEdit
Left = 296
Top = 248
Width = 25
Height = 21
TabOrder = 13
OnChange = Edit13Change
end
object Edit14: TEdit
Left = 296
Top = 272
Width = 25
Height = 21
TabOrder = 14
OnChange = Edit14Change
end
object Edit15: TEdit
Left = 296
Top = 296
Width = 25
Height = 21
TabOrder = 15
OnChange = Edit15Change
end
object Edit16: TEdit
Left = 296
Top = 320
Width = 25
Height = 21
TabOrder = 16
OnChange = Edit16Change
end
object Edit17: TEdit
Left = 296
Top = 344
Width = 25
Height = 21
TabOrder = 17
OnChange = Edit17Change
end
object Edit18: TEdit
Left = 296
Top = 368
Width = 25
Height = 21
TabOrder = 18
OnChange = Edit18Change
end
object Edit19: TEdit
Left = 296
Top = 392
Width = 25
Height = 21
TabOrder = 19
OnChange = Edit19Change
end
object EditNAdresses: TEdit
Left = 16
Top = 120
Width = 25
Height = 21
TabOrder = 20
Text = '1'
OnChange = EditNAdressesChange
end
end
+370
View File
@@ -0,0 +1,370 @@
unit UnitCDF;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls , unitconfig, UnitPrinc;
type
TFormCDF = class(TForm)
Button1: TButton;
Label20: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
ImageDigi: TImage;
Shape1: TShape;
Label21: TLabel;
Label22: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Label23: TLabel;
EditNAdresses: TEdit;
LabelTitre: TLabel;
Label24: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit6Change(Sender: TObject);
procedure Edit7Change(Sender: TObject);
procedure Edit8Change(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Edit10Change(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure Edit12Change(Sender: TObject);
procedure Edit13Change(Sender: TObject);
procedure Edit14Change(Sender: TObject);
procedure Edit15Change(Sender: TObject);
procedure Edit16Change(Sender: TObject);
procedure Edit18Change(Sender: TObject);
procedure Edit19Change(Sender: TObject);
procedure Edit17Change(Sender: TObject);
procedure EditNAdressesChange(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FormCDF: TFormCDF;
Adresse,Index : integer;
implementation
{$R *.dfm}
procedure TFormCDF.Button1Click(Sender: TObject);
begin
close;
end;
procedure TFormCDF.FormActivate(Sender: TObject);
var erreur : integer;
begin
Val(FormConfig.EditAdrSig.text,Adresse,erreur);
index:=index_feu(Adresse);
LabelTitre.caption:='Adresse du signal: '+intToSTR(adresse);
Label1.caption:=etats[1];
Label2.caption:=etats[2];
Label3.caption:=etats[3];
Label4.caption:=etats[4];
Label5.caption:=etats[5];
Label6.caption:=etats[6];
Label7.caption:=etats[7];
Label8.caption:=etats[8];
Label9.caption:=etats[9];
Label10.caption:=etats[10];
Label11.caption:=etats[11];
Label12.caption:=etats[12];
Label13.caption:=etats[13];
Label14.caption:=etats[14];
Label15.caption:=etats[15];
Label16.caption:=etats[16];
Label17.caption:=etats[17];
Label18.caption:=etats[18];
Label19.caption:=etats[19];
ImageDigi.Picture:=FormConfig.ImageSignal.Picture;
with ImageDigi.Picture do
begin
Bitmap.TransparentMode:=tmAuto;
Bitmap.TransparentColor:=clblue;
end;
ImageDigi.Transparent:=true;
Edit1.Text:=intToSTR(Feux[index].SR[1].sortie1); // carré
Edit2.Text:=intToSTR(Feux[index].SR[2].sortie1); // sémaphore
Edit3.Text:=intToSTR(Feux[index].SR[3].sortie1); // sémaphore cli
Edit4.Text:=intToSTR(Feux[index].SR[4].sortie1);
Edit5.Text:=intToSTR(Feux[index].SR[5].sortie1);
Edit6.Text:=intToSTR(Feux[index].SR[6].sortie1);
Edit7.Text:=intToSTR(Feux[index].SR[7].sortie1);
Edit8.Text:=intToSTR(Feux[index].SR[8].sortie1);
Edit9.Text:=intToSTR(Feux[index].SR[9].sortie1);
Edit10.Text:=intToSTR(Feux[index].SR[10].sortie1);
Edit11.Text:=intToSTR(Feux[index].SR[11].sortie1);
Edit12.Text:=intToSTR(Feux[index].SR[12].sortie1);
Edit13.Text:=intToSTR(Feux[index].SR[13].sortie1);
Edit14.Text:=intToSTR(Feux[index].SR[14].sortie1);
Edit15.Text:=intToSTR(Feux[index].SR[15].sortie1);
Edit16.Text:=intToSTR(Feux[index].SR[16].sortie1);
Edit17.Text:=intToSTR(Feux[index].SR[17].sortie1);
Edit18.Text:=intToSTR(Feux[index].SR[18].sortie1);
Edit19.Text:=intToSTR(Feux[index].SR[19].sortie1);
editNadresses.text:=intToSTR(feux[index].NA);
end;
procedure Maj_DB;
var s : string;
begin
s:=encode_sig_feux(index);
formconfig.RichSig.Lines[index-1]:=s;
aff_champs_sig_feux(index);
end;
procedure TFormCDF.Edit1Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit1.Text,Feux[index].SR[1].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit2Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit2.Text,Feux[index].SR[2].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit3Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit3.Text,Feux[index].SR[3].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit4Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit4.Text,Feux[index].SR[4].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit5Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit5.Text,Feux[index].SR[5].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit6Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit6.Text,Feux[index].SR[6].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit7Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit7.Text,Feux[index].SR[7].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit8Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit8.Text,Feux[index].SR[8].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit9Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit9.Text,Feux[index].SR[9].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit10Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit10.Text,Feux[index].SR[10].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit11Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit11.Text,Feux[index].SR[11].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit12Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit12.Text,Feux[index].SR[12].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit13Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit13.Text,Feux[index].SR[13].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit14Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit14.Text,Feux[index].SR[14].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit15Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit15.Text,Feux[index].SR[15].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit16Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit16.Text,Feux[index].SR[16].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit17Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit17.Text,Feux[index].SR[17].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit18Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit18.Text,Feux[index].SR[18].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.Edit19Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit19.Text,Feux[index].SR[19].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormCDF.EditNAdressesChange(Sender: TObject);
var erreur,i : integer;
begin
if index<>0 then
begin
val(EditNAdresses.Text,i,erreur);
if (i>0) and (i<5) then
begin
Feux[index].Na:=i;
Maj_DB;
end;
end;
end;
end.
BIN
View File
Binary file not shown.
+57 -55
View File
@@ -1,6 +1,6 @@
object FormConfig: TFormConfig
Left = 218
Top = 143
Left = 236
Top = 124
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale'
@@ -1520,27 +1520,6 @@ object FormConfig: TFormConfig
0000}
Visible = False
end
object Label19: TLabel
Left = 808
Top = 96
Width = 75
Height = 13
Caption = 'Element suivant'
end
object Label10: TLabel
Left = 792
Top = 104
Width = 105
Height = 13
Caption = 'Verrouillable au carr'#233' :'
end
object Label29: TLabel
Left = 856
Top = 76
Width = 6
Height = 13
Caption = #224
end
object Label20: TLabel
Left = 648
Top = 312
@@ -1591,7 +1570,7 @@ object FormConfig: TFormConfig
Top = 8
Width = 633
Height = 505
ActivePage = TabSheetSig
ActivePage = TabSheetAutonome
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
@@ -1993,8 +1972,8 @@ object FormConfig: TFormConfig
Caption = 'Mode autonome'
ImageIndex = 1
object Label9: TLabel
Left = 16
Top = 440
Left = 0
Top = 448
Width = 294
Height = 13
Caption = 'Ces param'#232'tres sont utilis'#233's en fonctionnement sans CDM Rail'
@@ -2005,7 +1984,7 @@ object FormConfig: TFormConfig
Top = 8
Width = 297
Height = 113
Caption = 'Acc'#232's USB/S'#233'rie '#224' l'#39'interface vers la centrale via XpressNet'
Caption = 'Acc'#232's USB/S'#233'rie '#224' l'#39'interface vers la centrale'
TabOrder = 0
object Label3: TLabel
Left = 16
@@ -2064,8 +2043,8 @@ object FormConfig: TFormConfig
Left = 8
Top = 128
Width = 297
Height = 81
Caption = '4. Ent'#234'te des trames vers l'#39'interface'
Height = 65
Caption = '4. Ent'#234'te des trames XpressNet vers l'#39'interface'
TabOrder = 1
object RadioButton1: TRadioButton
Left = 8
@@ -2083,21 +2062,13 @@ object FormConfig: TFormConfig
Caption = '1 : Ent'#234'te FF FE (interfaces natives USB)'
TabOrder = 1
end
object RadioButton3: TRadioButton
Left = 8
Top = 56
Width = 273
Height = 17
Caption = '2 : Ent'#234'te E4 - Suffixe 0D 0D 0A (arduino XpressNet)'
TabOrder = 2
end
end
object GroupBox3: TGroupBox
Left = 8
Top = 216
Top = 200
Width = 297
Height = 73
Caption = 'Acc'#232's Ethernet '#224' l'#39'interface vers la centrale via XpressNet'
Caption = 'Acc'#232's Ethernet '#224' l'#39'interface'
TabOrder = 2
object Label7: TLabel
Left = 14
@@ -2142,7 +2113,7 @@ object FormConfig: TFormConfig
BorderStyle = bsNone
Lines.Strings = (
'1. Port COM de l'#39'adresse USB de l'#39'interface XpressNet.'
'Attention de COM1 '#224' 9 - Si le port de l'#39'interface USB>9, il '
'Attention de COM1 '#224' 30 - Si le port de l'#39'interface USB>30, il '
'faut le changer manuellement dans le gestionnaire des '
'p'#233'riph'#233'riques. Si COMX : Signaux complexes d'#233'tecte le'
'port automatiquement (mais le d'#233'marrage est plus long)')
@@ -2190,36 +2161,34 @@ object FormConfig: TFormConfig
Left = 312
Top = 312
Width = 297
Height = 73
Height = 57
BevelInner = bvLowered
BevelKind = bkFlat
BorderStyle = bsNone
Lines.Strings = (
'4. Pour l'#39'utilisation d'#39'interfaces s'#233'rie (GENLI), cette valeur '
'doit '#234'tre '#224' 0. Pour les interfaces utilisant nativement de '
'l'#39'USB, cette valeur doit '#234'tre '#224' 1. '
'La valeur 2 est utilis'#233'e exclusivement pour des interfaces '#224' '
'base d'#39'arduino pour xpressnet.')
'l'#39'USB, cette valeur doit '#234'tre '#224' 1. ')
ReadOnly = True
TabOrder = 6
end
object GroupBox9: TGroupBox
Left = 8
Top = 296
Top = 280
Width = 297
Height = 129
Height = 121
Caption = 'Au d'#233'marrage de signaux complexes en mode autonome'
TabOrder = 7
object Label32: TLabel
Left = 14
Top = 50
Top = 42
Width = 200
Height = 13
Caption = 'Temporisation de s'#233'quencement d'#39'init (ms)'
end
object CheckBoxInitAig: TCheckBox
Left = 16
Top = 24
Top = 16
Width = 257
Height = 25
Hint = 'Initialisation des aiguillages au d'#233'marrage'
@@ -2231,15 +2200,18 @@ object FormConfig: TFormConfig
end
object EditTempoAig: TEdit
Left = 224
Top = 46
Top = 38
Width = 41
Height = 21
Hint = 'Temporisation entre la commande de deux aiguillages'
ParentShowHint = False
ShowHint = True
TabOrder = 1
Text = 'EditTempoAig'
end
object CheckPosAig: TCheckBox
Left = 16
Top = 72
Top = 64
Width = 257
Height = 17
Caption = 'Demande positions des aiguillages '#224' la centrale'
@@ -2247,27 +2219,57 @@ object FormConfig: TFormConfig
end
object CheckBoxDemarUSB: TCheckBox
Left = 16
Top = 88
Top = 80
Width = 273
Height = 17
Hint = 'Connecte l'#39'interface XpressNet en COM ou USB au d'#233'marrage'
Caption = 'Connexion de l'#39'interface Xpressnet en COM ou USB'
Caption = 'Connexion de l'#39'interface en COM ou USB'
ParentShowHint = False
ShowHint = True
TabOrder = 3
end
object CheckBoxDemarEth: TCheckBox
Left = 16
Top = 104
Top = 96
Width = 265
Height = 17
Hint = 'Connecte l'#39'interface XpressNet en Ethernet ou Wifi au d'#233'marrage'
Caption = 'Connexion de l'#39'interface Xpressnet en Ethernet'
Caption = 'Connexion de l'#39'interface en Ethernet'
ParentShowHint = False
ShowHint = True
TabOrder = 4
end
end
object GroupBox22: TGroupBox
Left = 312
Top = 376
Width = 297
Height = 65
Caption = 'Protocole de connexion '#224' la centrale ou '#224' l'#39'interface'
TabOrder = 8
object RadioButtonDCC: TRadioButton
Left = 8
Top = 40
Width = 113
Height = 17
Hint = 'Protocole DCC++ vers la centrale/interface'
Caption = 'DCC++ (Arduino)'
ParentShowHint = False
ShowHint = True
TabOrder = 0
end
object RadioButtonXpress: TRadioButton
Left = 8
Top = 20
Width = 257
Height = 17
Hint = 'Protocole Xpressnet vers la centrale/interface'
Caption = 'XpressNet (Lenz, Digikeijs, Roco, OpenDCC ...)'
ParentShowHint = False
ShowHint = True
TabOrder = 1
end
end
end
object TabSheetAig: TTabSheet
Caption = 'Aiguillages'
@@ -3015,7 +3017,7 @@ object FormConfig: TFormConfig
Width = 129
Height = 21
Style = csDropDownList
ItemHeight = 13
ItemHeight = 0
TabOrder = 1
OnChange = ComboBoxDecChange
end
+435 -278
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
BIN
View File
Binary file not shown.
-5
View File
@@ -222,8 +222,6 @@ begin
end;
procedure TFormConfigTCO.ButtonOKClick(Sender: TObject);
var i : integer;
begin
if verif_config_TCO then
begin
@@ -241,9 +239,6 @@ begin
end;
procedure TFormConfigTCO.ButtonDessineClick(Sender: TObject);
var i,erreur : integer;
r : Trect;
c : tCanvas;
begin
if verif_config_TCO then
begin
BIN
View File
Binary file not shown.
+19 -20
View File
@@ -2,8 +2,7 @@ object FormDebug: TFormDebug
Left = 429
Top = 147
Width = 754
Height = 789
VertScrollBar.Position = 82
Height = 784
VertScrollBar.Tracking = True
Caption = 'Fen'#234'tre de d'#233'bug'
Color = clWindow
@@ -18,12 +17,12 @@ object FormDebug: TFormDebug
OnCreate = FormCreate
DesignSize = (
721
751)
746)
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 564
Top = -78
Top = 4
Width = 108
Height = 13
Anchors = [akTop, akRight]
@@ -39,7 +38,7 @@ object FormDebug: TFormDebug
end
object Label2: TLabel
Left = 412
Top = -80
Top = 2
Width = 131
Height = 18
Anchors = [akTop, akRight]
@@ -53,7 +52,7 @@ object FormDebug: TFormDebug
end
object EditNivDebug: TEdit
Left = 675
Top = -80
Top = 2
Width = 49
Height = 21
Anchors = [akTop, akRight]
@@ -69,7 +68,7 @@ object FormDebug: TFormDebug
end
object MemoEvtDet: TMemo
Left = 485
Top = 254
Top = 336
Width = 229
Height = 194
Anchors = [akTop, akRight]
@@ -90,7 +89,7 @@ object FormDebug: TFormDebug
end
object ButtonEcrLog: TButton
Left = 379
Top = 246
Top = 328
Width = 97
Height = 29
Anchors = [akTop, akRight]
@@ -100,7 +99,7 @@ object FormDebug: TFormDebug
end
object ButtonRazTampon: TButton
Left = 379
Top = 278
Top = 360
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -111,7 +110,7 @@ object FormDebug: TFormDebug
end
object ButtonCherche: TButton
Left = 379
Top = 214
Top = 296
Width = 97
Height = 25
Anchors = [akTop, akRight]
@@ -121,7 +120,7 @@ object FormDebug: TFormDebug
end
object ButtonAffEvtChrono: TButton
Left = 379
Top = 174
Top = 256
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -132,7 +131,7 @@ object FormDebug: TFormDebug
end
object ButtonCop: TButton
Left = 379
Top = 126
Top = 208
Width = 97
Height = 41
Anchors = [akTop, akRight]
@@ -149,7 +148,7 @@ object FormDebug: TFormDebug
end
object RichEdit: TRichEdit
Left = 485
Top = 94
Top = 176
Width = 229
Height = 153
Anchors = [akTop, akRight]
@@ -168,7 +167,7 @@ object FormDebug: TFormDebug
end
object ButtonRazLog: TButton
Left = 379
Top = 318
Top = 400
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -179,7 +178,7 @@ object FormDebug: TFormDebug
end
object GroupBox1: TGroupBox
Left = 369
Top = 566
Top = 648
Width = 345
Height = 185
Anchors = [akTop, akRight]
@@ -327,7 +326,7 @@ object FormDebug: TFormDebug
end
object GroupBox2: TGroupBox
Left = 377
Top = -62
Top = 20
Width = 333
Height = 149
Anchors = [akTop, akRight]
@@ -499,7 +498,7 @@ object FormDebug: TFormDebug
end
object RichDebug: TRichEdit
Left = 8
Top = -74
Top = 8
Width = 353
Height = 718
Anchors = [akLeft, akTop, akRight, akBottom]
@@ -513,7 +512,7 @@ object FormDebug: TFormDebug
end
object GroupBox5: TGroupBox
Left = 369
Top = 454
Top = 536
Width = 345
Height = 57
Anchors = [akTop, akRight]
@@ -580,7 +579,7 @@ object FormDebug: TFormDebug
end
object ButtonRazTout: TButton
Left = 380
Top = 94
Top = 176
Width = 97
Height = 25
Hint =
@@ -595,7 +594,7 @@ object FormDebug: TFormDebug
end
object GroupBox6: TGroupBox
Left = 368
Top = 518
Top = 600
Width = 345
Height = 41
Anchors = [akTop, akRight]
+2 -5
View File
@@ -299,7 +299,6 @@ begin
end;
procedure TFormDebug.ButtonCopClick(Sender: TObject);
var i : integer;
begin
RichDebug.Lines:=Formprinc.FenRich.lines;
end;
@@ -523,7 +522,7 @@ begin
end;
procedure TFormDebug.Button1Click(Sender: TObject);
var adr,sortie,erreur,groupe,pilotage : integer;
var adr,sortie,erreur,groupe : integer;
fonction : byte;
s : string;
begin
@@ -553,7 +552,6 @@ begin
// pilotage par USB ou par éthernet de la centrale ------------
if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then
begin
pilotage:=1;
groupe:=(adr-1) div 4;
fonction:=((adr-1) mod 4)*2 + (sortie-1);
// pilotage à 1
@@ -566,7 +564,7 @@ begin
end;
procedure TFormDebug.Button0Click(Sender: TObject);
var adr,sortie,erreur,groupe,pilotage : integer;
var adr,sortie,erreur,groupe : integer;
fonction : byte;
s : string;
begin
@@ -596,7 +594,6 @@ begin
// pilotage par USB ou par éthernet de la centrale ------------
if (hors_tension2=false) and (portCommOuvert or parSocketLenz) then
begin
pilotage:=1;
groupe:=(adr-1) div 4;
fonction:=((adr-1) mod 4)*2 + (sortie-1);
// pilotage à 0
BIN
View File
Binary file not shown.
+381
View File
@@ -0,0 +1,381 @@
object FormDigikeijs: TFormDigikeijs
Left = 362
Top = 124
BorderStyle = bsDialog
Caption = 'Configuration du d'#233'codeur Digikeijs 4018'
ClientHeight = 442
ClientWidth = 344
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnActivate = FormActivate
PixelsPerInch = 96
TextHeight = 13
object LabelTitre: TLabel
Left = 16
Top = 8
Width = 63
Height = 19
Caption = 'Adresse'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold]
ParentFont = False
end
object Label1: TLabel
Left = 8
Top = 136
Width = 32
Height = 13
Caption = 'Label1'
end
object Label2: TLabel
Left = 8
Top = 160
Width = 32
Height = 13
Caption = 'Label2'
end
object Label3: TLabel
Left = 8
Top = 184
Width = 32
Height = 13
Caption = 'Label3'
end
object Label4: TLabel
Left = 8
Top = 208
Width = 32
Height = 13
Caption = 'Label4'
end
object Label5: TLabel
Left = 8
Top = 232
Width = 32
Height = 13
Caption = 'Label5'
end
object Label6: TLabel
Left = 8
Top = 256
Width = 32
Height = 13
Caption = 'Label6'
end
object Label7: TLabel
Left = 8
Top = 280
Width = 32
Height = 13
Caption = 'Label7'
end
object Label8: TLabel
Left = 8
Top = 304
Width = 32
Height = 13
Caption = 'Label8'
end
object Label9: TLabel
Left = 8
Top = 328
Width = 32
Height = 13
Caption = 'Label9'
end
object Label10: TLabel
Left = 8
Top = 352
Width = 38
Height = 13
Caption = 'Label10'
end
object Label11: TLabel
Left = 184
Top = 160
Width = 38
Height = 13
Caption = 'Label11'
end
object Label12: TLabel
Left = 184
Top = 184
Width = 38
Height = 13
Caption = 'Label12'
end
object Label13: TLabel
Left = 184
Top = 208
Width = 38
Height = 13
Caption = 'Label13'
end
object Label14: TLabel
Left = 184
Top = 232
Width = 38
Height = 13
Caption = 'Label14'
end
object Label15: TLabel
Left = 184
Top = 256
Width = 38
Height = 13
Caption = 'Label15'
end
object Label16: TLabel
Left = 184
Top = 280
Width = 38
Height = 13
Caption = 'Label16'
end
object Label17: TLabel
Left = 184
Top = 304
Width = 38
Height = 13
Caption = 'Label17'
end
object Label18: TLabel
Left = 184
Top = 328
Width = 38
Height = 13
Caption = 'Label18'
end
object Label19: TLabel
Left = 184
Top = 352
Width = 38
Height = 13
Caption = 'Label19'
end
object ImageDigi: TImage
Left = 240
Top = 16
Width = 57
Height = 97
end
object Shape1: TShape
Left = 168
Top = 112
Width = 2
Height = 273
end
object Label20: TLabel
Left = 24
Top = 48
Width = 184
Height = 26
Caption =
'Tables d'#39'aspects du signal en fonction du motif envoy'#233' au d'#233'code' +
'ur Digikeijs'
WordWrap = True
end
object Label21: TLabel
Left = 120
Top = 112
Width = 29
Height = 13
Caption = 'Motif'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label22: TLabel
Left = 296
Top = 136
Width = 29
Height = 13
Caption = 'Motif'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Button1: TButton
Left = 128
Top = 408
Width = 75
Height = 25
Caption = 'Fermer'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 120
Top = 136
Width = 25
Height = 21
TabOrder = 1
OnChange = Edit1Change
end
object Edit2: TEdit
Left = 120
Top = 160
Width = 25
Height = 21
TabOrder = 2
OnChange = Edit2Change
end
object Edit3: TEdit
Left = 120
Top = 184
Width = 25
Height = 21
TabOrder = 3
OnChange = Edit3Change
end
object Edit4: TEdit
Left = 120
Top = 208
Width = 25
Height = 21
TabOrder = 4
OnChange = Edit4Change
end
object Edit5: TEdit
Left = 120
Top = 232
Width = 25
Height = 21
TabOrder = 5
OnChange = Edit5Change
end
object Edit6: TEdit
Left = 120
Top = 256
Width = 25
Height = 21
TabOrder = 6
OnChange = Edit6Change
end
object Edit7: TEdit
Left = 120
Top = 280
Width = 25
Height = 21
TabOrder = 7
OnChange = Edit7Change
end
object Edit8: TEdit
Left = 120
Top = 304
Width = 25
Height = 21
TabOrder = 8
OnChange = Edit8Change
end
object Edit9: TEdit
Left = 120
Top = 328
Width = 25
Height = 21
TabOrder = 9
OnChange = Edit9Change
end
object Edit10: TEdit
Left = 120
Top = 352
Width = 25
Height = 21
TabOrder = 10
OnChange = Edit10Change
end
object Edit11: TEdit
Left = 296
Top = 160
Width = 25
Height = 21
TabOrder = 11
OnChange = Edit11Change
end
object Edit12: TEdit
Left = 296
Top = 184
Width = 25
Height = 21
TabOrder = 12
OnChange = Edit12Change
end
object Edit13: TEdit
Left = 296
Top = 208
Width = 25
Height = 21
TabOrder = 13
OnChange = Edit13Change
end
object Edit14: TEdit
Left = 296
Top = 232
Width = 25
Height = 21
TabOrder = 14
OnChange = Edit14Change
end
object Edit15: TEdit
Left = 296
Top = 256
Width = 25
Height = 21
TabOrder = 15
OnChange = Edit15Change
end
object Edit16: TEdit
Left = 296
Top = 280
Width = 25
Height = 21
TabOrder = 16
OnChange = Edit16Change
end
object Edit17: TEdit
Left = 296
Top = 304
Width = 25
Height = 21
TabOrder = 17
OnChange = Edit17Change
end
object Edit18: TEdit
Left = 296
Top = 328
Width = 25
Height = 21
TabOrder = 18
OnChange = Edit18Change
end
object Edit19: TEdit
Left = 296
Top = 352
Width = 25
Height = 21
TabOrder = 19
OnChange = Edit19Change
end
object CheckMotif: TCheckBox
Left = 16
Top = 88
Width = 169
Height = 17
Caption = 'Inversion du sens du motif'
TabOrder = 20
end
end
+355
View File
@@ -0,0 +1,355 @@
unit UnitDigikeijs;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, UnitConfig,UnitPrinc ;
type
TFormDigikeijs = class(TForm)
Button1: TButton;
LabelTitre: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
ImageDigi: TImage;
Edit1: TEdit;
Shape1: TShape;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
CheckMotif: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit6Change(Sender: TObject);
procedure Edit7Change(Sender: TObject);
procedure Edit8Change(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Edit10Change(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure Edit12Change(Sender: TObject);
procedure Edit13Change(Sender: TObject);
procedure Edit14Change(Sender: TObject);
procedure Edit15Change(Sender: TObject);
procedure Edit16Change(Sender: TObject);
procedure Edit17Change(Sender: TObject);
procedure Edit18Change(Sender: TObject);
procedure Edit19Change(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FormDigikeijs: TFormDigikeijs;
Adresse,Index : integer;
implementation
{$R *.dfm}
procedure TFormDigikeijs.Button1Click(Sender: TObject);
begin
InverseMotif:=checkMotif.Checked;
close;
end;
procedure TFormDigikeijs.FormActivate(Sender: TObject);
var erreur : integer;
begin
Val(FormConfig.EditAdrSig.text,Adresse,erreur);
index:=index_feu(Adresse);
LabelTitre.caption:='Adresse du signal: '+intToSTR(adresse);
Label1.caption:=etats[1];
Label2.caption:=etats[2];
Label3.caption:=etats[3];
Label4.caption:=etats[4];
Label5.caption:=etats[5];
Label6.caption:=etats[6];
Label7.caption:=etats[7];
Label8.caption:=etats[8];
Label9.caption:=etats[9];
Label10.caption:=etats[10];
Label11.caption:=etats[11];
Label12.caption:=etats[12];
Label13.caption:=etats[13];
Label14.caption:=etats[14];
Label15.caption:=etats[15];
Label16.caption:=etats[16];
Label17.caption:=etats[17];
Label18.caption:=etats[18];
Label19.caption:=etats[19];
ImageDigi.Picture:=FormConfig.ImageSignal.Picture;
with ImageDigi.Picture do
begin
Bitmap.TransparentMode:=tmAuto;
Bitmap.TransparentColor:=clblue;
end;
ImageDigi.Transparent:=true;
Edit1.Text:=intToSTR(Feux[index].SR[1].sortie1); // carré
Edit2.Text:=intToSTR(Feux[index].SR[2].sortie1); // sémaphore
Edit3.Text:=intToSTR(Feux[index].SR[3].sortie1); // sémaphore cli
Edit4.Text:=intToSTR(Feux[index].SR[4].sortie1);
Edit5.Text:=intToSTR(Feux[index].SR[5].sortie1);
Edit6.Text:=intToSTR(Feux[index].SR[6].sortie1);
Edit7.Text:=intToSTR(Feux[index].SR[7].sortie1);
Edit8.Text:=intToSTR(Feux[index].SR[8].sortie1);
Edit9.Text:=intToSTR(Feux[index].SR[9].sortie1);
Edit10.Text:=intToSTR(Feux[index].SR[10].sortie1);
Edit11.Text:=intToSTR(Feux[index].SR[11].sortie1);
Edit12.Text:=intToSTR(Feux[index].SR[12].sortie1);
Edit13.Text:=intToSTR(Feux[index].SR[13].sortie1);
Edit14.Text:=intToSTR(Feux[index].SR[14].sortie1);
Edit15.Text:=intToSTR(Feux[index].SR[15].sortie1);
Edit16.Text:=intToSTR(Feux[index].SR[16].sortie1);
Edit17.Text:=intToSTR(Feux[index].SR[17].sortie1);
Edit18.Text:=intToSTR(Feux[index].SR[18].sortie1);
Edit19.Text:=intToSTR(Feux[index].SR[19].sortie1);
CheckMotif.checked:=InverseMotif;
end;
procedure Maj_DB;
var s : string;
begin
s:=encode_sig_feux(index);
formconfig.RichSig.Lines[index-1]:=s;
aff_champs_sig_feux(index);
end;
procedure TFormDigikeijs.Edit1Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit1.Text,Feux[index].SR[1].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit2Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit2.Text,Feux[index].SR[2].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit3Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit3.Text,Feux[index].SR[3].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit4Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit4.Text,Feux[index].SR[4].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit5Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit5.Text,Feux[index].SR[5].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit6Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit6.Text,Feux[index].SR[6].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit7Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit7.Text,Feux[index].SR[7].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit8Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit8.Text,Feux[index].SR[8].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit9Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit9.Text,Feux[index].SR[9].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit10Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit10.Text,Feux[index].SR[10].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit11Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit11.Text,Feux[index].SR[11].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit12Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit12.Text,Feux[index].SR[12].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit13Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit13.Text,Feux[index].SR[13].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit14Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit14.Text,Feux[index].SR[14].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit15Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit15.Text,Feux[index].SR[15].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit16Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit16.Text,Feux[index].SR[16].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit17Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit17.Text,Feux[index].SR[17].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit18Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit18.Text,Feux[index].SR[18].sortie1,erreur);
Maj_DB;
end;
end;
procedure TFormDigikeijs.Edit19Change(Sender: TObject);
var erreur : integer;
begin
if index<>0 then
begin
val(Edit19.Text,Feux[index].SR[19].sortie1,erreur);
Maj_DB;
end;
end;
end.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+31 -13
View File
@@ -18,8 +18,8 @@ object FormPrinc: TFormPrinc
OnClose = FormClose
OnCreate = FormCreate
DesignSize = (
1197
612)
1205
619)
PixelsPerInch = 96
TextHeight = 13
object LabelTitre: TLabel
@@ -1189,7 +1189,7 @@ object FormPrinc: TFormPrinc
end
object LabelEtat: TLabel
Left = 440
Top = 16
Top = 8
Width = 152
Height = 18
Anchors = [akTop, akRight]
@@ -1264,8 +1264,8 @@ object FormPrinc: TFormPrinc
end
object StatusBar1: TStatusBar
Left = 0
Top = 590
Width = 1197
Top = 597
Width = 1205
Height = 22
Panels = <>
SimplePanel = True
@@ -1441,7 +1441,7 @@ object FormPrinc: TFormPrinc
Width = 153
Height = 33
Hint = 'Ecriture CV en mode direct sur voie de programmation'
Caption = 'Ecriture CV - 1 '#224' 255 par bus XpressNet'
Caption = 'Ecriture CV - 1 '#224' 255 par interface'
TabOrder = 0
WordWrap = True
OnClick = ButtonEcrCVClick
@@ -1452,7 +1452,7 @@ object FormPrinc: TFormPrinc
Width = 153
Height = 33
Hint = 'Lecture CV en mode direct sur voie de programmation'
Caption = 'Lecture CV - 1 '#224' 255 par le bus XpressNet'
Caption = 'Lecture CV - 1 '#224' 255 par interface'
Enabled = False
TabOrder = 1
WordWrap = True
@@ -1474,7 +1474,7 @@ object FormPrinc: TFormPrinc
end
end
object GroupBox3: TGroupBox
Left = 632
Left = 736
Top = 64
Width = 265
Height = 129
@@ -1582,6 +1582,24 @@ object FormPrinc: TFormPrinc
OnChange = TrackBarVitChange
end
end
object ButtonEnv: TButton
Left = 1064
Top = 144
Width = 113
Height = 33
Caption = 'Envoi vers centrale DCC++'
TabOrder = 10
WordWrap = True
OnClick = ButtonEnvClick
end
object EditEnvoi: TEdit
Left = 928
Top = 152
Width = 121
Height = 21
TabOrder = 11
Text = '<1>'
end
object Timer1: TTimer
Interval = 100
OnTimer = Timer1Timer
@@ -1645,12 +1663,12 @@ object FormPrinc: TFormPrinc
object Interface1: TMenuItem
Caption = 'Interface'
object MenuConnecterUSB: TMenuItem
Caption = 'Connecter l'#39'interface XpressNet en USB'
Caption = 'Connecter l'#39'interface en USB'
Hint = 'Connecter l'#39'interface en USB (mode autonome)'
OnClick = MenuConnecterUSBClick
end
object DeconnecterUSB: TMenuItem
Caption = 'D'#233'connecter l'#39'interface XpressNet de l'#39'USB'
Caption = 'D'#233'connecter l'#39'interface de l'#39'USB'
Hint = 'D'#233'connecter l'#39'interface USB'
OnClick = DeconnecterUSBClick
end
@@ -1658,12 +1676,12 @@ object FormPrinc: TFormPrinc
Caption = '-'
end
object MenuConnecterEthernet: TMenuItem
Caption = 'Connecter l'#39'interface XpressNet en Ethernet'
Caption = 'Connecter l'#39'interface en Ethernet'
Hint = 'Connecter l'#39'interface par Ethernet'
OnClick = MenuConnecterEthernetClick
end
object MenuDeconnecterEthernet: TMenuItem
Caption = 'D'#233'connecter l'#39'interface XpressNet de Ethernet'
Caption = 'D'#233'connecter l'#39'interface de Ethernet'
Hint = 'D'#233'connecter l'#39'interface par Ethernet'
OnClick = MenuDeconnecterEthernetClick
end
@@ -1671,7 +1689,7 @@ object FormPrinc: TFormPrinc
Caption = '-'
end
object Demanderversiondelacentrale1: TMenuItem
Caption = 'Interface XpressNet:'
Caption = 'Interface'
object Demanderlaversiondelacentrale1: TMenuItem
Caption = 'Demander la version de la centrale'
OnClick = Demanderlaversiondelacentrale1Click
+1222 -482
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+3 -2
View File
@@ -1,9 +1,10 @@
object FormSR: TFormSR
Left = 425
Top = 73
Width = 491
Height = 600
BorderStyle = bsDialog
Caption = 'Configuration du d'#233'codeur du signal St'#233'phane Ravaut'
ClientHeight = 562
ClientWidth = 475
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
+2 -5
View File
@@ -7,7 +7,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
Dialogs, StdCtrls, ExtCtrls , UnitPrinc, UnitConfig;
type
TFormSR = class(TForm)
@@ -128,13 +128,10 @@ var
implementation
uses UnitPrinc, UnitConfig;
{$R *.dfm}
procedure etat_SR(etat : integer;var etat1,etat2 : integer) ;
var i : integer;
begin
// etat1 correspond à l'allumage des leds du 1er cycle clignotant
// etat2 correspond à l'allumage des leds du 2eme cycle clignotant
@@ -182,7 +179,7 @@ end;
procedure TFormSR.FormActivate(Sender: TObject);
var erreur,i,etat1,etat2 : integer;
var erreur,etat1,etat2 : integer;
begin
Val(FormConfig.EditAdrSig.text,Adr,erreur);
indexSig:=index_feu(Adr);
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+80 -31
View File
@@ -1,8 +1,8 @@
object FormTCO: TFormTCO
Left = 178
Top = 70
Left = 152
Top = 35
Width = 1139
Height = 694
Height = 686
VertScrollBar.Visible = False
Caption = 'FormTCO'
Color = clBtnFace
@@ -19,9 +19,10 @@ object FormTCO: TFormTCO
OnCreate = FormCreate
OnDockOver = FormDockOver
OnKeyDown = FormKeyDown
OnMouseWheel = FormMouseWheel
DesignSize = (
1123
656)
1131
655)
PixelsPerInch = 96
TextHeight = 13
object LabelCoord: TLabel
@@ -71,8 +72,8 @@ object FormTCO: TFormTCO
Height = 97
end
object Label19: TLabel
Left = 1059
Top = 407
Left = 1075
Top = 399
Width = 32
Height = 13
Anchors = [akRight, akBottom]
@@ -87,25 +88,25 @@ object FormTCO: TFormTCO
object ScrollBox: TScrollBox
Left = 8
Top = 18
Width = 1036
Height = 375
Width = 1057
Height = 367
HorzScrollBar.Smooth = True
HorzScrollBar.Tracking = True
VertScrollBar.Smooth = True
VertScrollBar.Tracking = True
Anchors = [akLeft, akTop, akRight, akBottom]
BevelEdges = [beLeft, beTop, beRight]
Color = clBtnFace
Color = clBackground
ParentColor = False
TabOrder = 0
DesignSize = (
1032
371)
1053
363)
object ImageTCO: TImage
Left = 0
Top = 0
Width = 1009
Height = 353
Width = 1030
Height = 345
Anchors = [akLeft, akTop, akRight, akBottom]
ParentShowHint = False
PopupMenu = PopupMenu1
@@ -120,10 +121,10 @@ object FormTCO: TFormTCO
end
end
object TrackBarZoom: TTrackBar
Left = 1059
Left = 1075
Top = 18
Width = 41
Height = 366
Height = 358
Anchors = [akTop, akRight, akBottom]
Max = 50
Min = 20
@@ -135,10 +136,11 @@ object FormTCO: TFormTCO
end
object Panel1: TPanel
Left = 8
Top = 479
Width = 1100
Top = 471
Width = 1113
Height = 166
Anchors = [akLeft, akRight, akBottom]
Color = clActiveBorder
Font.Charset = ANSI_CHARSET
Font.Color = clBlue
Font.Height = -9
@@ -148,7 +150,7 @@ object FormTCO: TFormTCO
TabOrder = 2
OnDragOver = Panel1DragOver
DesignSize = (
1100
1113
166)
object ImagePalette5: TImage
Left = 504
@@ -718,7 +720,7 @@ object FormTCO: TFormTCO
ParentFont = False
end
object ButtonSauveTCO: TButton
Left = 992
Left = 1005
Top = 48
Width = 92
Height = 33
@@ -729,7 +731,7 @@ object FormTCO: TFormTCO
OnClick = ButtonSauveTCOClick
end
object ButtonRedessine: TButton
Left = 992
Left = 1005
Top = 8
Width = 92
Height = 33
@@ -739,8 +741,8 @@ object FormTCO: TFormTCO
OnClick = ButtonRedessineClick
end
object Button1: TButton
Left = 784
Top = 112
Left = 608
Top = 104
Width = 89
Height = 25
Caption = 'Simu det 1'
@@ -748,8 +750,8 @@ object FormTCO: TFormTCO
OnClick = Button1Click
end
object Button2: TButton
Left = 880
Top = 112
Left = 728
Top = 104
Width = 89
Height = 25
Caption = 'Simu Det 0'
@@ -757,7 +759,7 @@ object FormTCO: TFormTCO
OnClick = Button2Click
end
object ButtonConfigTCO: TButton
Left = 992
Left = 1005
Top = 88
Width = 92
Height = 33
@@ -767,8 +769,8 @@ object FormTCO: TFormTCO
OnClick = ButtonConfigTCOClick
end
object ButtonSimu: TButton
Left = 864
Top = 80
Left = 720
Top = 136
Width = 113
Height = 25
Caption = 'Simu canton occup'#233
@@ -776,7 +778,7 @@ object FormTCO: TFormTCO
OnClick = ButtonSimuClick
end
object ButtonMasquer: TButton
Left = 992
Left = 1005
Top = 128
Width = 92
Height = 33
@@ -931,10 +933,21 @@ object FormTCO: TFormTCO
OnClick = CheckPinvClick
end
end
object buttonRaz: TButton
Left = 901
Top = 128
Width = 92
Height = 33
Anchors = [akTop, akRight]
Caption = 'Raz des occupations'
TabOrder = 8
WordWrap = True
OnClick = buttonRazClick
end
end
object ButtonAfficheBandeau: TButton
Left = 1051
Top = 431
Left = 1067
Top = 423
Width = 57
Height = 33
Anchors = [akRight, akBottom]
@@ -997,6 +1010,42 @@ object FormTCO: TFormTCO
object N2: TMenuItem
Caption = '-'
end
object Inserer: TMenuItem
Caption = 'Inserer'
object LigneDessus: TMenuItem
Caption = 'Ligne au dessus'
OnClick = LigneDessusClick
end
object LigneDessous: TMenuItem
Caption = 'Ligne en dessous'
OnClick = LigneDessousClick
end
object N7: TMenuItem
Caption = '-'
end
object Colonnegauche1: TMenuItem
Caption = 'Colonne '#224' gauche'
OnClick = Colonnegauche1Click
end
object Colonnedroite1: TMenuItem
Caption = 'Colonne '#224' droite'
OnClick = Colonnedroite1Click
end
end
object Supprimer: TMenuItem
Caption = 'Supprimer'
object SupprimeLigne: TMenuItem
Caption = 'Ligne'
OnClick = SupprimeLigneClick
end
object Colonne: TMenuItem
Caption = 'Colonne'
OnClick = ColonneClick
end
end
object N6: TMenuItem
Caption = '-'
end
object N3: TMenuItem
Caption = 'Propri'#233't'#233's'
OnClick = N3Click
+291 -50
View File
@@ -103,6 +103,17 @@ type
ComboRepr: TComboBox;
Label1: TLabel;
CheckPinv: TCheckBox;
N6: TMenuItem;
Inserer: TMenuItem;
Supprimer: TMenuItem;
LigneDessus: TMenuItem;
LigneDessous: TMenuItem;
SupprimeLigne: TMenuItem;
Colonne: TMenuItem;
N7: TMenuItem;
Colonnegauche1: TMenuItem;
Colonnedroite1: TMenuItem;
buttonRaz: TButton;
procedure FormCreate(Sender: TObject);
procedure ImageTCOClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
@@ -283,7 +294,15 @@ type
procedure Signalgauchedelavoie1Click(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure LigneDessusClick(Sender: TObject);
procedure LigneDessousClick(Sender: TObject);
procedure SupprimeLigneClick(Sender: TObject);
procedure Colonnegauche1Click(Sender: TObject);
procedure Colonnedroite1Click(Sender: TObject);
procedure ColonneClick(Sender: TObject);
procedure buttonRazClick(Sender: TObject);
procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
private
{ Déclarations privées }
@@ -312,7 +331,7 @@ type
TTCO = array[1..MaxCellX] of array[1..MaxCellY] of record
Adresse : integer ; // adresse du détecteur ou de l'aiguillage ou du feu
BImage : integer ; // 0=rien 1=voie 2=aiguillage gauche gauche ... 30=feu
mode : Tcolor; // couleur de voie 0=éteint
mode : integer; // couleur de voie 0=éteint 1=ClVoies 2=couleur en fonction du train
inverse : boolean; // aiguillage piloté inversé
repr : integer; // position de la représentation texte 0 = rien 1=centrale 2=Haut 3=Bas
Texte : string[30]; // texte de la cellule
@@ -341,8 +360,9 @@ var
TamponTCO,tco : TTco ;
// pour copier coller
TamponTCO_Org : record
x1,y1,x2,y2 : integer;
end;
x1,y1,x2,y2,NbreCellX,NbreCellY : integer;
end;
rAncien : TRect;
PCanvasTCO : Tcanvas;
PBitMapTCO : TBitMap;
@@ -378,7 +398,7 @@ var fichier : textfile;
nv,x,y,i,j,m,adresse,valeur,erreur,FeuOriente,PiedFeu,tailleFont : integer;
e : integer;
trouve_CoulFond,trouve_clVoies,trouve_clAllume,trouve_clGrille,trouve_clCanton,
trouve_clTexte,trouve_clQuai,trouve_matrice,trouve_cellule,trouve_ModeCanton,
trouve_clTexte,trouve_clQuai,trouve_matrice,trouve_ratio,trouve_ModeCanton,
trouve_AvecGrille : boolean;
function lit_ligne : string ;
var c : char;
@@ -387,6 +407,7 @@ var fichier : textfile;
readln(fichier,s);
s:=Uppercase(s);
//Affiche(s,clWhite);
c:=#0;
if length(s)>0 then c:=s[1];
until ((c<>'/') and (s<>'')) or eof(fichier) ;
lit_ligne:=s;
@@ -412,7 +433,7 @@ begin
trouve_clTexte:=false;
trouve_clQuai:=false;
trouve_matrice:=false;
trouve_cellule:=false;
trouve_ratio:=false;
trouve_clCanton:=false;
trouve_ModeCanton:=false;
trouve_AvecGrille:=false;
@@ -548,7 +569,7 @@ begin
if i<>0 then
begin
inc(nv);
trouve_cellule:=true;
trouve_ratio:=true;
delete(s,i,length(sa));
val(s,i,erreur);
RatioC:=i;
@@ -685,7 +706,7 @@ begin
closefile(fichier);
e:=sizeof(Tco) div 1024;
Affiche('Dimensions du tco : '+intToSTR(NbreCellX)+'x'+intToSTR(NbreCellY)+' / '+IntToSTR(e)+'Ko',clyellow);
//Affiche('Dimensions du tco : '+intToSTR(NbreCellX)+'x'+intToSTR(NbreCellY)+' / '+IntToSTR(e)+'Ko',clyellow);
end;
procedure sauve_fichier_tco;
@@ -867,13 +888,13 @@ begin
end;
procedure dessin_2(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,jy1,jy2,xf,yf,x1,x2,y1,y2,x3,position : integer;
var x0,y0,xc,yc,jy1,jy2,xf,yf,position : integer;
r : Trect;
procedure trajet_droit;
begin
if mode=0 then
with canvas do
with canvas do
begin
pen.color:=clvoies;
Brush.Color:=clvoies;
@@ -921,7 +942,7 @@ var x0,y0,xc,yc,jy1,jy2,xf,yf,x1,x2,y1,y2,x3,position : integer;
// partie horz g en couleur de voie
pen.color:=clvoies;
Brush.Color:=clvoies;
moveto(x0,yc);LineTo(xc,yc);
moveto(x0,yc);LineTo(xc,yc);
if mode=1 then couleur:=clAllume;
if mode=2 then couleur:=couleurtrain[index_couleur];
@@ -970,8 +991,6 @@ begin
pen.color:=fond;
Brush.Color:=fond;
pen.width:=1;
x1:=xc-epaisseur;y1:=yc-(epaisseur div 2)-1;
x2:=xc+epaisseur+10;y2:=yc-epaisseur-3;
jy1:=yc-(Epaisseur div 2); // pos Y de la bande sup
pen.width:=1;
Polygon([point(x0+1,y0+hauteurCell-epaisseur),Point(xc-(epaisseur div 2),jy1),Point(xc-epaisseur-epaisseur,jy1),Point(x0+1,y0+hauteurcell-epaisseur-epaisseur)]);
@@ -983,9 +1002,6 @@ begin
pen.color:=fond;
Brush.Color:=fond;
pen.Width:=1;
x1:=xc+(epaisseur div 2);y1:=yc+(epaisseur div 2);
x2:=x1+epaisseur-1;y2:=yc-(epaisseur div 2);
x3:=x1+10;
jy2:=yc+(Epaisseur div 2); // pos Y de la bande inf
r:=rect(x0+1,jy2+1,x0+largeurCell-1,jy2+epaisseur);
FillRect(r);
@@ -994,7 +1010,7 @@ begin
end;
procedure dessin_3(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,jy1,xf,yf,x1,x2,y1,y2,x3,position : integer;
var x0,y0,xc,yc,jy1,xf,yf,position : integer;
r : Trect;
procedure trajet_droit;
@@ -1097,9 +1113,6 @@ begin
pen.color:=fond;
Brush.Color:=fond;
pen.width:=1;
x1:=xc-epaisseur;y1:=yc-(epaisseur div 2)-1;
x2:=xc+epaisseur+10;y2:=yc-epaisseur-3;
jy1:=yc-(Epaisseur div 2); // pos Y de la bande sup
pen.width:=1;
Polygon([point(xc+epaisseur-4,yc+epaisseur-1),point(xc+2*epaisseur-1,yc-epaisseur),point(xc+3*epaisseur,yc-epaisseur),point(xc+2*epaisseur,yc+epaisseur-1)]);
end;
@@ -1110,9 +1123,6 @@ begin
pen.color:=fond;
Brush.Color:=fond;
pen.Width:=1;
x1:=xc+(epaisseur div 2);y1:=yc+(epaisseur div 2);
x2:=x1+epaisseur-1;y2:=yc-(epaisseur div 2);
x3:=x1+10;
jy1:=yc-(Epaisseur div 2); // pos Y de la bande sup
r:=rect(x0+1,jy1,x0+largeurCell-1,jy1-epaisseur);
FillRect(r);
@@ -1121,7 +1131,7 @@ begin
end;
procedure dessin_4(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,jy1,jy2,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
r : Trect;
procedure trajet_droit;
@@ -1375,7 +1385,7 @@ end;
// coin supérieur gauche (Element 6)
procedure dessin_6(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,x1,y1,x2,y2,x3,y3,x4,y4,jy1,jy2 : integer;
var x0,y0,xc,yc : integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
@@ -1439,7 +1449,7 @@ var x0,y0,xc,yc : integer;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
xc:=x0+(largeurCell div 2);
xc:=x0+(largeurCell div 2);
yc:=y0+(hauteurCell div 2);
with canvas do
@@ -1494,7 +1504,7 @@ end;
// élément 10
procedure dessin_10(Canvas : Tcanvas;x,y : integer;Mode : integer);
var Adr, x0,y0,x1,y1,x2,y2,x3,y3,x4,y4 : integer;
var Adr, x0,y0: integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
@@ -1683,7 +1693,7 @@ end;
// Elément 13
procedure dessin_13(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position : integer;
r : Trect;
procedure trajet_droit;
@@ -2147,7 +2157,7 @@ end;
// Element 19
procedure dessin_19(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xc,yc,adr : integer;
var x0,y0,xc,yc : integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
@@ -2209,12 +2219,11 @@ end;
// Element 21 - croisement - TJD
procedure dessin_21(Canvas : Tcanvas;x,y,mode : integer);
var x0,y0,xc,yc : integer;
var x0,y0,yc : integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
xc:=x0+(largeurCell div 2);
yc:=y0+(hauteurCell div 2);
with canvas do
@@ -2238,12 +2247,11 @@ end;
// Element 22
procedure dessin_22(Canvas : Tcanvas;x,y,mode : integer);
var x0,y0,xc,yc : integer;
var x0,y0,yc : integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
xc:=x0+(largeurCell div 2);
yc:=y0+(hauteurCell div 2);
with canvas do
@@ -2268,7 +2276,7 @@ end;
// Element 23
procedure dessin_23(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,x1,y1,x2,y2,jy1,jy2 : integer;
var x0,y0,x1,x2,jy1,jy2 : integer;
r : Trect;
begin
x0:=(x-1)*LargeurCell;
@@ -2283,8 +2291,8 @@ begin
Brush.Color:=clQuai;
pen.color:=clQuai;
x1:=x0;y1:=y0;
x2:=x0+largeurCell;y2:=y0+HauteurCell-round(3*FrYGlob);
x1:=x0;
x2:=x0+largeurCell;
jy1:=y0+(HauteurCell div 2)-round(14*frYGlob); // pos Y de la bande sup
jy2:=y0+(HauteurCell div 2)+round(14*frYGlob); // pos Y de la bande inf
@@ -2914,7 +2922,7 @@ end;
// affiche la cellule x et y en cases
procedure affiche_cellule(x,y : integer);
var i,repr,p,Xorg,Yorg,xt,yt,mode,adresse,Bimage,aspect,oriente,pos,pos2,pied : integer;
var repr,Xorg,Yorg,xt,yt,mode,adresse,Bimage,aspect,oriente,pied : integer;
Bt : TEquipement;
s : string;
begin
@@ -2995,6 +3003,7 @@ begin
// détecteurs
if ((BImage=1) ) and (adresse<>0) then
begin // Adresse de l'élément
if repr<>0 then
with PCanvasTCO do
begin
Brush.Color:=fond;
@@ -3002,13 +3011,12 @@ begin
Font.Name:='Arial';
Font.Style:=style(tco[x,y].FontStyle);
xt:=round(15*frXGlob);
repr:=0;
case repr of
1 : yt:=(HauteurCell div 2)-round(7*fryGlob); // milieu
2 : yt:=1; // haut
3 : yt:=HauteurCell-round(17*frYGlob); // bas
end;
if repr<>0 then TextOut(xOrg+xt,Yorg+yt,s);
TextOut(xOrg+xt,Yorg+yt,s);
end;
end;
@@ -3138,7 +3146,6 @@ end;
procedure affiche_texte(x,y : integer);
var x0,y0,yt,repr : integer;
ss,s : string;
fs : TFontStyles;
begin
x0:=(x-1)*Largeurcell;
y0:=(y-1)*hauteurcell;
@@ -3172,7 +3179,7 @@ end;
// affiche le tco suivant le tableau TCO
procedure Affiche_TCO ;
var x,y,x0,y0,DimX,DimY,yt : integer;
var x,y,DimX,DimY : integer;
s : string;
r : Trect;
begin
@@ -3211,7 +3218,6 @@ begin
begin
affiche_cellule(x,y);
end;
end;
//afficher les cellules des feux et les textes pour que les pieds recouvrent le reste et afficher les textes
@@ -3384,7 +3390,7 @@ end;
procedure zone_TCO(det1,det2,mode: integer);
var i,j,x,y,xn,yn,ancienY,ancienX,Xdet1,Ydet1,Xdet2,Ydet2,Bimage,adresse,
pos,pos2,ir : integer;
memtrouve,increment,sortir : boolean;
memtrouve,sortir : boolean;
mdl : Tequipement;
routeTCO : array[1..100] of record
x,y : integer;
@@ -3399,9 +3405,7 @@ begin
trouve_det(det2,Xdet2,Ydet2);
if (Xdet2=0) or (Ydet2=0) then exit;
increment:=true;
// inverser coordonnées des détecteurs si à l'envers en X
if xDet2<xDet1 then increment:=false;
//Affiche('trouvé '+intToSTR(det1)+' en '+IntToSTR(xDet1)+'/'+intToSTR(ydet1),clyellow);
//Affiche('trouvé '+intToSTR(det2)+' en '+IntToSTR(xDet2)+'/'+intToSTR(ydet2),clyellow);
@@ -4456,6 +4460,9 @@ var x,y : integer;
begin
if SelectionAffichee then
begin
TamponTCO_org.NbreCellX:=NbreCellX;
TamponTCO_org.NbreCellY:=NbreCellY;
TamponTCO_Org.x1:=XminiSel div LargeurCell +1;
TamponTCO_Org.x2:=XmaxiSel div LargeurCell +1;
TamponTCO_Org.y1:=yminiSel div LargeurCell +1;
@@ -4477,6 +4484,9 @@ end;
procedure TFormTCO.MenuCouperClick(Sender: TObject);
var x,y,XCell1,YCell1,xCell2,yCell2 : integer;
begin
TamponTCO_org.NbreCellX:=NbreCellX;
TamponTCO_org.NbreCellY:=NbreCellY;
// couper sans sélection : on coupe une seule cellule
if not(SelectionAffichee) then
begin
@@ -4525,7 +4535,8 @@ var x,y,Xplace,yplace,adresse : integer;
begin
if TamponAffecte then
begin
NbreCellX:=TamponTCO_org.NbreCellX;
NbreCellY:=TamponTCO_org.NbreCellY;
if (xCoupe<>0) and (ycoupe<>0) then
begin
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do // rectangle de la sélection
@@ -4699,7 +4710,7 @@ end;
// changement de l'adresse d'un élément
procedure TFormTCO.EditAdrElementChange(Sender: TObject);
var Adr,erreur,index,aspect : integer;
var Adr,erreur,index : integer;
begin
//Affiche('Chgt adresse',clyellow);
@@ -4737,7 +4748,7 @@ begin
end;
procedure TFormTCO.EditTypeImageKeyPress(Sender: TObject; var Key: Char);
var Bimage,erreur,i : integer;
var Bimage,erreur : integer;
begin
if actualize then exit;
if ord(Key)=VK_RETURN then
@@ -5496,9 +5507,239 @@ begin
FormConfCellTCO.BringToFront;
end;
procedure TFormTCO.Button3Click(Sender: TObject);
procedure TFormTCO.LigneDessusClick(Sender: TObject);
var x,y : integer;
begin
dessin_14(ImageTCO.canvas,6,1,1);
if NbreCellY>=MaxCellY then exit;
for y:=NbreCellY downto YClicCell do
begin
for x:=1 to NbreCellX do tco[x,y+1]:=tco[x,y];
end;
for x:=1 to NbreCellX do
begin
tco[x,YClicCell].Adresse:=0;
tco[x,YClicCell].BImage:=0;
tco[x,YClicCell].inverse:=false;
tco[x,YClicCell].repr:=0;
tco[x,YClicCell].texte:='';
tco[x,YClicCell].fonte:='';
tco[x,YClicCell].Couleur:=fond;
tco[x,YClicCell].PiedFeu:=0;
tco[x,YClicCell].FeuOriente:=0;
end;
inc(NbreCellY);
affiche_TCO;
end;
procedure TFormTCO.LigneDessousClick(Sender: TObject);
var x,y : integer;
begin
if NbreCellY>=MaxCellY then exit;
for y:=NbreCellY downto YClicCell+1 do
begin
for x:=1 to NbreCellX do tco[x,y+1]:=tco[x,y];
end;
for x:=1 to NbreCellX do
begin
tco[x,YClicCell+1].Adresse:=0;
tco[x,YClicCell+1].BImage:=0;
tco[x,YClicCell+1].inverse:=false;
tco[x,YClicCell+1].repr:=0;
tco[x,YClicCell+1].texte:='';
tco[x,YClicCell+1].fonte:='';
tco[x,YClicCell+1].Couleur:=fond;
tco[x,YClicCell+1].PiedFeu:=0;
tco[x,YClicCell+1].FeuOriente:=0;
end;
inc(NbreCellY);
affiche_TCO;
end;
procedure TFormTCO.SupprimeLigneClick(Sender: TObject);
var x,y : integer;
begin
if NbreCellY<=1 then exit;
// tampon de sauvegarde
TamponTCO_Org.NbreCellX:=NbreCellX;
TamponTCO_Org.NbreCellY:=NbreCellY;
TamponTCO_Org.x1:=1;
TamponTCO_Org.x2:=NbreCellX;
TamponTCO_Org.y1:=1;
TamponTCO_Org.y2:=NbreCellY;
xcoupe:=1;ycoupe:=1;
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
tamponTCO[x,y]:=tco[x,y];
TamponAffecte:=true;
// supression ligne
for y:=YClicCell to NbreCellY do
begin
for x:=1 to NbreCellX do tco[x,y]:=tco[x,y+1];
end;
for x:=1 to NbreCellX do
begin
tco[x,NbreCellY].Adresse:=0;
tco[x,NbreCellY].BImage:=0;
tco[x,NbreCellY].inverse:=false;
tco[x,NbreCellY].repr:=0;
tco[x,NbreCellY].texte:='';
tco[x,NbreCellY].fonte:='';
tco[x,NbreCellY].Couleur:=fond;
tco[x,NbreCellY].PiedFeu:=0;
tco[x,NbreCellY].FeuOriente:=0;
end;
dec(NbreCellY);
affiche_TCO;
end;
procedure TFormTCO.Colonnegauche1Click(Sender: TObject);
var x,y : integer;
begin
if NbreCellX>=MaxCellX then exit;
for x:=NbreCellX downto XClicCell do
begin
for y:=1 to NbreCellY do tco[x+1,y]:=tco[x,y];
end;
for y:=1 to NbreCellX do
begin
tco[XClicCell,y].Adresse:=0;
tco[XClicCell,y].BImage:=0;
tco[XClicCell,y].inverse:=false;
tco[XClicCell,y].repr:=0;
tco[XClicCell,y].texte:='';
tco[XClicCell,y].fonte:='';
tco[XClicCell,y].Couleur:=fond;
tco[XClicCell,y].PiedFeu:=0;
tco[XClicCell,y].FeuOriente:=0;
end;
inc(NbreCellX);
affiche_TCO;
end;
procedure TFormTCO.Colonnedroite1Click(Sender: TObject);
var x,y : integer;
begin
if NbreCellX>=MaxCellX then exit;
for x:=NbreCellX downto XClicCell+1 do
begin
for y:=1 to NbreCellY do tco[x+1,y]:=tco[x,y];
end;
for y:=1 to NbreCellX do
begin
tco[XClicCell+1,y].Adresse:=0;
tco[XClicCell+1,y].BImage:=0;
tco[XClicCell+1,y].inverse:=false;
tco[XClicCell+1,y].repr:=0;
tco[XClicCell+1,y].texte:='';
tco[XClicCell+1,y].fonte:='';
tco[XClicCell+1,y].Couleur:=fond;
tco[XClicCell+1,y].PiedFeu:=0;
tco[XClicCell+1,y].FeuOriente:=0;
end;
inc(NbreCellX);
affiche_TCO;
end;
// suppression colonne
procedure TFormTCO.ColonneClick(Sender: TObject);
var x,y : integer;
begin
if NbreCellX<=1 then exit;
// tampon de sauvegarde
TamponTCO_Org.NbreCellX:=NbreCellX;
TamponTCO_Org.NbreCellY:=NbreCellY;
TamponTCO_Org.x1:=1;
TamponTCO_Org.x2:=NbreCellX;
TamponTCO_Org.y1:=1;
TamponTCO_Org.y2:=NbreCellY;
xcoupe:=1;ycoupe:=1;
for y:=TamponTCO_Org.y1 to TamponTCO_Org.y2 do
for x:=TamponTCO_Org.x1 to TamponTCO_Org.x2 do
tamponTCO[x,y]:=tco[x,y];
TamponAffecte:=true;
// supression colonne
for x:=xClicCell to NbreCellx do
begin
for y:=1 to NbreCelly do tco[x,y]:=tco[x+1,y];
end;
for y:=1 to NbreCellY do
begin
tco[NbreCellx,y].Adresse:=0;
tco[NbreCellx,y].BImage:=0;
tco[NbreCellx,y].inverse:=false;
tco[NbreCellx,y].repr:=0;
tco[NbreCellx,y].texte:='';
tco[NbreCellx,y].fonte:='';
tco[NbreCellx,y].Couleur:=fond;
tco[NbreCellx,y].PiedFeu:=0;
tco[NbreCellx,y].FeuOriente:=0;
end;
dec(NbreCellX);
affiche_TCO;
end;
procedure TFormTCO.buttonRazClick(Sender: TObject);
var x,y : integer;
begin
for x:=1 to NbreCellx do
for y:=1 to NbreCelly do tco[x,y].mode:=0;
Affiche_TCO;
end;
procedure TFormTCO.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var i,maxi,x,y : integer;
s : string;
position : tpoint;
begin
i:=FormTCO.TrackBarZoom.Position;
if WheelDelta>0 then
begin
if (i<=ZoomMin) then
begin
FormTCO.TrackBarZoom.Position:=ZoomMin;
exit;
end;
dec(i);
end
else
begin
if (i>=ZoomMax) then
begin
FormTCO.TrackBarZoom.Position:=ZoomMax;
exit;
end;
inc(i);
end;
// positionner la trackbar zoom
FormTCO.TrackBarZoom.Position:=i;
calcul_cellules;
Affiche_TCO;
SelectionAffichee:=false;
//positionner les trackbar du scrollbox sur la position cliquée de la souris
{GetCursorPos(Position);
x:=position.x div largeurCell +1 ;
y:=position.Y div HauteurCell +1 ;
}
maxi:=ScrollBox.HorzScrollBar.Range-ScrollBox.ClientWidth;
i:=round(xClicCell*maxi/NbreCellx);
ScrollBox.HorzScrollBar.position:=i;
maxi:=ScrollBox.VertScrollBar.Range-ScrollBox.ClientHeight;
i:=round(yClicCell*maxi/NbreCelly);
ScrollBox.VertScrollBar.position:=i;
end;
begin
Binary file not shown.
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -23,7 +23,7 @@ var
Lance_verif : integer;
verifVersion,notificationVersion : boolean;
Const Version='5.0'; // sert à la comparaison de la version publiée
Const Version='5.1'; // sert à la comparaison de la version publiée
SousVersion=' '; // en cas d'absence de sous version mettre un espace
implementation
+5
View File
@@ -125,3 +125,8 @@ version 4.72 : Renforcement de la v
version 4.73 : Pilotage des PN en impulsionnel ou non.
version 5.0 : Gestion des sémaphores clignotants et voies libres clignotants.
Gestion des actionneurs déclenchés par évènements aiguillages.
version 5.1 : Gestion décodeur DigiKeijs 4018
Gestion ports COM>10
Ajout fonctions ajouter/supprimer lignes/colonnes dans le TCO
Gestion protocole DCC++