V8.37
This commit is contained in:
306
UnitConfig.pas
306
UnitConfig.pas
@@ -572,7 +572,6 @@ retro_ch='retro';
|
||||
procedure modif_ComboL(Sender : TObject);
|
||||
procedure cb_onclick(Sender : Tobject);
|
||||
procedure tb_onChange(sender : TObject);
|
||||
procedure Bt_onclick(sender : Tobject);
|
||||
procedure Bt_onclick(sender : Tobject);
|
||||
procedure tbCde_onchange(Sender : Tobject);
|
||||
end;
|
||||
@@ -590,7 +589,7 @@ fenetre_ch='Fenetre';
|
||||
Filtrage_det_ch='Filtrage_det';
|
||||
Algo_localisation_ch='Algo_localisation';
|
||||
Avec_roulage_ch='Avec_roulage';
|
||||
IpV4_PC_ch='IpV4_PC';
|
||||
nb_det_dist_ch='nb_det_dist';
|
||||
IpV4_PC_ch='IpV4_PC';
|
||||
ServicesCDM_ch='ServicesCDM';
|
||||
retro_ch='retro';
|
||||
@@ -633,7 +632,7 @@ var
|
||||
nom_dec_pers_ch='Nom_dec_pers';
|
||||
Nom_fich_TCO_ch='Nom_fichier_TCO';
|
||||
LargeurF_ch='LargeurF';
|
||||
HauteurF_ch='HauteurF';
|
||||
HauteurF_ch='HauteurF';
|
||||
OffsetXF_ch='OffsetX';
|
||||
OffsetYF_ch='OffsetY';
|
||||
PosSplitter_ch='Splitter';
|
||||
@@ -678,10 +677,10 @@ function place_id(s : string) : string;
|
||||
EditZdet1V1F,EditZdet2V1F,EditZdet1V1O,EditZdet2V1O,
|
||||
EditZdet1V2F,EditZdet2V2F,EditZdet1V2O,EditZdet2V2O,
|
||||
EditZdet1V3F,EditZdet2V3F,EditZdet1V3O,EditZdet2V3O,
|
||||
EditZdet1V4F,EditZdet2V4F,EditZdet1V4O,EditZdet2V4O,
|
||||
EditZdet1V4F,EditZdet2V4F,EditZdet1V4O,EditZdet2V4O,
|
||||
EditZdet1V5F,EditZdet2V5F,EditZdet1V5O,EditZdet2V5O : Tedit;
|
||||
EditT : Array[1..10] of Tedit;
|
||||
TextBoxCde : array[1..19] of Tedit;
|
||||
TextBoxCde : array[1..19] of Tedit;
|
||||
|
||||
LabelPortCde,LbPnVoie1,LbAPnVoie1,LbAPnVoie2,LbAPnVoie3,LbAPnVoie4,LbAPnVoie5,LbATitre,
|
||||
LbZTitre,LbZPnVoie1,LbZPnVoie2,LbZPnVoie3,LbZPnVoie4,LbZPnVoie5,LabelMP,LabelNumeroP : Tlabel;
|
||||
@@ -727,16 +726,16 @@ begin
|
||||
if CDM_connecte=false then begin envoi_CDM:=false;exit;end;
|
||||
if traceTrames then afficheDebug(s,clLime);
|
||||
Formprinc.ClientSocketCDM.Socket.SendText(s);
|
||||
// attend l'ack
|
||||
// attend l'ack
|
||||
ackCDM:=false;nackCDM:=false;
|
||||
temps:=0;
|
||||
repeat
|
||||
inc(temps);Sleep(100);
|
||||
Application.processMessages;
|
||||
until ferme or ackCDM or nackCDM or (temps>30); // CDM répond < 1s
|
||||
|
||||
inc(temps);Sleep(100);
|
||||
Application.processMessages;
|
||||
until ferme or ackCDM or nackCDM or (temps>30); // CDM répond < 1s
|
||||
|
||||
if not(ackCDM) or nack then
|
||||
begin
|
||||
begin
|
||||
Affiche('Pas de réponse de CDM Rail',clRed);
|
||||
end;
|
||||
|
||||
@@ -1071,7 +1070,7 @@ begin
|
||||
|
||||
// renvoie un A si BT est un aiguillage (aig, tjd, tjs tri)
|
||||
function TypeEl_to_char(BT : TEquipement) : string;
|
||||
begin
|
||||
begin
|
||||
case BT of // 1=détecteur 2=aig ou TJD ou TJS 4=tri
|
||||
det : TypeEl_to_char:='';
|
||||
aig,tjd,tjs,triple : TypeEl_to_char:='A';
|
||||
@@ -1079,7 +1078,7 @@ begin
|
||||
end;
|
||||
|
||||
function TypeElAIg_to_char(adr : integer;c : char) : string;
|
||||
var s: string;
|
||||
var s: string;
|
||||
begin
|
||||
if (adr=0) and (c<>'D') and (c<>'S') and (c<>'P') then s:='Buttoir';
|
||||
|
||||
@@ -1183,7 +1182,7 @@ begin
|
||||
s:=s+intToSTR(Signaux[i].SR[nc].sortie0);
|
||||
if nc<8 then s:=s+',' else s:=s+')';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// décodeur CDF ou digikeijs
|
||||
if (Signaux[i].decodeur=2) or (Signaux[i].decodeur=5) then
|
||||
@@ -1198,10 +1197,10 @@ begin
|
||||
end;
|
||||
|
||||
// signal belge
|
||||
if (Signaux[i].aspect=20) then
|
||||
if (Signaux[i].aspect=20) then
|
||||
begin
|
||||
s:=s+',NA'+intToSTR(Signaux[i].na)+',VCV';
|
||||
if Signaux[i].verscontrevoie then s:=s+'1' else s:=s+'0';
|
||||
if Signaux[i].verscontrevoie then s:=s+'1' else s:=s+'0';
|
||||
s:=s+',CV';
|
||||
if Signaux[i].contrevoie then s:=s+'1' else s:=s+'0';
|
||||
end;
|
||||
@@ -1246,7 +1245,7 @@ begin
|
||||
// adresse de signal
|
||||
val(s,adresse,erreur);
|
||||
if adresse=0 then begin affiche('Erreur 671 ligne '+s,clred);exit;end;
|
||||
// vérifier si le signal existe pour ne pas le stocker
|
||||
// vérifier si le signal existe pour ne pas le stocker
|
||||
for id:=1 to NbreSignaux do
|
||||
begin
|
||||
if Signaux[id].adresse=adresse then
|
||||
@@ -1263,11 +1262,11 @@ begin
|
||||
else
|
||||
begin
|
||||
inc(NbreSignaux);
|
||||
Signaux[i].adresse:=adresse;
|
||||
Signaux[i].adresse:=adresse;
|
||||
tablo_Index_Signal[adresse]:=i; // stocker l'index provisoire avant tri
|
||||
j:=pos(',',s);
|
||||
if j>1 then
|
||||
begin
|
||||
begin
|
||||
sa:=copy(s,1,j-1);
|
||||
if sa[1]='D' then
|
||||
// signal directionnel ------------------------------------------
|
||||
@@ -1472,7 +1471,7 @@ begin
|
||||
Val(s,k,erreur);
|
||||
delete(s,1,erreur);
|
||||
if k=0 then
|
||||
begin
|
||||
begin
|
||||
if Signaux[i].decodeur=6 then begin Affiche('Erreur 680 Ligne '+chaine_signal+' Manque définition décodeur UniSemaf signal '+intToSTR(adresse),clred);end;
|
||||
end
|
||||
else
|
||||
@@ -1504,7 +1503,7 @@ begin
|
||||
bd:=0;
|
||||
repeat
|
||||
inc(bd);
|
||||
setlength(Signaux[i].condCarre[l],bd+1); // une condition en plus
|
||||
setlength(Signaux[i].condCarre[l],bd+1); // une condition en plus
|
||||
k:=pos(',',sa);
|
||||
if k<>0 then chaine:=copy(sa,1,k-1) else chaine:=sa;
|
||||
if chaine[1]='A' then
|
||||
@@ -1736,9 +1735,6 @@ begin
|
||||
writeln(fichierN,serveurIPCDM_Touche_ch+'='+s);
|
||||
writeln(fichierN,PortServeur_ch+'=',PortServeur);
|
||||
writeln(fichierN,Filtrage_det_ch+'=',filtrageDet0);
|
||||
writeln(fichierN,AntiTimeoutEthLenz_ch+'=',AntiTimeoutEthLenz);
|
||||
// taille de la fonte
|
||||
writeln(fichierN,Fonte_ch+'=',TailleFonte);
|
||||
writeln(fichierN,AntiTimeoutEthLenz_ch+'=',AntiTimeoutEthLenz);
|
||||
// taille de la fonte
|
||||
writeln(fichierN,Fonte_ch+'=',TailleFonte);
|
||||
@@ -1827,8 +1823,8 @@ begin
|
||||
|
||||
if MasqueBandeauTCO then s:='1' else s:='0';
|
||||
writeln(fichierN,MasqueBandeauTCO_ch+'=',s);
|
||||
|
||||
// lancement de CDM
|
||||
|
||||
// lancement de CDM
|
||||
if LanceCDM then s:='1' else s:='0';
|
||||
writeln(fichierN,CDM_ch+'=',s);
|
||||
|
||||
@@ -1913,11 +1909,11 @@ begin
|
||||
writeln(fichierN,s);
|
||||
end;
|
||||
// commande par périphérique
|
||||
if decodeur_pers[i].commande=1 then
|
||||
if decodeur_pers[i].commande=1 then
|
||||
begin
|
||||
k:=decodeur_Pers[i].nation;
|
||||
if k=1 then
|
||||
for j:=1 to 19 do
|
||||
if k=1 then
|
||||
for j:=1 to 19 do
|
||||
begin
|
||||
s:=etats[j]+','+decodeur_pers[i].desc[j].Chcommande;
|
||||
writeln(fichierN,s);
|
||||
@@ -2014,6 +2010,7 @@ end;
|
||||
end;
|
||||
writeln(fichierN,'0');
|
||||
closefile(fichierN);
|
||||
end;
|
||||
|
||||
// trier les détecteurs
|
||||
procedure trier_detecteurs;
|
||||
@@ -2030,11 +2027,25 @@ begin
|
||||
Adresse_detecteur[j]:=temp;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// trier les aiguillages
|
||||
procedure trier_aig;
|
||||
var i,j : integer;
|
||||
temp : TAiguillage;
|
||||
s : string;
|
||||
begin
|
||||
for i:=1 to MaxAiguillage-1 do
|
||||
begin
|
||||
for j:=i+1 to MaxAiguillage do
|
||||
begin
|
||||
if aiguillage[i].Adresse>aiguillage[j].adresse then
|
||||
begin
|
||||
temp:=aiguillage[i];
|
||||
aiguillage[i]:=aiguillage[j];
|
||||
// trier les aiguillages
|
||||
aiguillage[j]:=temp;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -2049,10 +2060,40 @@ begin
|
||||
begin
|
||||
s:=encode_aig(i);
|
||||
formConfig.ListBoxAig.Items.AddObject(s, Pointer(clRed));
|
||||
Aiguillage[i].modifie:=false;
|
||||
end;
|
||||
formconfig.ListBoxAig.itemindex:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
// trie les signaux
|
||||
procedure trier_sig;
|
||||
var i,j,l,longestLength,pixelLength : integer;
|
||||
s,LongestString : string;
|
||||
temp : TSignal;
|
||||
begin
|
||||
for i:=1 to NbreSignaux-1 do
|
||||
begin
|
||||
for j:=i+1 to NbreSignaux do
|
||||
begin
|
||||
if Signaux[i].Adresse>Signaux[j].adresse then
|
||||
begin
|
||||
temp:=Signaux[i];
|
||||
Signaux[i]:=Signaux[j];
|
||||
Signaux[j]:=temp;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// calcule les index
|
||||
for i:=1 to NbreSignaux do
|
||||
begin
|
||||
tablo_index_signal[Signaux[i].adresse]:=i;
|
||||
end;
|
||||
|
||||
if formconfig<>nil then
|
||||
begin
|
||||
formconfig.ListBoxSig.Clear;
|
||||
longestLength:=0;
|
||||
for i:=1 to NbreSignaux do
|
||||
begin
|
||||
@@ -2063,7 +2104,7 @@ var s,sa,SOrigine: string;
|
||||
formconfig.ListBoxSig.Items.Add(s);
|
||||
// trouver la chaine la plus longue pour la future scrollbar
|
||||
l:=Length(s);
|
||||
for j:=i+1 to NbreSignaux do
|
||||
if l>LongestLength then
|
||||
begin
|
||||
LongestString:=s;
|
||||
LongestLength:=l;
|
||||
@@ -2106,7 +2147,7 @@ var s,sa,SOrigine: string;
|
||||
// supprime les espaces éventuels sauf entre les guillements
|
||||
esp:=0;
|
||||
repeat
|
||||
l1:=pos('"',s);l2:=posEx('"',s,l1+1);
|
||||
l1:=pos('"',s);l2:=posEx('"',s,l1+1);
|
||||
esp:=posEx(' ',s,Esp+1);
|
||||
if (esp<>0) and (esp<l1) and (esp>l2) then delete(s,esp,1);
|
||||
until esp=0;
|
||||
@@ -2460,6 +2501,7 @@ var s,sa,SOrigine: string;
|
||||
s:=lit_ligne;
|
||||
inc(Nligne);
|
||||
//Affiche(s,ClLime);
|
||||
//chaine:=s;
|
||||
if debugconfig then Affiche(s,ClLime);
|
||||
if (s<>'0') then
|
||||
begin
|
||||
@@ -3196,20 +3238,6 @@ var s,sa,SOrigine: string;
|
||||
delete(s,i,length(sa));
|
||||
val(s,i,erreur);
|
||||
Srvc_aig:=testbit(i,0);
|
||||
Srvc_act:=testbit(i,1);
|
||||
Srvc_det:=testbit(i,2);
|
||||
Srvc_pos:=testbit(i,3);
|
||||
Srvc_sig:=testbit(i,4);
|
||||
Srvc_tdcc:=false;
|
||||
end;
|
||||
|
||||
// adresse ip et port de la centrale
|
||||
sa:=uppercase(IPV4_INTERFACE_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i=1 then
|
||||
begin
|
||||
inc(nv);
|
||||
trouve_IPV4_INTERFACE:=true;
|
||||
Srvc_act:=testbit(i,1);
|
||||
Srvc_det:=testbit(i,2);
|
||||
Srvc_pos:=testbit(i,3);
|
||||
@@ -3350,16 +3378,16 @@ var s,sa,SOrigine: string;
|
||||
delete(s,i,length(sa));
|
||||
val(s,AffMemoFenetre,erreur);
|
||||
end;
|
||||
|
||||
// Nombre de cantons avant signal
|
||||
|
||||
// Nombre de cantons avant signal
|
||||
sa:=uppercase(Nb_cantons_Sig_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i=1 then
|
||||
begin
|
||||
inc(nv);
|
||||
inc(nv);
|
||||
trouve_Nb_cantons_Sig:=true;
|
||||
delete(s,i,length(sa));
|
||||
val(s,Nb_cantons_Sig,erreur);
|
||||
delete(s,i,length(sa));
|
||||
val(s,Nb_cantons_Sig,erreur);
|
||||
if (Nb_cantons_Sig<3) or (Nb_cantons_Sig>5) then Nb_cantons_Sig:=3;
|
||||
end;
|
||||
|
||||
@@ -3660,7 +3688,7 @@ begin
|
||||
end;
|
||||
|
||||
// section accesoires comusb
|
||||
sa:=uppercase(section_accCOM_ch);
|
||||
sa:=uppercase(section_accCOM_ch);
|
||||
if pos(sa,s)<>0 then
|
||||
begin
|
||||
trouve_section_acccomusb:=true;
|
||||
@@ -3689,10 +3717,10 @@ begin
|
||||
trouve_entete:=false;
|
||||
trouve_IPV4_INTERFACE:=false;
|
||||
trouve_Tempo_maxi:=false;
|
||||
trouve_PROTOCOLE_SERIE:=false;
|
||||
trouve_PROTOCOLE_SERIE:=false;
|
||||
trouve_TCO:=false;
|
||||
trouve_LAY:=false;
|
||||
trouve_Serveur_interface:=false;
|
||||
trouve_LAY:=false;
|
||||
trouve_Serveur_interface:=false;
|
||||
trouve_cdm:=false;
|
||||
trouve_NOTIF_VERSION:=false;
|
||||
trouve_masqueTCO:=false;
|
||||
@@ -3746,7 +3774,7 @@ begin
|
||||
Detecteur[i].IndexTrain:=0;
|
||||
Ancien_detecteur[i]:=false;
|
||||
end;
|
||||
//Affiche('Lecture du fichier de configuration '+NomConfig,clyellow);
|
||||
//Affiche('Lecture du fichier de configuration '+NomConfig,clyellow);
|
||||
try
|
||||
assign(fichier,NomConfig);
|
||||
reset(fichier);
|
||||
@@ -3784,10 +3812,10 @@ begin
|
||||
lit_flux;
|
||||
close(fichier);
|
||||
|
||||
configNulle:=(maxAiguillage=0) and (NbreBranches=0) and (NbreSignaux=0);
|
||||
configNulle:=(maxAiguillage=0) and (NbreBranches=0) and (NbreSignaux=0);
|
||||
if configNulle then Affiche('Fonctionnement en config nulle',ClYellow);
|
||||
|
||||
s:='';//Affiche(intToSTR(Nv),clred);
|
||||
|
||||
s:='';//Affiche(intToSTR(Nv),clred);
|
||||
if not(trouve_NbDetDist) then s:=nb_det_dist_ch;
|
||||
if not(trouve_ipv4_PC) then s:=IpV4_PC_ch;
|
||||
if not(trouve_retro) then s:=retro_ch;
|
||||
@@ -4043,7 +4071,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||
var ok : boolean;
|
||||
var ok : boolean;
|
||||
begin
|
||||
ok:=verifie_panneau_config;
|
||||
if ok then
|
||||
@@ -4059,12 +4087,14 @@ begin
|
||||
var AncAdresse,adresse,erreur : integer;
|
||||
s : string;
|
||||
begin
|
||||
if index<1 then exit;
|
||||
if index<1 then exit;
|
||||
s:=Uppercase(FormConfig.ListBoxSig.Items[index-1]); // ligne cliquée
|
||||
if s='' then
|
||||
begin
|
||||
ligneclicSig:=-1;
|
||||
exit;
|
||||
end;
|
||||
|
||||
Signal_Sauve:=Signaux[index]; // sauvegarde
|
||||
|
||||
AncLigneClicSig:=ligneclicSig;
|
||||
@@ -4093,7 +4123,7 @@ begin
|
||||
if affevt then affiche('FormConfig activate',clLime);
|
||||
activ:=true;
|
||||
clicListe:=false;
|
||||
Edit_HG.Visible:=false;
|
||||
Edit_HG.Visible:=false;
|
||||
labelHG.Visible:=false;
|
||||
EditP1.Visible:=false;
|
||||
EditP2.Visible:=false;
|
||||
@@ -4174,9 +4204,20 @@ begin
|
||||
CheckBoxServAct.checked:=Srvc_Act;
|
||||
CheckServPosTrains.checked:=Srvc_Pos;
|
||||
CheckBoxSrvSig.Checked:=Srvc_Sig;
|
||||
|
||||
|
||||
CheckBoxRazSignaux.checked:=Raz_Acc_signaux;
|
||||
CheckBoxInitAig.checked:=AvecInitAiguillages;
|
||||
CheckPosAig.checked:=AvecDemandeAiguillages;
|
||||
CheckBoxDemarUSB.checked:=AvecDemandeInterfaceUSB;
|
||||
CheckBoxDemarEth.checked:=AvecDemandeInterfaceEth;
|
||||
CheckBoxSombre.Checked:=sombre;
|
||||
|
||||
RadioButtonXpress.Checked:=protocole=1;
|
||||
RadioButtonDcc.Checked:=protocole=2;
|
||||
|
||||
if NbreDecPers>0 then
|
||||
ComboBoxNation.Itemindex:=decodeur_pers[1].nation-1;
|
||||
|
||||
clicListe:=true; // empeche le traitement de l'evt text
|
||||
editLAY.Text:=lay;
|
||||
|
||||
@@ -4649,8 +4690,8 @@ begin
|
||||
if affevt then affiche('tbCde_onchange',clyellow);
|
||||
tb:=sender as Tedit;
|
||||
s:=tb.Name;
|
||||
te:=tb.text;
|
||||
i:=extract_int(s);
|
||||
te:=tb.text;
|
||||
i:=extract_int(s);
|
||||
if (i<1) or (i>19) or (decCourant<1) then exit;
|
||||
decodeur_pers[decCourant].desc[i].Chcommande:=te;
|
||||
|
||||
@@ -5277,18 +5318,6 @@ begin
|
||||
with EditZDet2V5O do
|
||||
begin
|
||||
Name:='EditZDet2V5O';
|
||||
left:=190;Top:=146;Width:=35;Height:=21;
|
||||
text:='';
|
||||
parent:=GroupBoxPNZ;
|
||||
hint:='Détecteur 2 d''ouverture';
|
||||
showhint:=true;
|
||||
onChange:=formConfig.modif_editT;
|
||||
end;
|
||||
|
||||
// remplit les 5 fenêtres de config des aiguillages branches signaux, actionneurs, accessoires comusb
|
||||
formconfig.ComboBoxDecodeurPerso.AutoComplete:=false; // mettre absolument à false sinon remplissage auto quand on tape et l'index sélec peut changer!!!
|
||||
for i:=1 to NbreDecPers do
|
||||
begin
|
||||
left:=190;Top:=146;Width:=35;Height:=21;
|
||||
text:='';
|
||||
parent:=GroupBoxPNZ;
|
||||
@@ -5307,7 +5336,6 @@ begin
|
||||
if NbreDecPers>0 then
|
||||
begin
|
||||
decCourant:=1;
|
||||
ListBoxAig.Items.AddObject(s, Pointer(clRed));
|
||||
formconfig.ComboBoxDecodeurPerso.ItemIndex:=0;
|
||||
ComboBoxNation.ItemHeight:=decodeur_pers[decCourant].nation;
|
||||
end
|
||||
@@ -5317,6 +5345,7 @@ begin
|
||||
// branches
|
||||
clicListe:=true;
|
||||
RichBranche.clear;
|
||||
for i:=1 to NbreBranches do
|
||||
begin
|
||||
s:=Branche[i];
|
||||
RichBranche.Lines.Add(s);
|
||||
@@ -5327,7 +5356,7 @@ begin
|
||||
SelStart:=0;
|
||||
Perform(EM_SCROLLCARET,0,0);
|
||||
end;
|
||||
|
||||
|
||||
// signaux
|
||||
ListBoxSig.Items.clear;
|
||||
ComboBoxDec.items.Clear;
|
||||
@@ -5342,6 +5371,7 @@ begin
|
||||
end;
|
||||
|
||||
// décodeurs personalisés
|
||||
for i:=1 to NbreDecPers do
|
||||
begin
|
||||
s:=decodeur_pers[i].nom;
|
||||
formconfig.ComboBoxDec.Items.add(s);
|
||||
@@ -5395,7 +5425,7 @@ begin
|
||||
|
||||
// actionneurs PN
|
||||
ListBoxPN.Clear;
|
||||
longestLength:=0;
|
||||
longestLength:=0;
|
||||
for i:=1 to NbrePN do
|
||||
begin
|
||||
s:=encode_act_pn(i);
|
||||
@@ -6209,7 +6239,7 @@ begin
|
||||
EditAct2.Visible:=false;
|
||||
EditTrainDecl.Visible:=false;
|
||||
LabelTrain.Visible:=false;
|
||||
editact2.Visible:=false;
|
||||
editact2.Visible:=false;
|
||||
LabelActionneur.Caption:='Aiguillage';
|
||||
EditEtatActionneur.Hint:='1 ou S=dévié 2 ou D=droit';
|
||||
EditAct.Hint:='Aiguillage ';
|
||||
@@ -6224,7 +6254,7 @@ begin
|
||||
case Equip of
|
||||
aig : s:='Aiguillage ';
|
||||
tjd : s:='Tjd ';
|
||||
tjs : s:='Tjs ';
|
||||
tjs : s:='Tjs ';
|
||||
triple : s:='Aiguillage triple ';
|
||||
det : s:='Détecteur ';
|
||||
else s:='Inconnu ';
|
||||
@@ -7493,10 +7523,10 @@ begin
|
||||
end;
|
||||
|
||||
decodeur:=ComboBoxDec.ItemIndex;
|
||||
|
||||
|
||||
if decodeur>NbDecodeur+NbreDecPers then exit;
|
||||
|
||||
Signaux[i].decodeur:=decodeur;
|
||||
Signaux[i].decodeur:=decodeur;
|
||||
|
||||
Maj_Hint_Signal(i);
|
||||
|
||||
@@ -7519,7 +7549,7 @@ begin
|
||||
end;
|
||||
s:=encode_signal(i);
|
||||
formconfig.ListBoxSig.Items[ligneclicSig]:=s;
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
aff_champs_signaux(i);
|
||||
if not(verif_dec_sig(false)) then FormConfig.labelInfo.Caption:='Combinaison décodeur / aspect incompatible';
|
||||
|
||||
@@ -7534,7 +7564,7 @@ begin
|
||||
if clicliste or (ligneClicSig<0) then exit;
|
||||
if affevt then Affiche('Evt detecteur 1',clOrange);
|
||||
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditDet1.Text;
|
||||
@@ -7573,7 +7603,7 @@ begin
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditSuiv1.Text;
|
||||
s:=EditSuiv1.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
Val(s,i,erreur);
|
||||
@@ -7601,7 +7631,7 @@ begin
|
||||
ListBoxSig.Items[ligneClicSig]:=s;
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormConfig.EditSuiv1Change(Sender: TObject);
|
||||
@@ -7623,7 +7653,7 @@ begin
|
||||
Val(s,i,erreur);
|
||||
if (s<>'') and (erreur<>0) then begin LabelInfo.caption:='Erreur détecteur2 ';exit;end;
|
||||
LabelInfo.caption:=' ';
|
||||
Signaux[ligneClicSig+1].Adr_det2:=i;
|
||||
Signaux[ligneClicSig+1].Adr_det2:=i;
|
||||
maj_hint_Signal(ligneClicSig+1);
|
||||
s:=encode_signal(ligneClicSig+1);
|
||||
ListBoxSig.Items[ligneClicSig]:=s;
|
||||
@@ -7639,7 +7669,7 @@ begin
|
||||
|
||||
|
||||
procedure TFormConfig.CheckVerrouCarreClick(Sender: TObject);
|
||||
var s : string;
|
||||
var s : string;
|
||||
begin
|
||||
if clicliste or (ligneClicSig<0) then exit;
|
||||
if affevt then Affiche('Evt Verrou carré',clOrange);
|
||||
@@ -7680,7 +7710,7 @@ begin
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditSuiv2.Text;
|
||||
s:=EditSuiv2.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
Val(s,i,erreur);
|
||||
@@ -7708,7 +7738,7 @@ begin
|
||||
ListBoxSig.Items[ligneClicSig]:=s;
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormConfig.EditSuiv2Change(Sender: TObject);
|
||||
begin
|
||||
@@ -7756,7 +7786,7 @@ begin
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditSuiv3.Text;
|
||||
s:=EditSuiv3.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
Val(s,i,erreur);
|
||||
@@ -7784,7 +7814,7 @@ begin
|
||||
ListBoxSig.Items[ligneClicSig]:=s;
|
||||
ListBoxSig.selected[ligneClicSig]:=true;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormConfig.EditSuiv3Change(Sender: TObject);
|
||||
begin
|
||||
@@ -7832,7 +7862,7 @@ begin
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditSuiv4.Text;
|
||||
s:=EditSuiv4.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
Val(s,i,erreur);
|
||||
@@ -8296,16 +8326,16 @@ begin
|
||||
if affevt then Affiche('Evt aspect',clOrange);
|
||||
i:=ComboBoxAsp.ItemIndex;
|
||||
//Affiche(IntToSTR(i),clyellow);
|
||||
case i of
|
||||
case i of
|
||||
0 : aspect:=2;
|
||||
1 : aspect:=3;
|
||||
1 : aspect:=3;
|
||||
2 : aspect:=4;
|
||||
3 : aspect:=5;
|
||||
4 : aspect:=7;
|
||||
5 : aspect:=9;
|
||||
11 : aspect:=20;
|
||||
else aspect:=i+6;
|
||||
end;
|
||||
end;
|
||||
index:=ligneClicSig+1; // index du feu
|
||||
if index<1 then
|
||||
begin
|
||||
@@ -8354,7 +8384,7 @@ begin
|
||||
|
||||
|
||||
procedure TFormConfig.EditSpecUniChange(Sender: TObject);
|
||||
var erreur,i,Adr,decodeur : integer ;
|
||||
var erreur,i,Adr,decodeur : integer ;
|
||||
s : string ;
|
||||
begin
|
||||
if clicliste or (ligneClicSig<0) then exit;
|
||||
@@ -8363,17 +8393,17 @@ end;
|
||||
if FormConfig.PageControl.ActivePage=FormConfig.TabSheetSig then
|
||||
with Formconfig do
|
||||
begin
|
||||
s:=EditSpecUni.Text;
|
||||
s:=EditSpecUni.Text;
|
||||
Val(s,i,erreur); // code unisemaf
|
||||
s:=EditAdrSig.Text;
|
||||
Val(s,Adr,erreur); // Adresse signal
|
||||
// vérification code unisemaf
|
||||
decodeur:=Signaux[ligneClicSig+1].decodeur;
|
||||
// vérification code unisemaf
|
||||
decodeur:=Signaux[ligneClicSig+1].decodeur;
|
||||
if decodeur=6 then
|
||||
begin
|
||||
begin
|
||||
erreur:=verif_unisemaf(Adr,i);
|
||||
if erreur=1 then begin LabelInfo.caption:='Erreur code Unisemaf';exit;end;
|
||||
if erreur=2 then begin LabelInfo.caption:='Erreur cohérence aspect signal';exit;end;
|
||||
if erreur=2 then begin LabelInfo.caption:='Erreur cohérence aspect signal';exit;end;
|
||||
LabelInfo.caption:=' ';
|
||||
Signaux[ligneClicSig+1].Unisemaf:=i;
|
||||
end;
|
||||
@@ -8925,8 +8955,7 @@ begin
|
||||
s : string;
|
||||
begin
|
||||
clicliste:=true;
|
||||
if NbreSignaux>=NbreMaxiSignaux then
|
||||
begin
|
||||
if NbreSignaux>=NbreMaxiSignaux then
|
||||
begin
|
||||
Affiche('Nombre maximal de signaux atteint',clRed);
|
||||
exit;
|
||||
@@ -8940,9 +8969,9 @@ begin
|
||||
AdrMax:=0;
|
||||
for i:=1 to NbreSignaux do
|
||||
begin
|
||||
end;
|
||||
if AdrMax<Signaux[i].adresse then AdrMax:=Signaux[i].adresse;
|
||||
end;
|
||||
i:=NbreSignaux;
|
||||
|
||||
i:=NbreSignaux;
|
||||
Signaux[i].Adresse:=AdrMax+20;
|
||||
Signaux[i].Aspect:=3;
|
||||
@@ -8985,8 +9014,9 @@ begin
|
||||
ss:='';
|
||||
n:=0;
|
||||
for i:=0 to NbreSignaux-1 do
|
||||
begin
|
||||
if formconfig.ListBoxSig.selected[i] then
|
||||
begin
|
||||
if formconfig.ListBoxSig.selected[i] then
|
||||
begin
|
||||
ss:=ss+ intToSTR(Signaux[i+1].adresse)+' ';
|
||||
inc(n);
|
||||
end;
|
||||
@@ -8997,7 +9027,11 @@ begin
|
||||
if n=1 then s:=s+' le signal ' else s:=s+' les signaux ';
|
||||
s:=s+ss+' ?';
|
||||
|
||||
|
||||
if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit;
|
||||
|
||||
clicliste:=true;
|
||||
raz_champs_sig;
|
||||
|
||||
// suppression
|
||||
n:=0;
|
||||
i:=1;
|
||||
@@ -9041,7 +9075,7 @@ begin
|
||||
with Signaux[j].Lbl do
|
||||
begin
|
||||
Top:=HtImg+((HtImg+EspY+20)*((j-1) div NbreImagePLigne));
|
||||
Left:=10+ (LargImg+5)*((j-1) mod (NbreImagePLigne));
|
||||
Left:=10+ (LargImg+5)*((j-1) mod (NbreImagePLigne));
|
||||
caption:='@'+IntToSTR(Signaux[j].adresse);
|
||||
end;
|
||||
if Signaux[j].checkFB<>nil then
|
||||
@@ -9049,7 +9083,13 @@ begin
|
||||
begin
|
||||
Name:='CheckBoxFB'+intToSTR(Signaux[j].adresse);
|
||||
Hint:='Feu blanc';
|
||||
Top:=HtImg+15+((HtImg+EspY+20)*((j-1) div NbreImagePLigne));
|
||||
Top:=HtImg+15+((HtImg+EspY+20)*((j-1) div NbreImagePLigne));
|
||||
Left:=10+ (LargImg+5)*((j-1) mod (NbreImagePLigne));
|
||||
end;
|
||||
end;
|
||||
dec(NbreSignaux);
|
||||
i:=0;
|
||||
end;
|
||||
inc(i);
|
||||
until i>NbreSignaux;
|
||||
|
||||
@@ -9064,17 +9104,18 @@ end;
|
||||
begin
|
||||
FormConfig.ListBoxSig.items.Add(s);
|
||||
end;
|
||||
begin
|
||||
end;
|
||||
ligneClicSig:=-1;
|
||||
AncligneClicSig:=-1;
|
||||
|
||||
FormConfig.ListBoxSig.items.Add(s);
|
||||
end;
|
||||
end;
|
||||
// calcule les index - ne pas trier les signaux, il faudrait trier la fenetre graphique
|
||||
for i:=1 to NbreSignaux do
|
||||
begin
|
||||
tablo_index_signal[Signaux[i].adresse]:=i;
|
||||
end;
|
||||
|
||||
clicliste:=false;
|
||||
clicliste:=false;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
@@ -9085,7 +9126,7 @@ begin
|
||||
|
||||
// Ajouter le feu supprimé
|
||||
procedure TFormConfig.ButtonInsFeuClick(Sender: TObject);
|
||||
procedure TFormConfig.ButtonInsFeuClick(Sender: TObject);
|
||||
var s : string;
|
||||
begin
|
||||
if Signal_supprime.adresse<>0 then
|
||||
begin
|
||||
@@ -10737,6 +10778,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.EditP4Exit(Sender: TObject);
|
||||
begin
|
||||
adresse_p4;
|
||||
end;
|
||||
|
||||
@@ -11114,7 +11156,7 @@ begin
|
||||
begin
|
||||
// boucle de ligne
|
||||
for ligne:=1 to 6 do
|
||||
begin
|
||||
begin
|
||||
s:=MemoCarre.Lines[ligne-1];
|
||||
sO:=s;
|
||||
// boucle de chaine
|
||||
@@ -11152,7 +11194,7 @@ begin
|
||||
s:=uppercase(MemoCarre.Lines[ligne-1]);
|
||||
clicListe:=true;
|
||||
MemoCarre.Lines[ligne-1]:=s;
|
||||
clicListe:=false;
|
||||
clicListe:=false;
|
||||
sO:=s;
|
||||
j:=1;
|
||||
if s<>'' then
|
||||
@@ -11716,7 +11758,7 @@ begin
|
||||
|
||||
procedure TFormConfig.CheckPnPulseClick(Sender: TObject);
|
||||
var i : integer;
|
||||
s : string;
|
||||
s : string;
|
||||
begin
|
||||
if clicliste or (lignecliqueePN<0) then exit;
|
||||
if affevt then affiche('Evt CheckPnPulse Change',clyellow);
|
||||
@@ -11732,7 +11774,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormConfig.CheckFVCClick(Sender: TObject);
|
||||
var s : string;
|
||||
var s : string;
|
||||
begin
|
||||
if clicliste or (ligneClicSig<0) then exit;
|
||||
if affevt then Affiche('Evt FVC',clOrange);
|
||||
@@ -12285,7 +12327,7 @@ procedure TFormConfig.CheckBoxVersContrevoieClick(Sender: TObject);
|
||||
var i : integer;
|
||||
begin
|
||||
with Formconfig.RichCdeDCCpp do
|
||||
begin
|
||||
begin
|
||||
i:=Selstart;
|
||||
ligneDCC:=Perform(EM_LINEFROMCHAR,i,0); // numéro de la lignée cliquée
|
||||
LabelInfo.caption:=decodeDCC(lines[ligneDCC]);
|
||||
@@ -12302,12 +12344,12 @@ begin
|
||||
i:=Selstart;
|
||||
ligneDCC:=Perform(EM_LINEFROMCHAR,i,0); // numéro de la lignée cliquée
|
||||
if ord(Key)=VK_UP then dec(ligneDCC);
|
||||
if ord(Key)=VK_DOWN then inc(ligneDCC);
|
||||
if ord(Key)=VK_DOWN then inc(ligneDCC);
|
||||
if ligneDCC<0 then ligneDCC:=0;
|
||||
|
||||
LabelInfo.caption:=decodeDCC(lines[ligneDCC]);
|
||||
end;
|
||||
|
||||
|
||||
if (Shift=[ssCtrl]) and (key=ord('A')) then
|
||||
begin
|
||||
RichCdeDccpp.SelectAll;
|
||||
@@ -12709,7 +12751,7 @@ begin
|
||||
aff : boolean;
|
||||
begin
|
||||
// supprimer des décodeurs personalisés
|
||||
if decCourant=0 then exit;
|
||||
if decCourant=0 then exit;
|
||||
|
||||
s:='Voulez vous supprimer le décodeur personnalisé '#13+decodeur_pers[decCourant].nom+' ?';
|
||||
if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit;
|
||||
@@ -12725,7 +12767,7 @@ begin
|
||||
//supprimer de la liste des décodeurs si elle est affectée
|
||||
if trouve_entree_combo(ComboBoxDecodeurPerso,s,i) then ComboBoxDecodeurPerso.Items.Delete(i)
|
||||
else affiche('Anomalie ComboBox 1',clred);
|
||||
|
||||
|
||||
//if decCourant>0 then dec(decCourant);
|
||||
decCourant:=0;
|
||||
ComboBoxDecodeurPerso.ItemIndex:=-1;
|
||||
@@ -12796,7 +12838,7 @@ begin
|
||||
j,erreur,adr,ligne,aspect : integer;
|
||||
c : char;
|
||||
begin
|
||||
if (ligneClicSig<0) or clicListe then exit;
|
||||
if (ligneClicSig<0) or clicListe then exit;
|
||||
if affevt then affiche('Evt MemoBlanc change',clyellow);
|
||||
j:=MemoCarre.Selstart;
|
||||
clicMemo:=MemoCarre.Perform(EM_LINEFROMCHAR,j,0); // numéro de la ligne du curseur
|
||||
@@ -12850,7 +12892,7 @@ begin
|
||||
clicListe:=false;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TFormConfig.ListBoxAigDrawItem(Control: TWinControl;
|
||||
Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||||
begin
|
||||
@@ -12869,7 +12911,7 @@ begin
|
||||
if NbreSignaux<1 then exit;
|
||||
|
||||
raz_champs_sig;
|
||||
|
||||
|
||||
with Formconfig.ListBoxSig do
|
||||
begin
|
||||
ligneClicSig:=itemindex;
|
||||
@@ -13560,7 +13602,7 @@ begin
|
||||
|
||||
inc(i);
|
||||
|
||||
// inverse les deux entrées des périphériques
|
||||
// inverse les deux entrées des périphériques
|
||||
Periph:=Tablo_periph[i+1];
|
||||
Tablo_periph[i+1]:=Tablo_periph[i];
|
||||
Tablo_periph[i]:=Periph;
|
||||
|
||||
Reference in New Issue
Block a user