From 4cc0ffd7ea428ab49ae07af6bcca160916344679 Mon Sep 17 00:00:00 2001 From: f1iwq2 Date: Sun, 6 Mar 2022 16:34:25 +0100 Subject: [PATCH] V3.81 --- UnitConfig.dcu | Bin 184772 -> 188066 bytes UnitConfig.dfm | 9 +- UnitConfig.pas | 518 ++++++++++++++++++++--------- UnitConfigTCO.dcu | Bin 12958 -> 12963 bytes UnitDebug.dcu | Bin 22189 -> 22242 bytes UnitPilote.dcu | Bin 11198 -> 11196 bytes UnitPrinc.dcu | Bin 209052 -> 209412 bytes UnitPrinc.dfm | 2 +- UnitPrinc.pas | 86 +++-- UnitSR.dcu | Bin 21172 -> 21169 bytes UnitSimule.dcu | Bin 7777 -> 7822 bytes UnitTCO.dcu | Bin 134195 -> 142282 bytes UnitTCO.dfm | 133 +++++--- UnitTCO.pas | 791 +++++++++++++++++++++++++++----------------- Unit_Pilote_aig.dcu | Bin 0 -> 7365 bytes Unit_Pilote_aig.dfm | 101 ++++++ Unit_Pilote_aig.pas | 130 ++++++++ verif_version.dcu | Bin 11065 -> 11120 bytes verif_version.pas | 2 +- versions.txt | 3 +- 20 files changed, 1243 insertions(+), 532 deletions(-) create mode 100644 Unit_Pilote_aig.dcu create mode 100644 Unit_Pilote_aig.dfm create mode 100644 Unit_Pilote_aig.pas diff --git a/UnitConfig.dcu b/UnitConfig.dcu index d27ba2801e952ee716965ce8569c166aa1ec30e9..719e451f3fc846c47871cb4ce9585ac1677a039c 100644 GIT binary patch delta 64873 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 d7nqEHrff49(J&#ep^IjJxbwW6cA>ZU{{bM+4 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 diff --git a/UnitConfig.dfm b/UnitConfig.dfm index f6df718..5a4975b 100644 --- a/UnitConfig.dfm +++ b/UnitConfig.dfm @@ -1,6 +1,6 @@ object FormConfig: TFormConfig - Left = 230 - Top = 226 + Left = 384 + Top = 136 Hint = 'Modifie les fichiers de configuration selon les s'#233'lections chois' + 'ies' @@ -1578,7 +1578,7 @@ object FormConfig: TFormConfig Top = 8 Width = 633 Height = 497 - ActivePage = TabSheetBranches + ActivePage = TabSheetSig Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 @@ -1858,7 +1858,7 @@ object FormConfig: TFormConfig Top = 18 Width = 215 Height = 13 - Caption = 'Liste des '#233'v'#232'nements envoy'#233's par CDM Rail:' + Caption = 'Liste des '#233'v'#232'nements demand'#233's '#224' CDM Rail:' end object CheckBoxServAig: TCheckBox Left = 8 @@ -2732,6 +2732,7 @@ object FormConfig: TFormConfig ScrollBars = ssBoth TabOrder = 1 WordWrap = False + OnKeyDown = RichBrancheKeyDown OnMouseDown = RichBrancheMouseDown end end diff --git a/UnitConfig.pas b/UnitConfig.pas index 9a3f57a..c3bddc5 100644 --- a/UnitConfig.pas +++ b/UnitConfig.pas @@ -347,6 +347,8 @@ type procedure RadioButtonZonesClick(Sender: TObject); procedure EditAct2Change(Sender: TObject); procedure SpeedButtonChargerClick(Sender: TObject); + procedure RichBrancheKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); private { Déclarations privées } public @@ -446,7 +448,8 @@ end; procedure Maj_Hint_feu(i : integer); var s : string; -begin +begin + // ne pas supprimer le @ espace et = qui sert de marqueur pour identifier le feu s:='@='+inttostr(feux[i].Adresse)+' Decodeur='+intToSTR(feux[i].Decodeur)+' Adresse détecteur associé='+intToSTR(feux[i].Adr_det1)+ ' Adresse élement suivant='+intToSTR(feux[i].Adr_el_suiv1); if feux[i].Btype_suiv1=aig then s:=s+' (aig)'; @@ -500,8 +503,8 @@ var s : string; begin // déconnexion de l'ancienne liaison éventuelle Formprinc.ClientSocketCDM.Close; - - if AdresseIPCDM<>'0' then + + if (AdresseIPCDM<>'0') and (ProcessRunning('CDR')) then begin // ouverture du socket CDM with Formprinc do @@ -553,7 +556,7 @@ begin end else begin - Affiche('La connexion à CDM n''est pas demandée car l''adresse IP est nulle dans '+NomConfig,cyan); + if adresseIPCDM='0' then Affiche('La connexion à CDM n''est pas demandée car l''adresse IP est nulle dans '+NomConfig,cyan); end; end; @@ -662,7 +665,6 @@ begin s:=s+','+intToSTR(aiguillage[index].DDevie)+aiguillage[index].DDevieB+')'; end; - if tjsC then begin s:=s+',L'+intToSTR(aiguillage[index].Tjsint)+aiguillage[index].TjsintB; @@ -941,9 +943,9 @@ begin until (fini) or (j>4); end; end; - if (j>4) or (not(multiple)) then - begin - Affiche('Erreur 678: fichier de configuration ligne erronnée : '+chaine_signal,clred); + if (j>4) or (not(multiple)) then + begin + Affiche('Erreur 678: fichier de configuration ligne erronnée : '+chaine_signal,clred); closefile(fichier); exit; end; @@ -957,11 +959,10 @@ begin if length(s)>0 then if s[1]=',' then delete(s,1,1); if length(s)>0 then if s[1]='U' then delete(s,1,1); - + // si décodeur UniSemaf (6) champ supplémentaire if Feux[i].decodeur=6 then begin - if k=0 then begin Affiche('Erreur 680 Ligne '+chaine_signal,clred);Affiche('Manque définition de la cible pour le décodeur UniSemaf',clred);end else begin @@ -969,11 +970,11 @@ begin Feux[i].UniSemaf:=k; erreur:=verif_UniSemaf(adresse,k); if erreur=1 then begin Affiche('Erreur 681 Ligne '+chaine_signal,clred);Affiche('Erreur code Unisemaf',clred);end; - if erreur=2 then - begin + if erreur=2 then + begin Affiche('Erreur 682 Ligne '+chaine_signal,clred);Affiche('Erreur cohérence aspect signal ('+intToSTR(asp)+') et code Unisemaf ('+intToSTR(k)+')',clred); end; - + end; end; end; @@ -982,19 +983,19 @@ begin l:=1; // nombre de parenthèses repeat t:=pos('(',s); - if t=1 then + if t=1 then begin //Affiche('Conditions supplémentaires pour le feu '+IntToSTR(adresse)+' parenthèse '+intToSTR(l),clyellow); k:=pos(')',s); sa:=copy(s,t+1,k-t-1); // contient l'intérieur des parenthèses sans les parenthèses delete(s,1,k);//Affiche(s,clYellow); - + // boucle dans la parenthèse bd:=0; repeat inc(bd); setlength(feux[i].condCarre[l],bd+1); // une condition en plus - k:=pos(',',sa); + k:=pos(',',sa); if k<>0 then chaine:=copy(sa,1,k-1) else @@ -1008,16 +1009,16 @@ begin if erreur<>0 then feux[i].condCarre[l][bd].PosAig:=chaine[erreur] else Affiche('Erreur 683 Définition du feu '+IntToSTR(feux[i].adresse)+': Manque D ou S dans les conditions de carré des aiguillages',clred); end; - + k:=pos(',',sa);if k<>0 then delete(sa,1,k); until k=0; inc(l); end; - until t<>1; + until t<>1; if length(s)>1 then if s[1]=',' then delete(s,1,1); // champ SR - if length(s)>2 then + if length(s)>2 then if copy(s,1,2)='SR' then begin delete(s,1,3); @@ -1034,7 +1035,7 @@ begin feux[i].SR[l].sortie0:=j; end; end; - + end; end; end; @@ -1272,7 +1273,7 @@ begin closefile(fichierN); deletefile(NomConfig); - renameFile('ConfigGenerale.tmp',NomConfig); + renameFile('ConfigGenerale.tmp',NomConfig); end; procedure lit_config; @@ -1306,7 +1307,7 @@ var s,sa,chaine,SOrigine: string; l1:=pos('"',s);l2:=posEx('"',s,l1+1); esp:=posEx(' ',s,Esp+1); if (esp<>0) and (espl2) then delete(s,esp,1); - until esp=0; + until esp=0; lit_ligne:=s; end; @@ -1314,19 +1315,19 @@ procedure compile_signaux; begin Affiche('Définition des signaux',clyellow); i:=1;Nligne:=1; - + NbreFeux:=0; repeat inc(Nligne); s:=lit_ligne; //affiche(s,clyellow); - if s<>'0' then - begin + if s<>'0' then + begin + inc(NbreFeux); decode_ligne_feux(s,i);inc(i); end; until (s='0') or eof(fichier); - NbreFeux:=i-1; if NbreFeux<0 then NbreFeux:=0; end; - + procedure compile_branches; begin // branches @@ -1346,7 +1347,8 @@ begin compile_branche(s,i); inc(i); end; - until (s='0') or eof(fichier); + until (s='0') or eof(fichier) or (i>=MaxBranches); + if i>MaxBranches then Affiche('Nombre maximal de branches atteint',clRed); NbreBranches:=i-1; end; @@ -1587,7 +1589,12 @@ begin if debugconfig then Affiche(s,ClLime); if (s<>'0') then begin - inc(maxaiguillage); + if MaxAiguillage>=MaxAcc then + begin + Affiche('Nombre maximal d''aiguillages atteint',clRed); + end + else + inc(maxaiguillage); virgule:=pos(',',s); enregistrement:=copy(s,1,virgule-1); // adresse de l'aiguillage [TRI] delete(s,1,virgule); @@ -1761,7 +1768,7 @@ begin aiguillage[maxaiguillage].vitesse:=adr; virgule:=pos(',',enregistrement);if virgule=0 then virgule:=length(s)+1; delete(enregistrement,1,virgule); - end; + end; // TJS et L if (length(enregistrement)<>0) then @@ -1820,11 +1827,10 @@ begin end; procedure lit_flux; - label ici1,ici2,ici3,ici4 ; var i : integer; -// début de la procédure lit_config +// début de la procédure lit_config begin nv:=0; it:=0; // taille de fonte @@ -1852,8 +1858,8 @@ begin trouve_ipv4_PC:=true; delete(s,i,length(sa)); i:=pos(':',s); - if i<>0 then - begin + if i<>0 then + begin adresseIPCDM:=copy(s,1,i-1);Delete(s,1,i); val(s,portCDM,erreur); if (portCDM=0) or (portCDM>65535) or (erreur<>0) then affiche('Erreur port CDM : '+s,clred); @@ -1870,8 +1876,8 @@ begin trouve_IPV4_INTERFACE:=true; delete(s,i,length(sa)); i:=pos(':',s); - if i<>0 then - begin + if i<>0 then + begin adresseIP:=copy(s,1,i-1);Delete(s,1,i);port:=StrToINT(s); if (adresseIP<>'0') and (port=0) then affiche('Erreur port nul : '+sOrigine,clRed); end @@ -1965,7 +1971,7 @@ begin delete(s,i,length(sa)); val(s,Tempo_Aig,erreur); end; - + // temporisation décodeurs de feux sa:=uppercase(Tempo_Feu_ch)+'='; i:=pos(sa,s); @@ -1979,7 +1985,7 @@ begin end; // algo unisemaf - sa:=uppercase(Algo_unisemaf_ch)+'='; + sa:=uppercase(Algo_unisemaf_ch)+'='; i:=pos(sa,s); if i<>0 then begin @@ -2175,28 +2181,29 @@ begin Ancien_detecteur[i]:=false; end; + { // vérifier si le fichier ConfigGenerale.cfg existe fichier_trouve:=true; {$I+} - try + + {try assign(fichier,NomConfig); reset(fichier); except fichier_trouve:=false; end; {$I-} + { if fichier_trouve then begin close(fichier); - end; + end; // si pas trouvé le fichier, lire les 2 anciens fichiers et les fusionner if not(fichier_trouve) then begin - Affiche('***Traitement de fusion des deux fichiers de config***',clAqua); - - Affiche('Lecture de l''ancien fichier de configuration client-GL.cfg',clyellow); {$I+} + { try assign(fichier,'client-GL.cfg'); reset(fichier); @@ -2205,25 +2212,29 @@ begin exit; end; {$I-} + {Affiche('Lecture de l''ancien fichier de configuration client-GL.cfg',clyellow); + lit_flux; closeFile(fichier); Affiche('Lecture de l''ancien fichier de configuration config.cfg',clyellow); {$I+} - try + {try assign(fichier,'config.cfg'); reset(fichier); except Affiche('Fichier config.cfg non trouvé',clred); exit; end; + Affiche('***Traitement de fusion des deux fichiers de config***',clAqua); + {$I-} - lit_flux; + {lit_flux; closeFile(fichier); // regénérer la config dans le fichier configgenerale.cfg assign(fichier,'client-gl.cfg'); reset(fichier); // pour les commentaires - genere_config; + genere_config; s:='------------------------------------------------------------------------------------------------------'; Affiche(s,clAqua); @@ -2233,24 +2244,23 @@ begin end else - begin - Affiche('Lecture du fichier de configuration '+NomConfig,clyellow); - {$I+} - try - assign(fichier,NomConfig); - reset(fichier); - except - Affiche('Fichier '+NomConfig+' non trouvé',clred); - exit; - end; - {$I-} - lit_flux; - close(fichier); + begin} + Affiche('Lecture du fichier de configuration '+NomConfig,clyellow); + {$I+} + try + assign(fichier,NomConfig); + reset(fichier); + except + Affiche('Fichier '+NomConfig+' non trouvé',clred); + exit; end; + {$I-} + lit_flux; + close(fichier); configNulle:=(maxAiguillage=0) and (NbreBranches=0) and (Nbrefeux=0); if configNulle then Affiche('Fonctionnement en config nulle',ClYellow); - + 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; @@ -2265,15 +2275,17 @@ begin if not(trouve_Serveur_interface) then s:=Serveur_interface_ch; if not(trouve_fenetre) then s:=fenetre_ch; if not(trouve_tempo_aig) then s:=tempo_aig_ch; - if not(trouve_tempo_feu) then + if not(trouve_Algo_Uni) then s:=Algo_unisemaf_ch; + if not(trouve_tempo_feu) then begin s:=tempo_feu_ch; tempo_feu:=100; s:=''; - end; + end; if not(trouve_NOTIF_VERSION) then s:=NOTIF_VERSION_ch; if not(trouve_verif_version) then s:=verif_version_ch; if not(trouve_fonte) then s:=fonte_ch; + if s<>'' then affiche('ERREUR: manque variables dans '+NomConfig+' :'+s,clred); if not(trouve_section_aig) then Affiche('Manque section '+section_aig_ch,clred); if not(trouve_section_sig) then Affiche('Manque section '+section_sig_ch,clred); @@ -2307,7 +2319,7 @@ begin val(EditFonte.text,i,erreur); if (i<8) or (i>25) then i:=10; TailleFonte:=i; - + // contrôle adresse IP interface s:=EditIPLenz.text; if not(IpOk(s)) and (s<>'0') then begin labelInfo.Caption:='Adresse IP interface Xpressnet incorrecte';sauve_config:=false;exit;end; @@ -2323,23 +2335,23 @@ begin Val(editTempoAig.Text,i,erreur); if i>3000 then begin labelInfo.Caption:='Temporisation de séquencement incorrecte ';sauve_config:=false;exit;end; Tempo_Aig:=i; - + // contrôle protocole interface COM3:57600,N,8,1,2 s:=EditComUSB.Text; if not(config_com(s)) then begin labelInfo.Caption:='Protocole série USB Interface incorrect';sauve_config:=false;exit;end; changeUSB:=portcom<>s; portcom:=s; - + val(EditTempoOctetUSB.text,i,erreur); - if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation octet incorrecte';sauve_config:=false;exit;end; + if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation octet incorrecte';sauve_config:=false;exit;end; TempoOctet:=i; - + val(EditTempoReponse.text,i,erreur); - if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation de réponse interface';sauve_config:=false;exit;end; + if erreur<>0 then begin labelInfo.Caption:='Valeur temporisation de réponse interface';sauve_config:=false;exit;end; TimoutMaxInterface:=i; val(EditNbDetDist.text,i,erreur); - if (erreur<>0) or (i<3) then begin labelInfo.Caption:='Valeur nombre de détecteurs trop distants incorrecte';sauve_config:=false;exit;end; + if (erreur<>0) or (i<3) then begin labelInfo.Caption:='Valeur nombre de détecteurs trop distants incorrecte';sauve_config:=false;exit;end; Nb_Det_Dist:=i; if RadioButton1.checked then Valeur_entete:=0; @@ -2352,7 +2364,7 @@ begin end; if changeCDM then connecte_CDM; - if changeInterface then + if changeInterface then begin if AdresseIP<>'0' then begin @@ -2362,11 +2374,11 @@ begin ClientSocketLenz.port:=port; ClientSocketLenz.Address:=AdresseIP; ClientSocketLenz.Open; - end; + end; end end; - if changeUSB then + if changeUSB then begin deconnecte_USB; connecte_USB; @@ -2377,7 +2389,7 @@ begin LanceCDM:=CheckLanceCDM.Checked; if CheckFenEt.checked then fenetre:=1 else fenetre:=0; - + AvecTCO:=CheckAvecTCO.checked; Lay:=EditNomLay.Text; if RadioButton4.Checked then ServeurInterfaceCDM:=0; @@ -2403,7 +2415,7 @@ begin change_srv:=Srvc_Act<>CheckBoxServAct.checked or change_srv; change_srv:=Srvc_PosTrain<>CheckServPosTrains.checked or change_srv; change_srv:=Srvc_Sig<>CheckBoxSrvSig.checked or change_srv; - + Srvc_Aig:=CheckBoxServAig.checked; Srvc_Det:=CheckBoxServDet.checked; Srvc_Act:=CheckBoxServAct.checked; @@ -2424,7 +2436,7 @@ begin Affiche('Fichier '+NomConfig+' non trouvé',clOrange); end; {$I-} - + genere_config; Affiche('Configuration sauvegardée dans le fichier',clLime); config_modifie:=false; @@ -2771,7 +2783,7 @@ begin EditP1.Visible:=true;EditP2.Visible:=true;EditP3.Visible:=true;EditP4.Visible:=true; LabelTJD1.Visible:=true;LabelTJD2.Visible:=true; end; - end; + end; if tjs then begin @@ -2800,7 +2812,7 @@ begin id2:=Index_Aig(adr2); // champ en haut à gauche - b:=aiguillage[Index_Aig(adresse)].ADroitB; + b:=aiguillage[Index_Aig(adresse)].ADroitB; if b='Z' then b:=#0; Edit_HG.Text:=intToSTR(aiguillage[index].ADroit)+b; Edit_HG.Hint:=TypeElAIg_to_char(aiguillage[index].Adroit,b); @@ -3032,7 +3044,7 @@ begin RadioButtonLoc.Checked:=false; RadioButtonAccess.Checked:=false; RadioButtonSon.checked:=true; - + GroupBoxAct.Visible:=true; GroupBoxPN.Visible:=false; end; @@ -3322,7 +3334,7 @@ begin editAct2.Visible:=true; LabelActionneur.Caption:='Mémoire de Zone'; end; - + etatAct:=Tablo_actionneur[i].etat ; Adresse:=Tablo_actionneur[i].adresse; s2:=Tablo_actionneur[i].train; @@ -3409,7 +3421,7 @@ begin CheckRaz.Checked:=false; end; end; - + procedure raz_champs_aig; begin with formConfig do @@ -3535,7 +3547,7 @@ begin // ne pas traiter si on a cliqué sur la liste if clicliste then exit; if affevt then affiche('Evt change dévié',clyellow); - + if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAig then with Formconfig do begin @@ -3547,15 +3559,20 @@ begin index:=index_aig(adrAig); if index=0 then exit; modele:=aiguillage[index].modele; - + if (modele=aig) or (modele=triple) then begin - if ((B='S') or (B='P') or (B='D') or (B=#0) or (b='Z')) and (s<>'') then + if ((B='S') or (B='P') or (B='D') or (B=#0) or (b='Z')) and (s<>'') then begin // aiguillage normal ou triple + LabelInfo.caption:=''; + if (B='S') or (b='P') or (b='D') then + begin + if adr=AdrAig then LabelInfo.caption:='Un aiguillage ne peut pointer sur lui même '; + end; + RE_ColorLine(RichAig,ligneclicAig,ClWhite); Aiguillage[index].modifie:=true; - LabelInfo.caption:=''; // modifier la base de données de l'aiguillage if b=#0 then b:='Z'; Aiguillage[Index].ADevie:=adr; @@ -3608,7 +3625,7 @@ begin // ne pas traiter si on a cliqué sur la liste if clicliste then exit; if affevt then affiche('Evt change droit',clyellow); - + if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAig then with Formconfig do begin @@ -3619,6 +3636,13 @@ begin decodeAig(s,adr,B); Index:=Index_Aig(AdrAig); if index=0 then exit; + + LabelInfo.caption:=''; + if (B='S') or (b='P') or (b='D') then + begin + if adr=AdrAig then LabelInfo.caption:='Un aiguillage ne peut pointer sur lui même '; + end; + modele:=aiguillage[index].modele; if (modele=aig) or (modele=triple) then begin @@ -3626,7 +3650,6 @@ begin begin RE_ColorLine(RichAig,ligneclicAig,ClWhite); Aiguillage[Index].modifie:=true; - LabelInfo.caption:=''; // modifier la base de données de l'aiguillage if b=#0 then b:='Z'; Aiguillage[index].ADroit:=adr; @@ -3663,7 +3686,7 @@ begin RE_ColorLine(Formconfig.RichAig,index-1,ClWhite); LabelInfo.caption:='Modification de la TJD homologe ('+IntToSTR(adr2)+')'; end; - end; + end; end; @@ -3677,27 +3700,33 @@ begin // ne pas traiter si on a cliqué sur la liste if clicliste then exit; if affevt then affiche('Evt change pointe',clyellow); - + if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAig then with Formconfig do begin s:=formconfig.RichAig.Lines[ligneclicAig]; Val(s,adrAig,erreur); - + //vérifier la syntaxe de P s:=Editpointe_BG.text; decodeAig(s,adr,B); - if ((B='S') or (B='P') or (B='D') or (B=#0) or (b='Z')) and (s<>'') then + if ((B='S') or (B='P') or (B='D') or (B=#0) or (b='Z')) and (s<>'') then begin RE_ColorLine(RichAig,ligneclicAig,ClWhite); Index:=Index_Aig(AdrAig); + LabelInfo.caption:=''; + if (B='S') or (b='P') or (b='D') then + begin + if adr=AdrAig then LabelInfo.caption:='Un aiguillage ne peut pointer sur lui même '; + end; + normal:=aiguillage[index].modele=aig; tjdC:=aiguillage[index].modele=tjd; tjsC:=aiguillage[index].modele=tjs; triC:=aiguillage[index].modele=triple; - + Aiguillage[index].modifie:=true; - LabelInfo.caption:=''; + // modifier la base de données de l'aiguillage if b=#0 then b:='Z'; @@ -4204,7 +4233,7 @@ begin RichSig.Lines[ligneClicSig]:=s; feux[ligneClicSig+1].modifie:=true; end; -end; +end; procedure TFormConfig.EditDet4Change(Sender: TObject); begin @@ -4567,7 +4596,7 @@ begin begin s:=EditAdrAig.Text; Val(s,i,erreur); - if (erreur<>0) or (i<=0) or (i>MaxAcc) then + if (erreur<>0) or (i<=0) or (i>MaxAcc) then begin EditAdrAig.Color:=clred; LabelInfo.caption:='Erreur adresse Aiguillage ';exit; @@ -4929,7 +4958,7 @@ begin if affevt then affiche('Evt EditV1F Change',clyellow); if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAct then with Formconfig do - begin + begin s:=EditV1F.Text; Val(s,act,erreur); if (erreur<>0) then @@ -5103,7 +5132,7 @@ begin LigneClicAct:=i-1; AncligneClicAct:=ligneClicAct; Aff_champs_Act(maxTablo_act-1); - clicliste:=false; + clicliste:=false; config_modifie:=true; end; @@ -5268,18 +5297,18 @@ begin s:='Voulez-vous supprimer le feu '+IntToSTR(feux[index].adresse)+'?'; if Application.MessageBox(pchar(s),pchar('confirm'), MB_YESNO or MB_DEFBUTTON2 or MB_ICONQUESTION)=idNo then exit; Affiche('Suppression du feu ='+IntToSTR(feux[index].adresse),clOrange); - + clicliste:=true; // évite les évènements Edit text Feu_supprime:=feux[index]; // sauvegarde le feu supprimé Feu_sauve.adresse:=0; // dévalider sa définition Feu_sauve.aspect:=0; // dévalider sa définition - + // supprime le feu du tableau ButtonInsFeu.Caption:='Ajouter le feu '+intToSTR(feux[index].adresse)+' supprimé'; feux[index].Img.free; // supprime l'image, ce qui efface le feu du tableau graphique - Feux[index].Lbl.Free; // supprime le label, ... + Feux[index].Lbl.free; // supprime le label, ... if Feux[index].check<>nil then begin Feux[index].check.Free;Feux[index].Check:=nil;end; // supprime le check du feu blanc s'il existait // décale le tableau de feux et recalcule les positions des images @@ -5290,13 +5319,13 @@ begin begin Top:=(HtImg+espY+20)*((i-1) div NbreImagePLigne); // détermine les points d'origine Left:=10+ (LargImg+5)*((i-1) mod (NbreImagePLigne)); - Name:='ImageFeu'+IntToSTR(i); + Name:='ImageFeu'+IntToSTR(i); s:='Index='+IntToSTR(i)+' @='+inttostr(feux[i].Adresse)+' Décodeur='+intToSTR(feux[i].Decodeur)+ ' Adresse détecteur associé='+intToSTR(feux[i].Adr_det1)+ ' Adresse élement suivant='+intToSTR(feux[i].Adr_el_suiv1); if feux[i].Btype_suiv1=aig then s:=s+' (aig)'; Hint:=s; - end; + end; with feux[i].Lbl do begin Top:=HtImg+((HtImg+EspY+20)*((i-1) div NbreImagePLigne)); @@ -5306,15 +5335,15 @@ begin if Feux[i].check<>nil then with Feux[i].Check do begin - Hint:=intToSTR(i); + Hint:=intToSTR(i); Top:=HtImg+15+((HtImg+EspY+20)*((i-1) div NbreImagePLigne)); Left:=10+ (LargImg+5)*((i-1) mod (NbreImagePLigne)); - end; - //Affiche('décale feu '+IntToSTR(i)+'<'+intToSTR(i+1),clorange); + end; + //Affiche('décale feu '+IntToSTR(i)+'<'+intToSTR(i+1),clorange); end; dec(NbreFeux); - + EditAdrSig.Text:=''; EditDet1.Text:='';EditDet2.Text:='';EditDet3.Text:='';EditDet4.Text:=''; EditSuiv1.Text:='';EditSuiv2.Text:='';EditSuiv3.Text:='';EditSuiv4.Text:=''; @@ -5331,9 +5360,9 @@ begin begin RichSig.Lines.Add(s); RE_ColorLine(RichSig,RichSig.lines.count-1,ClAqua); - end; - end; - ligneClicSig:=-1; + end; + end; + ligneClicSig:=-1; AncligneClicSig:=-1; raz_champs_sig; clicliste:=false; @@ -5350,7 +5379,7 @@ begin feux[NbreFeux]:=Feu_supprime; Feu_Supprime.adresse:=0; // dévalider le feu sauvegardé Feu_supprime.aspect:=0; - cree_image(nbrefeux); + cree_image(nbrefeux); config_modifie:=true; // réafficher le rechedit s:=encode_Sig_Feux(NbreFeux); @@ -5368,7 +5397,7 @@ begin Perform(EM_SCROLLCARET,0,0); end; Aff_champs_sig_feux(NbreFeux); - end; + end; clicListe:=false; end; end; @@ -5386,28 +5415,29 @@ begin repeat detect:=BrancheN[i][j].Adresse; AncModel:=model; - model:=BrancheN[i][j].BType; + model:=BrancheN[i][j].BType; if (j=1) and (model<>Aig) and (Model<>Buttoir) then - begin + begin Affiche('Erreur 3.1 branche '+intToSTR(i)+' : le premier élément d''une branche doit être un buttoir ou un aiguillage',clred); erreur:=i; - end; + end; inc(j); - until((model=rien) and (detect=0)); - if (Ancmodel<>Aig) and (AncModel<>Buttoir) then + until((model=rien) and (detect=0)); + if (Ancmodel<>Aig) and (AncModel<>Buttoir) then begin Affiche('Erreur 3.2 branche '+intToSTR(i)+' : le dernier élément d''une branche doit être un buttoir ou un aiguillage',clred); erreur:=i; - end; - end; - verif_extr_branches:=Erreur; + end; + end; + + verif_extr_branches:=Erreur; end; function verif_coherence : boolean; -var i,j,k,l,Indexaig,adr,adr2,detect,condcarre,nc,index2 : integer; - modAig,AncModel,model,km: TEquipement; +var AncAdr,i,j,k,l,Indexaig,adr,adr2,detect,condcarre,nc,index2,SuivAdr : integer; + modAig,AncModel,model,km,SuivModel: TEquipement; c : char; - ok : boolean; + ok,trouveSuiv,TrouvePrec : boolean; begin // vérification de la cohérence1 // parcoure les branches jusqu'à trouver un aiguillage pour voir s'il a été décrit @@ -5426,12 +5456,12 @@ begin AncModel:=model; model:=BrancheN[i][j].BType; // 1= détecteur 2= aiguillage 4=Buttoir - + if (model=aig) then begin //affiche('trouvé aig '+intToSTR(detect),clyellow); modAig:=aiguillage[Index_Aig(detect)].modele; - if (model=rien) then + if (modAig=rien) then begin Affiche('Erreur 2: Aiguillage '+intToStr(detect)+' non décrit mais présent en branche '+intToStr(i)+' pos. '+intToSTR(j),clred); ok:=false; @@ -5439,12 +5469,12 @@ begin end; j:=j+1; until((model=rien) and (detect=0)); - if (Ancmodel<>Aig) and (AncModel<>Buttoir) then + if (Ancmodel<>Aig) and (AncModel<>Buttoir) then Affiche('Erreur 3.2 branche '+intToSTR(i)+' : le dernier élément d''une branche doit être un buttoir ou un aiguillage',clred); end; if verif_extr_branches<>0 then ok:=false; - + // vérification de la cohérence2 // parcoure les aiguillages pour voir si les détecteurs sont en branches des détecteurs // et les tjd pour voir si pb de cohérence @@ -5527,7 +5557,7 @@ begin adr:=aiguillage[Indexaig].Adresse; if aiguillage[Indexaig].modele=triple then begin - if aiguillage[Indexaig].AdrTriple=0 then + if aiguillage[Indexaig].AdrTriple=0 then begin Affiche('Erreur 6.1: 2ème adresse de l''aiguillage triple '+intToSTR(adr)+' non définie',clred); ok:=false; @@ -5541,7 +5571,7 @@ begin ok:=false; end; end; - end; + end; // cohérence 4 : vérifie si doublon signal for j:=1 to NbreFeux do @@ -5552,9 +5582,9 @@ begin if adr=feux[i].Adresse then begin affiche('Erreur 7 : signal '+intToSTR(adr)+' défini deux fois',clred); - ok:=false; + ok:=false; end; - end; + end; end; // cohérence 5 ; vérifie si aiguillages définis en condition supplémentaires de carré existent @@ -5648,7 +5678,7 @@ begin if ((km=aig) or (km=tjs) or (km=tjd) or (km=triple)) then begin // aiguillage - if index_aig(i)=0 then + if index_aig(i)=0 then begin ok:=false; Affiche('Erreur 9.2: aiguillage '+intToSTR(i)+' non existant mais associé au signal '+IntToSTR(feux[j].adresse),clred); @@ -5779,6 +5809,102 @@ begin end; end; + // cohérence 8 + // parcoure les branches pour voir si les aiguillages aux extrémités sont cohérentes avec leurs déclarations + for i:=1 to NbreBranches do + begin + j:=1; // on vérifie entre j-1 et j+1 + detect:=BrancheN[i][1].Adresse; + model:=BrancheN[i][1].BType; + repeat + AncAdr:=detect;AncModel:=model; + detect:=BrancheN[i][j].Adresse; + SuivAdr:=BrancheN[i][j+1].Adresse; + SuivModel:=BrancheN[i][j+1].Btype; + model:=BrancheN[i][j].BType; // 1= détecteur 2= aiguillage 4=Buttoir + trouvePrec:=false; + + if (model=aig) or (model=Tjd) or (model=Tjs) then + begin + k:=index_aig(detect); + // comparer au précédent + if j=1 then trouvePrec:=true; + if (j>1) then + begin + if aiguillage[k].modele=Aig then + begin + if aiguillage[k].ADroit=AncAdr then trouvePrec:=true; + if aiguillage[k].ADevie=AncAdr then trouvePrec:=true; + if aiguillage[k].APointe=AncAdr then trouvePrec:=true; + end; + if (aiguillage[k].modele=Tjd) or (aiguillage[k].modele=TjS) then + begin + if aiguillage[k].EtatTJD=2 then + begin + if aiguillage[k].ADroit=AncAdr then trouvePrec:=true; + if aiguillage[k].ADevie=AncAdr then trouvePrec:=true; + if aiguillage[k].Ddroit=AncAdr then trouvePrec:=true; + if aiguillage[k].Ddevie=AncAdr then trouvePrec:=true; + end; + if aiguillage[k].EtatTJD=4 then + begin + l:=index_aig(aiguillage[k].Ddroit); // 2eme adresse de la TJD + if aiguillage[k].ADroit=AncAdr then trouvePrec:=true; + if aiguillage[k].ADevie=AncAdr then trouvePrec:=true; + if aiguillage[k].Ddroit=AncAdr then trouvePrec:=true; + if aiguillage[l].Adroit=AncAdr then trouvePrec:=true; + if aiguillage[l].Adevie=AncAdr then trouvePrec:=true; + if aiguillage[l].Ddevie=AncAdr then trouvePrec:=true; + end; + end; + if not(trouvePrec) then + begin + Affiche('La description de l''aiguillage '+intToSTR(detect)+' ne correspond pas à son élément contigu ('+intToStr(AncAdr)+') en branche '+intToSTR(i),clred); + ok:=false; + end; + end; + + TrouveSuiv:=false; + // comparer au suivant + if SuivModel<>rien then + begin + if aiguillage[k].modele=Aig then + begin + if aiguillage[k].ADroit=SuivAdr then trouveSuiv:=true; + if aiguillage[k].ADevie=SuivAdr then trouveSuiv:=true; + if aiguillage[k].APointe=SuivAdr then trouveSuiv:=true; + end; + if (aiguillage[k].modele=Tjd) or (aiguillage[k].modele=TjS) then + begin + if aiguillage[k].EtatTJD=2 then + begin + if aiguillage[k].ADroit=SuivAdr then trouveSuiv:=true; + if aiguillage[k].ADevie=SuivAdr then trouveSuiv:=true; + if aiguillage[k].Ddroit=SuivAdr then trouveSuiv:=true; + if aiguillage[k].Ddevie=SuivAdr then trouveSuiv:=true; + end; + if aiguillage[k].EtatTJD=4 then + begin + l:=index_aig(aiguillage[k].Ddroit); // 2eme adresse de la TJD + if aiguillage[k].ADroit=SuivAdr then trouveSuiv:=true; + if aiguillage[k].ADevie=SuivAdr then trouveSuiv:=true; + if aiguillage[k].Ddroit=SuivAdr then trouveSuiv:=true; + if aiguillage[l].Adroit=SuivAdr then trouveSuiv:=true; + if aiguillage[l].Adevie=SuivAdr then trouveSuiv:=true; + if aiguillage[l].Ddevie=SuivAdr then trouveSuiv:=true; + end; + end; + if not(trouveSuiv) then + begin + Affiche('La description de l''aiguillage '+intToSTR(detect)+' ne correspond pas à son élément contigu ('+intToStr(SuivAdr)+') en branche '+intToSTR(i),clred); + ok:=false; + end; + end; + end; + inc(j); + until((model=rien) and (detect=0)) ; + end; + verif_coherence:=ok; end; @@ -5786,6 +5912,11 @@ procedure TFormConfig.ButtonNouvAigClick(Sender: TObject); var i : integer; s : string; begin + if MaxAiguillage>=MaxAcc then + begin + Affiche('Nombre maximal d''aiguillages atteint',clRed); + exit; + end; clicliste:=true; inc(MaxAiguillage); i:=MaxAiguillage; @@ -5795,13 +5926,13 @@ begin aiguillage[i].DdroitB:='D'; aiguillage[i].DdevieB:='S'; // préparation pour TJD/S aiguillage[i].EtatTJD:=4; aiguillage[i].ApointeB:='Z'; - aiguillage[i].Adevie2B:='Z'; + aiguillage[i].Adevie2B:='Z'; aiguillage[i].tjsintB:='D'; - + aiguillage[i].posInit:=const_inconnu; aiguillage[i].Temps:=5; - - s:=encode_Aig(i); + + s:=encode_Aig(i); if ligneClicAig<>-1 then RE_ColorLine(RichAig,ligneClicAig,ClAqua); // scroller à la fin with richAig do @@ -5810,7 +5941,7 @@ begin SetFocus; Selstart:=RichAig.GetTextLen-1; Perform(EM_SCROLLCARET,0,0); - end; + end; LabelInfo.caption:='Aiguillage '+intToSTR(aiguillage[i].Adresse)+' créé'; ligneClicAig:=i-1; @@ -5847,14 +5978,14 @@ begin aiguillage[index].Ddevie:=0; aiguillage[index].APointe:=0; aiguillage[index].modifie:=false; - + // supprime l'aiguillage du tableau dec(MaxAiguillage); for i:=index to MaxAiguillage do begin Aiguillage[i]:=Aiguillage[i+1]; end; - + config_modifie:=true; RichAig.Clear; @@ -5866,8 +5997,8 @@ begin begin RichAig.Lines.Add(s); RE_ColorLine(RichAig,RichAig.lines.count-1,ClAqua); - end; - end; + end; + end; ligneClicAig:=-1; AncligneClicAig:=-1; clicliste:=false; @@ -6137,7 +6268,7 @@ var AdrAig,adr,adr2,erreur,index : integer; begin if clicliste or (ord(Key)<>VK_RETURN) then exit; if affevt then affiche('Evt change P4',clyellow); - + if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAig then with Formconfig do begin @@ -6260,7 +6391,7 @@ begin clicliste:=true; Aff_champs_aig_tablo(i); clicliste:=false; -end; +end; procedure TFormConfig.ButtonValLigneClick(Sender: TObject); var s: string; @@ -6269,8 +6400,8 @@ var s: string; begin ligne:=1; ok:=true; - repeat - s:=RichBranche.Lines[ligne-1]; + repeat + s:=AnsiUpperCase(RichBranche.Lines[ligne-1]); if s<>'' then begin // supprime les espaces éventuels @@ -6278,7 +6409,7 @@ begin esp:=pos(' ',s); if esp<>0 then delete(s,esp,1); until esp=0; - if s<>'' then + if s<>'' then begin RichBranche.Lines[ligne-1]:=s; branche[ligne]:=s; // stocker la ligne dans la branche pour la compiler @@ -6286,19 +6417,20 @@ begin begin RE_ColorLine(RichBranche,Ligne-1,ClLime); end - else + else begin RE_ColorLine(RichBranche,Ligne-1,ClRed); ok:=false; - end; - inc(ligne); + end; + inc(ligne); end else RichBranche.Lines.Delete(ligne-1); end else RichBranche.Lines.Delete(ligne-1); - - until ligne>RichBranche.Lines.count; + + until (ligne>RichBranche.Lines.count) or (ligne>=MaxBranches); NbreBranches:=ligne-1; + if ligne>=MaxBranches then Affiche('Nombre maximal de branches atteint',clRed); ligne:=verif_extr_branches; if ligne<>0 then @@ -6421,21 +6553,23 @@ begin end; end; inc(j); + BrancheN[i,j].adresse:=0; // préparer le suivant à 0 BrancheN[i,j].BType:=rien; //Affiche('branche '+intToSTR(i)+' index='+intToStr(j),clGreen); - until (offset=0); + until (offset=0) or (j>=MaxElBranches); if j=2 then begin - Affiche('Une branche doit contenir au moins deux éléments',clred); + Affiche('Branche '+IntToSTR(i)+' : Une branche doit contenir au moins deux éléments',clred); code:=false; end; + if (j>=MaxElBranches) then Affiche('Nombre maximal d''élements dans une branche atteint',clred); compile_branche:=code; end; procedure TFormConfig.RichBrancheMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -var curseur,lc : integer; +var curseur,lc : integer; begin if clicListe then exit; clicListe:=true; @@ -6447,16 +6581,16 @@ begin AncligneClicBr:=ligneClicBr; ligneClicBr:=lc; curseur:=SelStart; // position initiale du curseur - if AncligneClicBr<>ligneClicBr then + if AncligneClicBr<>ligneClicBr then begin - if AncligneClicBr<>-1 then + if AncligneClicBr<>-1 then begin RE_ColorLine(RichBranche,AncligneClicBr,ClAqua); end; RE_ColorLine(RichBranche,ligneClicBr,ClYellow); selStart:=curseur; // remettre le curseur en position initiale - end; - end; + end; + end; clicListe:=false; end; @@ -6676,7 +6810,7 @@ begin if affevt then affiche('Evt EditV4F Change',clyellow); if FormConfig.PageControl.ActivePage=FormConfig.TabSheetAct then with Formconfig do - begin + begin s:=EditV4F.Text; Val(s,act,erreur); if (erreur<>0) and (s<>'') then @@ -6820,7 +6954,7 @@ begin i:=ligneClicAct+1; if AffEvt then Affiche('RadioBoutonActDet '+IntToSTR(i),clyellow); Tablo_Actionneur[i].typActMemZone:=0; - LabelActionneur.Caption:='Actionneur DétecteurZ'; + LabelActionneur.Caption:='Actionneur DétecteurZ'; editAct2.Visible:=false; EditTrain.Visible:=true; LabelTrain.Visible:=true; @@ -6892,7 +7026,75 @@ begin end; end; +procedure TFormConfig.RichBrancheKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +var lc,curseur : integer; begin + if ord(Key)=VK_UP then + begin + if clicListe then exit; + clicListe:=true; + if affevt then affiche('Evt RichBranche keydown',clyellow); + with Formconfig.RichBranche do + begin + lc:=Perform(EM_LINEFROMCHAR,-1,0); // numéro de la lignée cliquée + if lc>0 then + begin + dec(lc); + LabelNumBranche.Caption:='Branche n°'+intToSTR(lc+1); + AncligneClicBr:=ligneClicBr; + ligneClicBr:=lc; + curseur:=SelStart; // position initiale du curseur + if AncligneClicBr<>ligneClicBr then + begin + if AncligneClicBr<>-1 then + begin + RE_ColorLine(RichBranche,AncligneClicBr,ClAqua); + end; + RE_ColorLine(RichBranche,ligneClicBr,ClYellow); + selStart:=curseur; // remettre le curseur en position initiale + end; + end; + end; + end; + + if ord(Key)=VK_DOWN then + begin + if clicListe then exit; + clicListe:=true; + if affevt then affiche('Evt RichBranche keydown',clyellow); + with Formconfig.RichBranche do + begin + lc:=Perform(EM_LINEFROMCHAR,-1,0); // numéro de la lignée cliquée + if lcligneClicBr then + begin + if AncligneClicBr<>-1 then + begin + RE_ColorLine(RichBranche,AncligneClicBr,ClAqua); + end; + RE_ColorLine(RichBranche,ligneClicBr,ClYellow); + selStart:=curseur; // remettre le curseur en position initiale + end; + end; + end; + end; + clicListe:=false; + +end; + + +begin + + + + end. diff --git a/UnitConfigTCO.dcu b/UnitConfigTCO.dcu index 8460aa84950b8d50f6e45ffe8bc0c69978d65889..1556e273cb2bdae610887319f8f97d40abd60284 100644 GIT binary patch delta 175 zcmbQ2x;RzfJ_7^)Vj~8IMWJaSjd34mOca>F0;ZSj(doVrup^Bl#4W!lH^kY$Hp_fR zx(JM?=a`n3nVgXt50v?-t9oa14`Un;Sm)+4vfT|tyCvoDCcxMlKN y0}ZCe9h1cjjkPZxp9>PqWmyWM7*>MFnJgPY6t@@iRuFxVWiN;l+FWR;%Lo9ils2pY delta 150 zcmZ3SIxkh=J_7^)JR=4M@&4eDg3w(i69p!)faxWBbd0|VR-|!+xaAk+hB*7HPWVxt zE&}7}Ii{s$CTFC^17#KjKbyU|hcS)^taI}_-d9SZ435kUObnXLt{_U6*%w4HOnzse f!N@RK!q6B<`Wi~|F>D2iA7t4Jmfl=usLKcd-9juN diff --git a/UnitDebug.dcu b/UnitDebug.dcu index 02b74b746c838b87de108b7dff4af8a7cc3c1f61..65e9f44883a45597603cabde54d93d0a8bb051ee 100644 GIT binary patch delta 5089 zcma)<4^ULc9mn_m_Rk#@$sOLEKsm}0Wx$9P3KnS20R$VY*q+ghW=aYo#Aq@^uweChA^9!E_( z(<#jE=Y4;_-|qf)_w7Cy7|`Au&>X*E?4I`?V$5^8VQc#%vlj;)tCN@5%fC_c)vZmB zw^skT;Y7rrd|Hs}`dIQWxi%cRmhvI!DiT7dO^x5I*uDF~VBG1A_}y%*rk1>B2bC>{wjO9`Y}!=wcx%&wHyG*ix${C8lWg^{ zzGeS{s~wF=jV=3wO$Q1VOkI&5`k2bk(ha$7tX|f%COCuHOOTXf} z9mVH`gtjys-r5q1Pi!0=$<#sht{|?h)qWC_QonE z*jo0_Px!~1*zZp5X1uJZmX-8He9J>x_w{ct?@!XoBNYXCuI(CQA29s+))RKl*b{Ho ze{WahSiv%_KXRd9W#nqX(#U8*j#d)+Q^Du&H3K(%CG?{+9jlB_J~5?Pec{cAckI~J z>Dcq->m`NP9ceKeQ_Y-d%{)ufxgANxp*2Uu`d@^b`Ro#Hf@f>fe2pf>TFom~YkA0G zQK;35`?VmJkXWU)iSf zNQ+__mxbD-T&YdV)!H1!NmZ!z%g+>PBj|Lh63rXgUF8ewn5mALQkGTA)gWdy$XCK! zN$~LlPzpuhDnx?={E!3{kg8%l6RN?X#kfanmY^I8V{W(bmJ0wQios zM<5kTGQ98LF-V8EU3?TW`52^VZDF2+U983Mc=HrBf$27{+aM9fA$6gZYk}CL(sb`Ir*l+<)if`|y~uz+Wx%=& zd`g54h_e#PGoT4P(2TuxLI#A8ZRYdYyPh+l-L$1+a}Tamd@8RiDVF0Vm%%$8h(fM* z6cy|$aL7T*uh@q#SS`nlFAcF=2G5-GI%#h6^m?qVYa|W z4n!jK!glI}9=maYCtx=|Q%AICyHu_DY8Byrq~j}=2r=$5iR%`|g(H)-aJ3=}7cLzG zk}x<|>*Z^3(=fne!L_L3aXE_?3j1&WYP0v4IdD9o4z7YChfjh-g~Ir73m@8rz;~k% zJc+6cyD9R(+FaEma#TMCOkuzfavB-K1?j>C8AC>q6L>@>L@F+A5|-uGN@u|gkW5Ec zd^1wjES{uU;X!+f6`BF>gzI4ts<33^2Cc?Y26rG6!_2ANjrfd{Kjn;D9p-4Wi;M0D z<--H%lmC&K2Q)L$baYW>Ve3?t%H?>FbFJ*-O;SKE#Fm<|6zWlQ)&ud-3>=mw>VX8F z3`-Wm1B>CQDk$Tt8In2Xu})I$I9j{aMK}tX;KYS$Uu@%1QS?XSLs;(UUG9E#_s8A2 z;KtVdcezKaj+~X2poF}SDGo3JeoTR1~Gn>PV0vK}ReG2%3ciA8qRsw43bmo@$Mt`b&QLPO z{(ICT*nj=# z#>-lGh_f`nQ@~j@S~bDaxLwr=AVow2AvlHdqC%F zfo;@z39wB%eoEM8o!<}aYdT*CY>Upzfo;`!C9sEdUIlEs&Nl#iSP%0DfPG!(8-YEd z^G(3&b-o$cPMv=Z*e;!K0k&J`TY>G-`9r|=>U=w}$8`QMuzfoJIhrJ}j$BuNM-UIAN9_i!9x>4>0 zcC47>iQ~g49|Ly0mgJKsoI>aOfSm}EeCo+Ql>31_86tV|sbQ1{fIZbt^3=&Ol&!!{ zc9A@NY6|5+V5fRWo;|HeogWGVJKazE>9cOshk>0PB6;rVJd{U(Jsl%?{+u7>F<|G$ zNM1M}KzSV4`3aI2F9cDZ0Cr)P42Z-nTiyxm6iyGN=1 zNxNBhQ2oHZUg)TNtr$gW!iz3paTfWfM%20%A80 zmzqvL)x*4kFv6<|F&;2o+o*Pm9R#_{ zOq?N%iztB~QQcvBm=e7NY>Kre2TUzbggfHPz5`(IZ zpz))GPSrtRomBUzGlX8%WucqU_&e1@996x9G1X^bfbfi04HDoTZl<|2iXl$ zKHDf^g>B5jO~PmJ?@(fm?G^!-0P8y24B?5tsac|Kn(mNLQ1Q<)=Wk{78-?v=(g zuWzui{V6j%yjjigCES?jL2jSteql&)JPTtJM2T{W65$jZ4YxRg$KaZgAga0H73GXM zm`^C>6RV6oOXj1@7u$_uaXc40E){E8ji|Jjib|tGY)}=V1B@E{78teS_#O-hhz<6D z*lC38gp=FrM5i$7#HhfhJY@u}KAW-6W>IK_EZKP`q?#_)(?S!Z-v-Y9ybVzbdh zGK=*JW$zW)M!)49K<@yy9kS#w%3+i-5yof-yMg)!P6q!yB{`0A9OZ;KPK!M$%G3(<8JCG>l4sO3A@CtRxK5pC*OQfMm zsSHV#Pnx~1kY%b^hBw$($csk4yvXw9RijvbV3d;Ik>Zyn$}bNZ)$$;#l_&6gT`_9q z`$oWOz73n#$s=l;JYqD-llD6K2GTHs(wsuG#I=)~jgTeVP`1f3qg~ch-yPU@humwN zk>S1UjQqY4wd~z!??!vC+>3X?_ll_G!LP9NWNo?Smqd-V`v^l^Qe5w7?)WL zeZ-7N6Rn teCn#aRAk<;a|ccVl4mw delta 5096 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 SNyU1H(`wXQi3_+Ft^WfWL}ar7 diff --git a/UnitPilote.dcu b/UnitPilote.dcu index e16471f371334267281c6b5e882ce408d17f3eea..19194348322a6193aa6446319983581dcc1d5593 100644 GIT binary patch delta 309 zcmdlNz9(GZJ_7^)9&H8&v7W?`#<-6&CJI=wfar~W3YzsStjr8d48M3mq~JF}5XH+R z38GSYWI>cFlPZW}e5nbdY?%zfa!jTmDwN3_oggat9dj>;{>d~I zL3``8actIqaAc*8; zk_1tX1+pMYl}QyuF>|nJf@oVNLlEU%%xnsxLz!&B+#k%2AUc=H6GUm-F#Ce&R;Ex8 zm3)gi5=75sN(6JO*;7IER;Ju~5Y12sBF{2af+${vS`hV=sS!eTf~do7%)KD`C(~3A z#WWK{iZU+*Q4C8#q#^TK5OrlEi1cLM38I=0u4BMAb511W{bI X%r`;w=@l%KOSBXj1vXF9Qey-FTe&r& diff --git a/UnitPrinc.dcu b/UnitPrinc.dcu index ef59693d9501a73960c4255090ed0b4c2d852291..a824b1acfd05923eea306e3b803260e764fd6a1a 100644 GIT binary patch delta 60815 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 diff --git a/UnitPrinc.dfm b/UnitPrinc.dfm index 62eaa08..e4206cc 100644 --- a/UnitPrinc.dfm +++ b/UnitPrinc.dfm @@ -1374,7 +1374,7 @@ object FormPrinc: TFormPrinc object ButtonLocCV: TButton Left = 192 Top = 88 - Width = 81 + Width = 83 Height = 33 Caption = 'Trains / CVs' TabOrder = 8 diff --git a/UnitPrinc.pas b/UnitPrinc.pas index d772156..632bd65 100644 --- a/UnitPrinc.pas +++ b/UnitPrinc.pas @@ -3,7 +3,7 @@ Unit UnitPrinc; programme signaux complexes Graphique Lenz delphi 7 + activeX Tmscomm + clientSocket ******************************************** - 27/2/2022 10h + 6/3/2022 16h note sur le pilotage des accessoires: raquette octet sortie + 2 = aiguillage droit = sortie 2 de l'adresse d'accessoire @@ -198,6 +198,8 @@ NbMaxDet=100; // nombre maximal de d NbMemZone=2048; // adresse maximale des détecteurs Max_Trains=100; Max_event_det=400; +MaxBranches=100; +MaxElBranches=200; LargImg=50;HtImg=91; // Dimensions image des feux const_droit=2; // positions aiguillages transmises par la centrale LENZ const_devie=1; // positions aiguillages transmises par la centrale LENZ @@ -286,7 +288,7 @@ TFeu = record Adr_el_suiv4 : integer; // adresse de l'élément4 suivant (si un signal est pour plusieurs voies) Btype_suiv1 : TEquipement ; // type de l'élément suivant ne prend que les valeurs rien, det ou aig Btype_suiv2 : TEquipement ; // - Btype_suiv3 : TEquipement ; // + Btype_suiv3 : TEquipement ; // Btype_suiv4 : TEquipement ; // VerrouCarre : boolean ; // si vrai, le feu se verrouille au carré si pas de train avant le signal modifie : boolean; // feu modifié @@ -397,7 +399,8 @@ var Aig_supprime,Aig_sauve : TAiguillage; Fimage : Timage; - BrancheN : array[1..100,1..200] of TBranche; + + BrancheN : array[1..MaxBranches,1..MaxElBranches] of TBranche; {$R *.dfm} @@ -440,6 +443,7 @@ procedure cree_image(rang : integer); procedure trouve_aiguillage(adresse : integer); procedure trouve_detecteur(detecteur : integer); function BTypeToNum(BT : TEquipement) : integer; +function ProcessRunning(sExeName: String) : Boolean; implementation @@ -494,8 +498,7 @@ begin until (i=16) or trouve; PremBitNum:=i; end; - - + // conversion du motif de bits (codebin) de la configuration du signal complexe en deux mots: // en sortie : // premierBit : code de la signalisation @@ -548,7 +551,6 @@ begin 16 17 18 19 } end; - // dessine un cercle plein dans le feu procedure cercle(ACanvas : Tcanvas;x,y,rayon : integer;couleur : Tcolor); begin @@ -3062,22 +3064,32 @@ end; // si 0 = OK // si 1 = erreur code Unisemaf // si 2 = erreur cohérence entre code et aspect +// si 3 = signal inconnu function verif_UniSemaf(adresse,UniSem : integer) : integer; -var aspect : integer; +var aspect,i : integer; begin if UniSem=0 then begin verif_unisemaf:=1;exit;end; if (UniSem<>2) and (UniSem<>3) and (UniSem<>4) and (UniSem<>51) and (UniSem<>52) and (UniSem<>71) and (UniSem<>72) and (UniSem<>73) and ((UniSem<90) or (UniSem>99)) then begin verif_UniSemaf:=1;exit;end; - aspect:=feux[index_feu(adresse)].aspect; - if ((aspect=2) and (UniSem=2)) or - ((aspect=3) and (UniSem=3)) or - ((aspect=4) and (UniSem=4)) or - ((aspect=5) and ((UniSem=51) or (UniSem=52))) or - ((aspect=7) and ((UniSem=71) or (UniSem=72) or (UniSem=73))) or - ((aspect=9) and ((UniSem>=90) or (UniSem<=99))) - then Verif_unisemaf:=0 - else Verif_Unisemaf:=2; + i:=index_feu(adresse); + if i<>0 then + begin + aspect:=feux[i].aspect; + if ((aspect=2) and (UniSem=2)) or + ((aspect=3) and (UniSem=3)) or + ((aspect=4) and (UniSem=4)) or + ((aspect=5) and ((UniSem=51) or (UniSem=52))) or + ((aspect=7) and ((UniSem=71) or (UniSem=72) or (UniSem=73))) or + ((aspect=9) and ((UniSem>=90) or (UniSem<=99))) + then Verif_unisemaf:=0 + else Verif_Unisemaf:=2; + end + else + begin + Affiche('Erreur Signal '+intToSTR(adresse)+' inconnu',clred); + Verif_Unisemaf:=3; + end; end; @@ -6386,13 +6398,13 @@ begin begin processID:=ProcessEntry32.th32ProcessID; CDMhd:=GetWindowFromID(processID); - Affiche('CDM rail processID='+IntToSTR(ProcessID)+' handle='+IntToSTR(CDMhd),clOrange); + //Affiche('CDM rail processID='+IntToSTR(ProcessID)+' handle='+IntToSTR(CDMhd),clOrange); Result:=true; Break; - end; + end; until (Process32Next(hSnapShot,ProcessEntry32)=false); CloseHandle(hSnapShot); -end; +end; // préparation du tampon pour SendInput procedure KeybdInput(VKey: Byte; Flags: DWORD); @@ -6492,7 +6504,6 @@ begin exit; end; - cdm_lanceLoc:=false; // lancement depuis le répertoire 32 bits d'un OS64 if ShellExecute(Formprinc.Handle,'open',PChar('C:\Program Files (x86)\CDM-Rail\cdr.exe'), @@ -6833,7 +6844,7 @@ begin begin pos:=aiguillage[index].posInit; s:='Init aiguillage '+intToSTR(i)+'='+intToSTR(pos); - if pos=1 then s:=s+' (dévié)' else s:=s+' (droit)'; + if pos=const_devie then s:=s+' (dévié)' else s:=s+' (droit)'; Affiche(s,cyan); pilote_acc(i,pos,aigP); sleep(Tempo_Aig); @@ -7349,7 +7360,7 @@ end; // décodage d'une trame CDM au protocole IPC // la trame_CDM peut contenir 2000 caractères à l'initialisation du RUN. procedure Interprete_trameCDM(trame_CDM:string); -var i,j,objet,posST,posAC,posDT,posSG,posXY,k,l,erreur, adr,adr2,etat,etataig, +var i,j,objet,posST,posAC,posDT,posSG,posXY,k,l,erreur,posErr, adr,adr2,etat,etataig, vitesse,etatAig2,name,prv,nbre,nbreVir,long,index,posDes,AncNumTrameCDM : integer ; x,y,x2,y2 : longint ; s,ss,train,commandeCDM : string; @@ -7372,13 +7383,16 @@ begin trame_cdm:=trame_cdm+'S-C-07-1373-DSCTRN-SPEED|029|03|NAME=CAMERA;AD=6;TMAX=120;' ; trame_cdm:=trame_cdm+'S-C-07-1374-DSCTRN-__END|000|' ; } + //affiche(trame_cdm,clLime); residuCDM:=''; AckCDM:=trame_CDM<>''; - if pos('ACK',trame_CDM)=0 then + + {if pos('ACK',trame_CDM)=0 then begin if pos('ERR=200',trame_CDM)<>0 then Affiche('Erreur CDM : réseau non chargé',clred); + if pos('ERR=500',trame_CDM)<>0 then Affiche('Erreur CDM : serveur DCC non lancé',clred); end; - + } k:=0; repeat {// inutile de vérifier les numéros de trames, elles peuvent ne pas être envoyées dans l'ordre!! @@ -7401,18 +7415,18 @@ begin val(copy(trame_CDM,i+1,j-1),NumTrameCDM,erreur); if AncNumTrameCDM=0 then AncNumTrameCDM:=NumTrameCDM-1; affiche(IntToSTR(NumTrameCDM),clLime); - if AncNumTrameCDM+1<>NumTrameCDM then + if AncNumTrameCDM+1<>NumTrameCDM then begin s:='Erreur trames CDM perdues: #dernière='+intToSTR(AncNumTrameCDM)+' #Nouvelle='+intToSTR(NumTrameCDM); Affiche(s,clred); AfficheDebug(s,clred); - end; + end; end; end; end; end; end;} - + // trouver la longueur de la chaîne de paramètres entre les 2 premiers |xxx| i:=pos('|',trame_CDM); if i=0 then @@ -7443,6 +7457,7 @@ begin goto reprise; end; + if long>l then begin if debugTrames then AfficheDebug('tronqué3 : '+trame_CDM,clyellow); @@ -7475,6 +7490,23 @@ begin //if debugTrames then AfficheDebug(commandeCDM,clorange); Delete(trame_CDM,1,i); + //Affiche('long chaine param='+intToSTR(long),clyellow); + if long=0 then + begin + //if debugTrames then Affiche('Longueur nulle',clYellow); + if pos('ACK',trame_cdm)<>0 then Ack_cdm:=true; + delete(trame_cdm,1,j); + goto reprise; + end; + + posERR:=pos('_ERR',commandeCDM); + if posErr<>0 then + begin + if pos('ERR=200',commandeCDM)<>0 then Affiche('Erreur CDM : réseau non chargé',clred); + //if pos('ERR=500',commandeCDM)<>0 then Affiche('Erreur CDM : serveur DCC non lancé',clred); + delete(commandeCDM,1,i); + end; + // description des trains 03|NAME=BB16024;AD=3;TMAX=120;' posDES:=pos('DSCTRN-SPEED',commandeCDM); if posDES<>0 then diff --git a/UnitSR.dcu b/UnitSR.dcu index 1b26ecb4b237e7262854438e4d204c48b3cc0128..ece9cc98ccc5b467d12bd0b1b946f3096aa51359 100644 GIT binary patch delta 199 zcmdn8lyT!yMuGbb4E!5|7#PlEri3)ceVnmTU?-OZh`|5^>0EC4MY+!Td1;yH$E81H zPJYPc#sZSutj+zwi8=Z|`(znEGe)+_!G4O243o?K6qz#FCeQLyWPS{k+6NYV2;?<8 zvrK082h!dwlU4l{ff_vh6`4X=Cuf5>eg4jjLX)q6*+0Ofbbun$N4ClK0gBArO3ag! c0~Cc0-)8>E%)rDD$^H{W0WH`(B|w1*0K)@7F8}}l delta 202 zcmdnElyS>aMuGbb4E$Sy7#Oa2M~4)I?lRdZu#-yy#9#n|bS}62qFm?vytK^p1ntsO zlOJ-qv4A8uYjb~aVq};s=Vt~aL;Vz)xh2>pm-{I)Eo7cN3&@pbVVb-T$aQ3%{J>8U zsD{NKL~8geGH0)0nd}ARu}#kPS7Zv^G`Zj3nOQr9eez|XWV1W_fy*zF{mh-^Q5vW@_Ad>ejmpqEC^YKR#wOX#-D>Ju;qtVQTo7)axtn z80R@|McnH_bLCL*2_A4@ut6i^&W9$$IcQ0Jx;MiK{=2)U*?w?TVeBS7W3v}_!Pte3$@THu z(KG9>{u|AT+Nu8OjnMR$?qqYPn`@5i^&XGzu3mFLZl2(uxd$T8^RL{c$o>2~nop?O zEIpLqzTUZ+M737)Dm2KqRELTkbb5td?P?CEe5#bLN;$gF026y)@QX0z@M&%Gr<*+Y)*aD^T!2$yJuBkVX#wKd|L_?0 zQED$9_cjugy>xsL^P(fL5sae4OVE9y4Ih!laaHFt#9payx}HS^HU<%;VPF_(zgoav zx}zvH6!oSSR?P@;G4{@@D@|Gu0BMmHt1i^pCU(g1kbD zF3_SCZv~-3q0k86(xnq88*t7QR*T0L*lV zvb_#euqgcrz$}N(%-V8bsuHtD=oEf~0E?Gom}noSFbvi{ zBirA5QR?A2seOx5*^<3_@N7@)F(o%SPJcmKwLV$IJ7jaHqL^kQGF5`^CmQhryd0g?c zJa+uV_Nl}&DzTRX#PR`RHv+_ZG-4@@*rG;kTa&DTShr5>j81GxCsxskwKftv*;rje wxsk1b8`S~^G$z8EIH+#ogJiXc0YUK=4y#+3s+Q_unZh!K71;Fg3Qt+;FR?Qv9RL6T delta 1253 zcmZuwQD|FL7(VB_H#avoX>v`|%X+zHG0S37R;hLBmUXVNwzwf<8>^e(gJl$asH_{? zAcHKHwMr?Ig<~HSedt5M4uXzYX##~#%|joQsZpUUUlgeBb%L z^Zoz1=UnbP2k#DZetb?W5wcy({l%&3xY9z7f=F9!-7OA+y7&?*lFU*X<7 z0xTQIi4Q{4;Ue^YW9;ntH%87+PF$Fb{8kZB)8RF7z_jf;^fNCooy9_ou{T5QcDrzF zn5I+9<+J8n;9raT;S~Q#?Cg#m+N(153$3w*t4%O=bz{0Z{IK;}_4R*S3ugPo(CkKN z_6u>PyHAw5cX}4an`)3X~F12fN= zk26+KpW65ppK#gf&%fI3j(a6kZPWX#{UE;U*^Qy!a<+oPM^lZ{5yJ|mT2---)P|PSkB~0Km zgU?Xna_2QW2@1z>5H^hfvY7N}73`o}v8kEaY3N|hCdb4m3NjPXYDmzfrBIcJFeoJt z5~d;VQs!jL(&`ke|9`Chk5~gi-k?pd(WVWz)YPDo40v(<`my6aTtbraHXL!p>GD`= zKphmXIwSrJxldpUDlBos$rR{|fkpBFn3X4&?Z`s|v+47LIe9ueix$B&H69zIe+4X7 zktz}ILLNb|cumS=B2Cf+OVp)IB}Yky!ICqw{WEhC_svVpEJ`eod*72hR`^iTi%Tvp zOFXh7@uiZBH(gwncywLj$Z78_$z9l#wCl3+mE<(O>Cl#>er!up?%=NEQT#0FFdC93 z@b1YXvP#j*2EvO4T+$ZNue4T>RoM!b)K&@CJgkIU9`gS1kT?h4&sI_Mw<;LcnHgTk;2v!qH(E6e co1{0fPus+WR=p#)Np6#DAV&YL=^~r>8yqwmHUIzs diff --git a/UnitTCO.dcu b/UnitTCO.dcu index 796ce9860de314c17bc8bb08f27a637c18470db0..c2c73f08fa5a639a2e830fcbce6c2330a4c2ebc4 100644 GIT binary patch literal 142282 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 literal 134195 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 then begin closefile(fichier);exit;end; tco[x,y].Bimage:=valeur; delete(s,1,i); - + //Inverse i:=pos(',',s); if i=0 then begin closefile(fichier);exit;end; val(copy(s,1,i-1),valeur,erreur);if erreur<>0 then begin closefile(fichier);exit;end; tco[x,y].inverse:=valeur=1; delete(s,1,i); - + // FeuOriente (pas encore stocké) i:=pos(',',s); if i=0 then begin closefile(fichier);exit;end; @@ -423,40 +468,52 @@ begin delete(s,1,i); // PiedFeu (pas encore stocké) - i:=pos(',',s); j:=pos(')',s); - if j0 then begin closefile(fichier);exit;end; - if s[i]=',' then delete(s,1,i) else delete(s,1,i-1); - + i:=pos(',',s); //j:=pos(')',s); + //if j0 then + if i<>0 then begin aspect:=Feux[i].aspect; //Affiche('Feu '+IntToSTR(Adresse)+' aspect='+intToSTR(aspect),clyellow); tco[x,y].Aspect:=aspect; tco[x,y].FeuOriente:=FeuOriente; - tco[x,y].x:=0; + tco[x,y].x:=0; tco[x,y].y:=0; - TCO[x,y].PiedFeu:=PiedFeu; - end; - + TCO[x,y].PiedFeu:=PiedFeu; + end; + end; // texte optionnel j:=pos(')',s); + i:=pos(',',s); + tco[x,y].Texte:=''; + if j>1 then // le , est avant le ) donc il y a un texte begin - if j>1 then // le , est avant le ) donc il y a un peut-etre un texte - begin - tco[x,y].Texte:=copy(s,1,j-1) ; - end - else - tco[x,y].Texte:=''; - delete(s,1,j); + if j1 then begin // si la cellule au dessus contient un feu vertical, ne pas effacer la cellule - // if (tco[x,y-1].BImage=12) and (tco[x,y-1].FeuOriente=1) then exit; + // if (tco[x,y-1].BImage=12) and (tco[x,y-1].FeuOriente=1) then exit; end; if xMax then begin Max:=j-1;IndexMax:=i;end; - end; - Affiche('La branche la plus grande a pour index '+IntToSTR(IndexMax),clOrange); - - // stocker cette branche au milieu du TCO (en 5) - ligne:=5; - for i:=1 to Max do - begin - Adresse:=BrancheN[IndexMax,i].Adresse; - BT:=BrancheN[IndexMax,i].Btype; - TCO[i,ligne].Adresse:=Adresse; - TCO[i,ligne].Btype:=BT; - // Btype 1= détecteur 2= aiguillage 3=bis 4=Buttoir - if Bt=det then TCO[i,ligne].BImage:=1; - if Bt=aig then - begin - // A20,547,561,A22,A24,A26,515,518,A31,A29,A28,A30,539,522,A3,A1,A2,A4,A6B,545,A5B,A3 - //20,P8P,D547,S548 // 22,P24P,S561,D25S - // on se réfère au suivant - AdrSuiv:=BrancheN[IndexMax,i+1].Adresse; - index:=Index_aig(adresse); - // connecté sur position droite : la pointe est à gauche - if aiguillage[Index].Adroit=AdrSuiv then Bimage:=3; // ou 4 - // connecté sur position déviée : la pointe est à gauche, mais il faut changer de ligne - if aiguillage[Index].Adevie=AdrSuiv then Bimage:=4; // ou 4 - // connecté sur pointe : la pointe est à droite - if aiguillage[Index].Apointe=AdrSuiv then Bimage:=5; // ou 2 - TCO[i,ligne].BImage:=Bimage; - end; - end; end; - // affiche la cellule x et y en cases procedure TformTCO.affiche_cellule(x,y : integer); -var p,Xorg,Yorg,xt,yt,mode,adresse,Bimage,aspect,oriente,pos : integer; +var repr,p,Xorg,Yorg,xt,yt,mode,adresse,Bimage,aspect,oriente,pos : integer; Bt : TEquipement; s : string; begin @@ -2418,23 +2415,26 @@ begin bt:=tco[x,y].Btype; BImage:=tco[x,y].BImage; mode:=tco[x,y].mode; + repr:=tco[x,y].repr; // récupérer la position de l'aiguillage if (bImage>=2) then //????? and (btype<=15) begin if Adresse<>0 then pos:=Aiguillage[Index_Aig(adresse)].position else pos:=const_inconnu; - if TCO[x,y].inverse then + if TCO[x,y].inverse then begin p:=const_inconnu; if pos=const_devie then p:=const_droit; if pos=const_droit then p:=const_devie; pos:=p; end; - + end; Xorg:=(x-1)*LargeurCell; Yorg:=(y-1)*HauteurCell; + + // ------------- affichage de l'adresse ------------------ s:=IntToSTR(adresse); // pourquoi ? ? if y>1 then if (tco[x,y-1].Bimage=30) and (FeuTCO[i].FeuOriente=1) then exit; @@ -2501,12 +2501,19 @@ begin begin Brush.Color:=fond; Font.Color:=clWhite; - xt:=round(15*frXGlob);yt:=HauteurCell-round(17*frYGlob); - TextOut(xOrg+xt,yOrg+yt,s); - //exit; + xt:=round(15*frXGlob); + 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 + begin + TextOut(xOrg+xt,Yorg+yt,s); + end; end; end; - + if ((Bimage=10) or (Bimage=20)) and (adresse<>0) then begin // Adresse de l'élément with PCanvasTCO do @@ -2515,10 +2522,10 @@ begin Font.Color:=clWhite; TextOut(xOrg+round(2*frXGlob),yOrg+round(2*fryGlob),s); //exit; - end; + end; end; - - if (Bimage=11) and (adresse<>0) then + + if (Bimage=11) and (adresse<>0) then begin // Adresse de l'élément with PCanvasTCO do begin @@ -2530,8 +2537,8 @@ begin end; // adresse des signaux - if (BImage=30) and (adresse<>0) then - begin + if (BImage=30) and (adresse<>0) then + begin aspect:=TCO[x,y].Aspect; oriente:=TCO[x,y].FeuOriente; xt:=0;yt:=0; @@ -2558,11 +2565,11 @@ begin Brush.Color:=fond; Font.Color:=clLime; TextOut(xOrg+xt,yOrg+yt,s); - end; + end; end; - entoure_cell_grille(x,y); - //canvasTCO.TextOut(xOrg+1,yOrg+1,IntToSTR(x)); + entoure_cell_grille(x,y); + //canvasTCO.TextOut(xOrg+1,yOrg+1,IntToSTR(x)); end; procedure Entoure_cell(x,y : integer); @@ -2612,7 +2619,7 @@ end; // affiche le tco suivant le tableau TCO procedure TformTCO.Affiche_TCO ; -var x,y,x0,y0,DimX,DimY : integer; +var x,y,x0,y0,DimX,DimY,repr,yt : integer; s : string; r : Trect; begin @@ -2621,15 +2628,14 @@ begin PImageTCO.Height:=DimY; PImageTCO.Width:=DimX; - + PBitMapTCO.Height:=DimY; PBitMapTCO.Width:=DimX; - + PScrollBoxTCO.HorzScrollBar.Range:=DimX; PScrollBoxTCO.VertScrollBar.Range:=DimY; calcul_reduction(frxGlob,fryGlob,LargeurCell,HauteurCell,ZoomMax,ZoomMax); - //Affiche(formatfloat('0.000000',frxGlob),clyellow); //effacer tout @@ -2638,7 +2644,7 @@ begin Brush.Color:=clWhite; Pen.width:=1; r:=rect(0,0,ImageTCO.Width,ImageTCO.height); - FillRect(r); + FillRect(r); Brush.Style:=bsSolid; Brush.Color:=fond; pen.color:=clyellow; @@ -2650,38 +2656,47 @@ begin for y:=1 to NbreCellY do for x:=1 to NbreCellX do begin - if TCO[x,y].BImage<>30 then + if TCO[x,y].BImage<>30 then begin affiche_cellule(x,y); - end; + end; end; - PCanvasTCO.Font.Size:=8; + PCanvasTCO.Font.Size:=8; //afficher les cellules des feux et les textes pour que les pieds recouvrent le reste et afficher les textes for y:=1 to NbreCellY do for x:=1 to NbreCellX do begin - if TCO[x,y].BImage=30 then affiche_cellule(x,y); + if TCO[x,y].BImage=30 then + begin + affiche_cellule(x,y); + end; s:=Tco[x,y].Texte; - if s<>'' then + if s<>'' then begin x0:=(x-1)*Largeurcell; y0:=(y-1)*hauteurcell; - //PCanvasTCO.Brush.Style:=bsSolid; + //PCanvasTCO.Brush.Style:=bsSolid; PCanvasTCO.Brush.Color:=fond; //PCanvasTCO.pen.color:=clyellow; PcanvasTCO.Font.Color:=clTexte; - PcanvasTCO.Textout(x0+2,y0+1,s); - end; + repr:=tco[x,y].repr; + case repr of + 1 : yt:=(HauteurCell div 2)-round(7*fryGlob); // milieu + 2 : yt:=1; // haut + 3 : yt:=HauteurCell-round(17*frYGlob); // bas + end; + PcanvasTCO.Textout(x0+2,y0+yt,s); + end; end; // afficher la grille - grille; - - if entoure then +// grille; + + if entoure then begin - Entoure_cell(Xentoure,Yentoure); - end; + Entoure_cell(Xentoure,Yentoure); + end; end; @@ -2705,8 +2720,9 @@ begin clVoies:=clOrange; clTexte:=ClLime; clGrille:=$404040; - // évite le clignotement pendant les affichages - DoubleBuffered:=true; + // évite le clignotement pendant les affichages mais ne marche pas + DoubleBuffered:=true; + comborepr.Enabled:=false; controlStyle:=controlStyle+[csOpaque]; end; @@ -2724,19 +2740,20 @@ begin // MenuItem.onclick:= MenuItem.Tag:=GetTickCount; popupMenu1.Items.Add(MenuItem); } - + Position:=ImageTCO.screenToCLient(Position); //Affiche(IntToSTR(position.x),clyellow); Xclic:=position.X;YClic:=position.Y; XclicCell:=Xclic div largeurCell +1; YclicCell:=Yclic div hauteurCell +1; - if XclicCell>NbreCellX then exit; + if XclicCell>NbreCellX then exit; if YclicCell>NbreCellY then exit; Bimage:=tco[XClicCell,YClicCell].Bimage; + // si aiguillage, mettre à jour l'option de pilotage inverse - if (bimage=2) or (bimage=3) or (bimage=4) or (bimage=5) or (bimage=12) or (bimage=13) - or (bimage=14) or (bimage=15) then + if (bimage=2) or (bimage=3) or (bimage=4) or (bimage=5) or (bimage=12) or (bimage=13) + or (bimage=14) or (bimage=15) then begin CheckPinv.enabled:=true ; CheckPinv.checked:=TCO[XClicCell,YClicCell].inverse; @@ -2744,14 +2761,16 @@ begin else CheckPinv.enabled:=false; if (Bimage=1) or (Bimage=0) then - begin + begin s:=Tco[XClicCell,YClicCell].Texte; - EditTexte.Text:=s; - EditTexte.Visible:=true - end + EditTexte.Text:=s; + EditTexte.Visible:=true + end else EditTexte.Visible:=false; - LabelX.caption:=IntToSTR(XclicCell); + if (Bimage=1) or (Bimage=0) then ComboRepr.Enabled:=true else comboRepr.Enabled:=false; + + LabelX.caption:=IntToSTR(XclicCell); LabelY.caption:=IntToSTR(YclicCell); XclicCellInserer:=XClicCell; YclicCellInserer:=YClicCell; @@ -2759,10 +2778,11 @@ begin EditAdrElement.Text:=IntToSTR(tco[XClicCellInserer,YClicCellInserer].Adresse); EdittypeElement.Text:=IntToSTR(BtypeToNum(tco[XClicCellInserer,YClicCellInserer].BType)); EdittypeImage.Text:=IntToSTR(BImage); + ComboRepr.ItemIndex:=tco[XClicCell,yClicCell].repr; - if not(selectionaffichee) then _entoure_cell_clic; + if not(selectionaffichee) then _entoure_cell_clic; end; - + // trouve le détecteur det dans le TCO et renvoie X et Y procedure trouve_det(det : integer;var x,y : integer); var xc,yc : integer; @@ -2791,7 +2811,7 @@ begin end; -// allume ou éteint (mode) la voie, zone de det1 à det2 sur le TCO +// allume ou éteint (mode=0 ou 1) la voie, zone de det1 à det2 sur le TCO procedure zone_TCO(det1,det2,mode : integer); var i,x,y,ancienY,ancien2Y,ancienX,ancien2X,Xdet1,Ydet1,Xdet2,Ydet2,Bimage,adresse, pos,pos2 : integer; @@ -2801,33 +2821,29 @@ begin // trouver le détecteur det1 trouve_det(det1,Xdet1,Ydet1); if (Xdet1=0) or (Ydet1=0) then exit; - - //Affiche('trouvé '+intToSTR(det1)+' en '+IntToSTR(xDet1)+'/'+intToSTR(ydet1),clyellow); + trouve_det(det2,Xdet2,Ydet2); if (Xdet2=0) or (Ydet2=0) then exit; - // inverser coordonnées et détecteurs si à l'envers - if xDet2det2) and memTrouve) or (i>40); - //Affiche(intToSTR(x),clLime); - if i>NbCellulesTCO then - begin + inc(i); + if adresse=det2 then memTrouve:=true; + until (x=1) or (x=NbreCellX) or (y=NbreCellY) or ((adresse<>det2) and memTrouve) or (i>NbCellulesTCO); + //Affiche(intToSTR(x),clLime); + if i>NbCellulesTCO then + begin s:='Erreur 1000 : dépassement d''itérations TCO: '+IntToSTR(det1)+' - '+IntToSTR(det2); - Affiche(s,clred); AfficheDebug(s,clred); end; -end; + Affiche(s,clred); AfficheDebug(s,clred); + end; +end; procedure TFormTCO.FormActivate(Sender: TObject); begin @@ -3022,16 +3039,16 @@ begin ImageTemp.Visible:=not(Diffusion); SourisX.Visible:=not(Diffusion); SourisY.Visible:=not(Diffusion); - ButtonConstruit.Visible:=not(Diffusion); ButtonAfficheBandeau.visible:=false; - + PScrollBoxTCO:=FormTCO.ScrollBox; lire_fichier_tco; + NbCellulesTCO:=NbreCellX*NbreCellY; - + calcul_reduction(frxGlob,fryGlob,LargeurCell,HauteurCell,ZoomMax,ZoomMax); - // dessiner les icônes + // dessiner les icônes dessin_AigPD_AD(ImagePalette5.Canvas,1,1,0,9); dessin_AigG_PD(ImagePalette2.Canvas,1,1,0,9); dessin_AigPG_AG(ImagePalette3.Canvas,1,1,0,9); @@ -3054,34 +3071,32 @@ begin dessin_20(ImagePalette20.canvas,1,1,0); dessin_21(ImagePalette21.canvas,1,1,0); dessin_22(ImagePalette22.canvas,1,1,0); - + ImageTCO.Width:=LargeurCell*NbreCellX; ImageTCO.Height:=HauteurCell*NbreCellY; - + ImageTCO.Picture.Create; ImageTCO.Picture.Bitmap.Height:=HauteurCell*NbreCellY; ImageTCO.Picture.BitMap.Width:=LargeurCell*NbreCellX; - - + PCanvasTCO:=FormTCO.ImageTCO.Picture.Bitmap.Canvas; PBitMapTCO:=FormTCO.ImageTCO.Picture.Bitmap; PImageTCO:=FormTCO.ImageTCO; PImageTemp:=FormTCO.ImageTemp; PImageTemp.Canvas.Rectangle(0,0,PImageTemp.Width,PimageTemp.Height); - + With ImagePalette30 do begin - Picture.Bitmap.TransparentMode:=tmAuto; + Picture.Bitmap.TransparentMode:=tmAuto; Picture.Bitmap.TransparentColor:=clblue; Transparent:=true; Picture.Bitmap:=Formprinc.Image9feux.Picture.Bitmap; - end; + end; - Affiche_tco; + //Affiche_tco; end; TrackBarZoom.Position:=ZoomMax-LargeurCell+20; - end; // evt qui se produit quand on clic droit dans l'image @@ -3168,13 +3183,13 @@ end; procedure TFormTCO.CourbeSupD1Click(Sender: TObject); var Position: TPoint; begin - // effacer le carré pointeur + // effacer le carré pointeur //Entoure_cell(XclicCell,YclicCell); // dessine le dessin dessin_SupD(ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0); // remet le carré pointeur //Entoure_cell(XclicCell,YclicCell); - GetCursorPos(Position); + GetCursorPos(Position); end; procedure TFormTCO.CourbeSupG1Click(Sender: TObject); @@ -3193,11 +3208,10 @@ end; procedure TFormTCO.ImageTCODragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin -// Accept:=source is TImage; + // Accept:=source is TImage; end; - procedure TFormTCO.FormDockOver(Sender: TObject; Source: TDragDockObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin @@ -3213,6 +3227,8 @@ end; procedure TFormTCO.ImagePalette5EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3232,6 +3248,8 @@ end; procedure TFormTCO.ImagePalette2EndDrag(Sender,Target: TObject; X,Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3257,6 +3275,8 @@ end; procedure TFormTCO.ImagePalette3EndDrag(Sender, Target: TObject; X,Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3281,6 +3301,8 @@ end; procedure TFormTCO.ImagePalette4EndDrag(Sender, Target: TObject; X,Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3303,9 +3325,9 @@ begin ImagePalette4.BeginDrag(true); end; -procedure TFormTCO.ImagePalette1EndDrag(Sender, Target: TObject; X, - Y: Integer); +procedure TFormTCO.ImagePalette1EndDrag(Sender, Target: TObject; X,Y: Integer); begin + if not(target=ImageTCO) then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3332,6 +3354,8 @@ end; procedure TFormTCO.ImagePalette6EndDrag(Sender, Target: TObject; X,Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3357,6 +3381,8 @@ end; procedure TFormTCO.ImagePalette7EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3383,6 +3409,8 @@ end; procedure TFormTCO.ImagePalette8EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3485,6 +3513,8 @@ end; procedure TFormTCO.ImagePalette9EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3505,6 +3535,8 @@ end; procedure TFormTCO.ImagePalette12EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3527,6 +3559,8 @@ end; procedure TFormTCO.ImagePalette13EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3548,6 +3582,8 @@ end; procedure TFormTCO.ImagePalette14EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3568,6 +3604,8 @@ end; procedure TFormTCO.ImagePalette15EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3587,6 +3625,8 @@ end; procedure TFormTCO.ImagePalette16EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3607,6 +3647,8 @@ end; procedure TFormTCO.ImagePalette17EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3627,6 +3669,8 @@ end; procedure TFormTCO.ImagePalette18EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3647,6 +3691,8 @@ end; procedure TFormTCO.ImagePalette19EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3667,6 +3713,8 @@ end; procedure TFormTCO.ImagePalette20EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3687,6 +3735,8 @@ end; procedure TFormTCO.ImagePalette21EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3707,6 +3757,8 @@ end; procedure TFormTCO.ImagePalette22EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -3801,7 +3853,7 @@ begin for y:=1 to NbreCellY do for x:=1 to NbreCellX do begin - if TCO[x,y].BImage=30 then + if TCO[x,y].BImage=30 then begin Adresse:=TCO[x,y].adresse; j:=Index_feu(adresse); @@ -3823,7 +3875,7 @@ begin efface_cellule(ImageTCO.Canvas,XclicCell,YClicCell,fond,PmCopy); TamponAffecte:=true; xCoupe:=XclicCell;yCoupe:=YclicCell; - + Affiche_tco; exit; end; @@ -4023,12 +4075,12 @@ procedure TFormTCO.EditAdrElementChange(Sender: TObject); var Adr,erreur,index,aspect : integer; begin Val(EditAdrElement.Text,Adr,erreur); - if (erreur<>0) or (Adr<0) or (Adr>2048) then + if (erreur<>0) or (Adr<0) or (Adr>2048) then begin EditAdrElement.text:=intToSTR(tco[XClicCell,YClicCell].Adresse); exit; - end; - + end; + tco[XClicCell,YClicCell].Adresse:=Adr; //Affiche('Chgt adresse',clyellow); @@ -4042,8 +4094,7 @@ begin Aspect:=Feux[index].Aspect; tco[XClicCell,YClicCell].aspect:=aspect; affiche_tco; - //affiche_cellule(XClicCell,YClicCell,pmCopy); - end; + end; end; end; @@ -4115,6 +4166,8 @@ end; // dépose d'un feu sur le TCO procedure TFormTCO.ImageDiag10EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; TCO_modifie:=true; Xclic:=X;YClic:=Y; @@ -4144,6 +4197,8 @@ end; procedure TFormTCO.ImageDiag11EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; TCO_modifie:=true; Xclic:=X;YClic:=Y; @@ -4175,6 +4230,8 @@ end; procedure TFormTCO.ImagePalette30EndDrag(Sender, Target: TObject; X, Y: Integer); begin + if not(Target is TImage) then exit; + if (Target as TImage).Name<>'ImageTCO' then exit; if (x=0) and (y=0) then exit; efface_entoure; TCO_modifie:=true; @@ -4183,7 +4240,7 @@ begin YclicCell:=Yclic div hauteurCell +1; //PCanvasTCO.Draw((xClicCell-1)*LargeurCell,(yClicCell-1)*HauteurCell,ImageFeu.Picture.Bitmap); tco[XClicCell,YClicCell].BType:=rien; // rien - tco[XClicCell,YClicCell].BImage:=30; + tco[XClicCell,YClicCell].BImage:=30; tco[XClicCell,YClicCell].Adresse:=0; tco[XClicCell,YClicCell].FeuOriente:=1; tco[XClicCell,YClicCell].Aspect:=9; @@ -4195,9 +4252,9 @@ begin EdittypeImage.Text:=IntToSTR(tco[XClicCell,YClicCell].BImage); dessin_feu(PCanvasTCO,XclicCell,YClicCell); - entoure_cell_grille(XClicCell,YClicCell); + entoure_cell_grille(XClicCell,YClicCell); _entoure_cell_clic; - + end; @@ -4209,13 +4266,12 @@ end; procedure TFormTCO.Tourner90GClick(Sender: TObject); -var BImage,adresse : integer; +var BImage : integer; begin BImage:=TCO[XClicCell,YClicCell].Bimage; - if Bimage<>30 then exit; + if Bimage<>30 then exit; TCO_modifie:=true; - adresse:=TCO[XClicCell,YClicCell].Adresse; // effacement de l'ancien feu if tco[XClicCell,YClicCell].FeuOriente=3 then @@ -4238,8 +4294,7 @@ begin end; tco[XClicCell,YClicCell].FeuOriente:=2; // feu orienté à 90° gauche - - dessin_feu(PCanvasTCO,XclicCell,YClicCell); + Affiche_TCO; end; procedure TFormTCO.Tourner90DClick(Sender: TObject); @@ -4249,6 +4304,7 @@ begin if Bimage<>30 then exit; TCO_modifie:=true; + adresse:=TCO[XClicCell,YClicCell].Adresse; aspect:=tco[XClicCell,YClicCell].aspect; if aspect=0 then aspect:=9; @@ -4275,7 +4331,8 @@ begin end; tco[XClicCell,YClicCell].FeuOriente:=3; // feu orienté à 90° droit - dessin_feu(PCanvasTCO,XclicCell,YClicCell); + //dessin_feu(PCanvasTCO,XclicCell,YClicCell); + Affiche_TCO; end; @@ -4317,7 +4374,8 @@ begin end; tco[XClicCell,YClicCell].FeuOriente:=1; // feu orienté à 180° - dessin_feu(PCanvasTCO,XclicCell,YClicCell); + //dessin_feu(PCanvasTCO,XclicCell,YClicCell); + affiche_tco; end; @@ -4389,35 +4447,33 @@ begin ScrollBox.Height:=ClientHeight-Panel1.Height-40; end; -procedure TFormTCO.ButtonConstruitClick(Sender: TObject); -begin - construit_TCO; -end; procedure TFormTCO.ImageTCODblClick(Sender: TObject); var Bimage,Adresse,i : integer; + tjdC : boolean; Msgdlg: Tform; Result : TModalResult; begin Bimage:=Tco[xClicCell,yClicCell].BImage; Adresse:=TCO[xClicCell,yClicCell].Adresse; + if adresse=0 then exit; + + tjdC:=false; + if (Bimage=21) or (Bimage=22) then + begin + i:=Index_aig(Adresse); + tjdC:=(aiguillage[i].modele=tjd) or (aiguillage[i].modele=tjs); + end; // commande aiguillage if (Bimage=2) or (Bimage=3) or (Bimage=4) or (Bimage=5) or (Bimage=12) or - (Bimage=13) or (Bimage=14) or (Bimage=15) then + (Bimage=13) or (Bimage=14) or (Bimage=15) or TJDc then begin - Msgdlg:=createMessageDialog('Pilotage de l''aiguillage '+IntToSTR(Adresse), mtCustom,[MbYes,mbNo,MbCancel]); - with Msgdlg do - begin - caption:='Aiguillage'; - BiDiMode := bdRightToLeft; - ( FindComponent('Yes') as TButton).Caption:='droit'; - ( FindComponent('No') as TButton).Caption:='dévié'; - end; - Result:=Msgdlg.ShowModal; - if Result=MrYes then begin efface_entoure;SelectionAffichee:=false;pilote_acc(adresse,const_droit,aigP);end; // droit - if Result=MrNo then begin efface_entoure;SelectionAffichee:=false;pilote_acc(adresse,const_devie,aigP);end; // dévié + aiguille:=Adresse; + TformAig.create(nil); + formAig.showmodal; + formAig.close; sourisclic:=false; // évite de générer un cadre de sélection:=false; piloteAig:=true; end; @@ -4425,7 +4481,6 @@ begin // commande de signal if Bimage=30 then begin - if adresse=0 then exit; AdrPilote:=adresse; i:=Index_feu(adresse); if i=0 then exit; @@ -4446,20 +4501,166 @@ begin EditNbreFeux.Visible:=false; GroupBox1.Visible:=true; GroupBox2.Visible:=true; + efface_entoure;SelectionAffichee:=false; sourisclic:=false; // évite de générer un cadre de sélection end; end; end; +procedure TFormTCO.ComboReprChange(Sender: TObject); +begin + tco[XClicCell,YClicCell].Repr:=comborepr.ItemIndex; + efface_entoure;SelectionAffichee:=false; + sourisclic:=false; + //affiche_cellule(XClicCell,yClicCell); + affiche_tco; +end; + + +procedure TFormTCO.Colorer1Click(Sender: TObject); +begin + //BImage:=TCO[XClicCell,YClicCell].Bimage; +end; + +procedure TFormTCO.ImagePalette1DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette2DragOver(Sender, Source: TObject; X,Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette3DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette5DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette12DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette13DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette14DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette15DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette21DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette22DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette6DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette7DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette8DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette9DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette16DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette17DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette18DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette19DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette20DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette10DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette11DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.ImagePalette30DragOver(Sender, Source: TObject; X, + Y: Integer; State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + +procedure TFormTCO.Panel1DragOver(Sender, Source: TObject; X, Y: Integer; + State: TDragState; var Accept: Boolean); +begin + accept:=true; +end; + + begin - - - - - - - - end. diff --git a/Unit_Pilote_aig.dcu b/Unit_Pilote_aig.dcu new file mode 100644 index 0000000000000000000000000000000000000000..98b22a313b2d407c5210ef41036159af795e3843 GIT binary patch literal 7365 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 literal 0 HcmV?d00001 diff --git a/Unit_Pilote_aig.dfm b/Unit_Pilote_aig.dfm new file mode 100644 index 0000000..7731fc6 --- /dev/null +++ b/Unit_Pilote_aig.dfm @@ -0,0 +1,101 @@ +object FormAig: TFormAig + Left = 400 + Top = 204 + Width = 363 + Height = 204 + Caption = 'Pilotage de l'#39'aiguillage' + Color = clMaroon + 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 Label1: TLabel + Left = 80 + Top = 8 + Width = 173 + Height = 23 + Caption = 'Pilotage de l'#39'aiguillage' + Font.Charset = ANSI_CHARSET + Font.Color = clWindow + Font.Height = -19 + Font.Name = 'Arial Narrow' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object LabelAdr1: TLabel + Left = 56 + Top = 56 + Width = 65 + Height = 16 + Caption = 'LabelAdr1' + Font.Charset = ANSI_CHARSET + Font.Color = clWindow + Font.Height = -13 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object LabelAdr2: TLabel + Left = 224 + Top = 56 + Width = 65 + Height = 16 + Caption = 'LabelAdr2' + Font.Charset = ANSI_CHARSET + Font.Color = clWindow + Font.Height = -13 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + end + object ButtonOK: TButton + Left = 136 + Top = 128 + Width = 75 + Height = 25 + Caption = 'Ok' + ModalResult = 1 + TabOrder = 0 + end + object ButtonDev: TButton + Left = 8 + Top = 88 + Width = 75 + Height = 25 + Caption = 'D'#233'vi'#233 + TabOrder = 1 + OnClick = ButtonDevClick + end + object ButtonDroit: TButton + Left = 88 + Top = 88 + Width = 75 + Height = 25 + Caption = 'Droit' + TabOrder = 2 + OnClick = ButtonDroitClick + end + object ButtonDev2: TButton + Left = 184 + Top = 88 + Width = 75 + Height = 25 + Caption = 'D'#233'vi'#233 + TabOrder = 3 + OnClick = ButtonDev2Click + end + object ButtonDroit2: TButton + Left = 264 + Top = 88 + Width = 75 + Height = 25 + Caption = 'Droit' + TabOrder = 4 + OnClick = ButtonDroit2Click + end +end diff --git a/Unit_Pilote_aig.pas b/Unit_Pilote_aig.pas new file mode 100644 index 0000000..8bcf69d --- /dev/null +++ b/Unit_Pilote_aig.pas @@ -0,0 +1,130 @@ +unit Unit_Pilote_aig; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, UnitPrinc, UnitTCO; + +type + TFormAig = class(TForm) + ButtonOK: TButton; + Label1: TLabel; + ButtonDev: TButton; + ButtonDroit: TButton; + ButtonDev2: TButton; + ButtonDroit2: TButton; + LabelAdr1: TLabel; + LabelAdr2: TLabel; + procedure FormActivate(Sender: TObject); + procedure ButtonDevClick(Sender: TObject); + procedure ButtonDroitClick(Sender: TObject); + procedure ButtonDev2Click(Sender: TObject); + procedure ButtonDroit2Click(Sender: TObject); + private + { Déclarations privées } + public + { Déclarations publiques } + end; + +var + FormAig: TFormAig; + aiguille,aiguille2 : integer; + tjdC,aigC : boolean; +implementation + +{$R *.dfm} + +procedure commande_simple; +begin + with formAig do + begin + LabelAdr2.Visible:=false; + LabelAdr1.Visible:=false; + ButtonDev2.Visible:=false; + ButtonDroit2.Visible:=false; + ButtonOk.Visible:=false; + ButtonDev.Left:=48; + ButtonDroit.Left:=216; + end; +end; + +procedure TFormAig.FormActivate(Sender: TObject); +var i : integer; + s : string; +begin + i:=Index_aig(Aiguille); + aigC:=(aiguillage[i].modele=aig); + tjdC:=(aiguillage[i].modele=tjd) or (aiguillage[i].modele=tjs); + if aigC then + begin + s:='Pilotage de l''aiguillage '+intToSTR(aiguille); + commande_simple; + end; + if tjdC then + begin + s:='Pilotage de la TJD '+intToSTR(aiguille); + + if aiguillage[i].EtatTJD=4 then + begin + LabelAdr1.Caption:='Adresse1: '+intToSTR(aiguille); + aiguille2:=aiguillage[i].DDevie; + LabelAdr2.Caption:='Adresse2: '+intToSTR(aiguille2); + LabelAdr2.Visible:=true; + LabelAdr1.Visible:=true; + ButtonDev2.Visible:=true; + ButtonOk.Visible:=true; + ButtonDroit2.Visible:=true; + ButtonDev.Left:=8; + ButtonDroit.Left:=88; + end; + end; + if aiguillage[i].EtatTJD=2 then + begin + commande_simple; + end; + + Label1.Caption:=s; +end; + +procedure TFormAig.ButtonDevClick(Sender: TObject); +var s : string; +begin + efface_entoure;SelectionAffichee:=false; + pilote_acc(aiguille,const_devie,aigP); + s:='accessoire '+IntToSTR(aiguille)+' dévié'; + Affiche(s,clyellow); + if AigC then close; +end; + +procedure TFormAig.ButtonDroitClick(Sender: TObject); +var s : string; +begin + efface_entoure;SelectionAffichee:=false; + pilote_acc(aiguille,const_droit,aigP); + s:='accessoire '+IntToSTR(aiguille)+' droit'; + Affiche(s,clyellow); + if AigC then close; +end; + +procedure TFormAig.ButtonDev2Click(Sender: TObject); +var s : string; +begin + efface_entoure;SelectionAffichee:=false; + pilote_acc(aiguille2,const_devie,aigP); + s:='accessoire '+IntToSTR(aiguille2)+' dévié'; + Affiche(s,clyellow); + if AigC then close; +end; + +procedure TFormAig.ButtonDroit2Click(Sender: TObject); +var s : string; +begin + efface_entoure;SelectionAffichee:=false; + pilote_acc(aiguille2,const_droit,aigP); + s:='accessoire '+IntToSTR(aiguille2)+' droit'; + Affiche(s,clyellow); + if AigC then close; +end; + +end. diff --git a/verif_version.dcu b/verif_version.dcu index 3761799c331b51d8f042c6a81900482164eed6d6..851391a43ba5322212723a77569c81aa47dc94be 100644 GIT binary patch delta 2119 zcmZuxeN0nV6o2>J=cBFAKCta*SL-WQq>YtTNbNu-cMgShpkaN_nVxxBge~0DHr- zPv#i|H!baCQPYQe+FjtB#h)xm(kg%HGps2ypFCtoGXEhx0|&DhNej?)iKOeyZ!IQ9 zw!>;8HWs!PkUn$;5 zeD!H_y<)@f|ER?Gk=Vsp#q{9*NAB^Yqnn*@Hu~n>BDc?K2Od2PdgLf@9YXvyvqxi|(hARt;^hs;cQyYp)ON zTkauI9R(?`r(MX<9?Du34+A*Ft;h zns2f!e_XDnU&))AguTSO)3fgDfSCEyL`VwRK zP>eMx?tQ`^nGfV+z%B|#ak2TuRrneBtadn$o1KRie48d1vI_NsNvID@Sg64*Je9km z3Fo|-#%*YzJZ?grkCKaAg;B9@#0>uA#9^8|zER-0eA-m4iZymT{j9kjsb1ze+bl+? z#v`wy+$T1jtJi>_T}6{;ON7?&8rb0h$}-rVA}O6CuEGSQ?uwqF80Bm*r<1KTOR>o^ z*C^ap0hdxdvYB|~Y!bre9+_W3RRNiV*dNQ^r1^3gE6ZC$x5yf6$tx#C>};Mlf?oN>;Wo+lx@UsO?EkFXn-mpIc?l@yKFLkcObbo^ZdfC9Q_p>i>m}yb1VsRT;0HN zLzBQT$1SY_+c<9P;8-5zxTotmq2dC2IPN{fasOeC@AYzQKg#jIF^-*Ia{Qp5<2m+? zZ>i(LdCo6g7I;Z)9*>`WDUPdWJfz$kQ%evXo;bfmY6zdsnS7f60Im5v_)y9E$ACcw4t=3M5)%JO46== z+7Y2WMyYY-2sO&e2=&N`5&A1Lyvn-ug_rzIZH-ZW%!14iQpjK&Qn zY_Jdmp@oSF4kPsYbnHShkX_C|mT5*dYDQLMNlem7i-E|Qsxnzbd(;Gxeb$6gUdR8A TacvYWVUsm(dW2Fz7{Px5rT!FW delta 2073 zcmZ`)eN0nV6o2>J$D?+oeXX^Yu7w8zH67K^K$#F~2r6VrHhvrjp5m`^1E{JLi@9F*lO)JHKvYWk>VQEzLVy zw(HFPt5tN{%h;eeVRyi-=ZC+se<-i~N|B_dWJOb-b_5$sT~(5$`>zZn)f8edi9x^r z-sm_A?^3GYe|J<9gW1I^1eRifyZt@0@nkYpdqgJ-0kwhIr>es0Dq}uT?OMWK5IbB; zN?y#I>m0kb_iLs9O%}Tt3(SrLAEu{Mi8gW0)mri>t*dvj*acFzJyg%65<&6uvlo5c zV_|z&=N&x9S)8$}^ER>(WRFd?-+w3Hf7{aS#hZ-FK5`KX??2BkyA=CDvn{;Phwd zRPZLUWcZKZtU-+DEMI7vH>VvbPqSYfBfUb)EioU*42~D<#j^y*L_@A`{&-rnZ0x12 zTbugS;JM-Vau2brxz|miSFcK}&&w6B=H(9e=G8%VpDZagTw*m`V}5QxPo}aO@!O(n zYisy=mLcaet6a-W23BfN{HXQw0$sPdTxsDB$ODz3XY2S{^ePmB2};1Ggs^2ummG#cRofNK+A_8yvS^jPt9|l zq$+IF_oTE78g=ef265CuoFO{`24#q^VcB4W%Q);1ckl<;qmJhwH^LP?N4^T8yd2uW z0Z}M|0rUsK4byHcxpnDbs6<}yA3T*)oO(&w3`39)$DkA@K#RaBaLp}wQnvbW8LGVh ziZ?(X)WVlgoL-F@n%@YAp#rsOUhqHpQp`J8gcjVu!#p~u3g>`kbijE$(RtW|PtOQr zcHNyd>TaJAchcY%-o($?CB;)7V`$-2H=-{^D?+Z~CUj0ScvAz1xPEI9%#)U;)u33s!mXaYm!E9n1xlOUkGI=zLRltE1k8EZh*~uDl6OT- zUMoAqP;ou;2q-Ct;FkfC-Om9eho8$JIWzFvlHIO2_j3g#mzBaC_W~KeGmzZtNMF8@ z&|61X5zuifp>G@EiWb7!9Xf^xH-&X%os0U7wEqgdGEfZyh9j`(47W z!-Ve~A?!XzxNnH?+mnPB#LbdL*_X}}zjRs0D}>)o5RMCXX-VYj1L9ZXgx8piczqt> z-YT9&KF$}Avt<)5kUiuU%LiU>;Trz3RfhPOL29+NbDts1ea22+rF8P9L>R4;?@_{h z59Y=a?Py`NDAxv5N!mHYqkLeV)LI#t;J3Ik!5{F%1V17pJ1rw)iZY2{m_jg4@pTI3 zmS-j=c{meUvjMBk2COz4jM%`4h3aP#Qv?${WWp{dO~|5I$j)RT8!#igVNTrV$1H|8 mKVwnu^BOe~=g&>dPh`kz=pQH^8%;}CWsO3Q?o`l&#(w}c9}#%~ diff --git a/verif_version.pas b/verif_version.pas index 099e741..fcee918 100644 --- a/verif_version.pas +++ b/verif_version.pas @@ -23,7 +23,7 @@ var Lance_verif : integer; verifVersion,notificationVersion : boolean; -Const Version='3.8'; // sert à la comparaison de la version publiée +Const Version='3.81'; // sert à la comparaison de la version publiée SousVersion=' '; // en cas d'absence de sous version mettre un espace implementation diff --git a/versions.txt b/versions.txt index 4ede101..ac8786e 100644 --- a/versions.txt +++ b/versions.txt @@ -87,8 +87,9 @@ version 3.71 : Suppression vitesse train Ajout d'un bouton de test des actionneurs dans la page de configuration des actionneurs. version 3.8 : Possibilité de déclencher les actions depuis une zone deux détecteurs contigus. Gestion des fonctions F de train de F0 à F28 en mode autonome. +version 3.81 : Pilotage des TJD depuis le TCO. + Améliorations diverses dans le TCO. -