diff --git a/Notice d'utilisation des signaux_complexes_GL_V10.7.pdf b/Notice d'utilisation des signaux_complexes_GL_V10.71.pdf similarity index 83% rename from Notice d'utilisation des signaux_complexes_GL_V10.7.pdf rename to Notice d'utilisation des signaux_complexes_GL_V10.71.pdf index a7da3c2..76e4b7a 100644 Binary files a/Notice d'utilisation des signaux_complexes_GL_V10.7.pdf and b/Notice d'utilisation des signaux_complexes_GL_V10.71.pdf differ diff --git a/UnitConfig.dfm b/UnitConfig.dfm index f6742a6..dec8a92 100644 --- a/UnitConfig.dfm +++ b/UnitConfig.dfm @@ -1573,7 +1573,7 @@ object FormConfig: TFormConfig Top = 8 Width = 633 Height = 505 - ActivePage = TabSheetAutonome + ActivePage = TabSheetActions Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 @@ -2098,7 +2098,7 @@ object FormConfig: TFormConfig 'S'#233'lection du style d'#39#39'affichage - Le style sera chang'#233' '#224' la ferm' + 'eture de la fen'#234'tre'#39 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 ParentShowHint = False ShowHint = True TabOrder = 0 @@ -3340,7 +3340,7 @@ object FormConfig: TFormConfig Width = 137 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 1 OnChange = ComboBoxDecChange end @@ -3471,7 +3471,7 @@ object FormConfig: TFormConfig Width = 137 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 2 OnChange = ComboBoxAspChange end @@ -3779,7 +3779,7 @@ object FormConfig: TFormConfig Top = 56 Width = 193 Height = 21 - ItemHeight = 13 + ItemHeight = 0 TabOrder = 0 OnChange = ComboBoxDecodeurPersoChange end @@ -3798,7 +3798,7 @@ object FormConfig: TFormConfig Width = 145 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 2 OnChange = ComboBoxNationChange end @@ -3844,7 +3844,7 @@ object FormConfig: TFormConfig Width = 193 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 6 OnChange = ComboBoxDecCdeChange end @@ -4057,7 +4057,7 @@ object FormConfig: TFormConfig Top = 96 Width = 137 Height = 21 - ItemHeight = 13 + ItemHeight = 0 TabOrder = 2 OnChange = ComboBoxOperateurChange OnDrawItem = ComboBoxOperateurDrawItem @@ -4077,7 +4077,7 @@ object FormConfig: TFormConfig Top = 96 Width = 161 Height = 21 - ItemHeight = 13 + ItemHeight = 0 ParentShowHint = False ShowHint = True TabOrder = 4 @@ -4147,8 +4147,8 @@ object FormConfig: TFormConfig OnChange = LabeledEditTrainChange end object RadioGroupOP: TRadioGroup - Left = 48 - Top = 32 + Left = 72 + Top = 24 Width = 89 Height = 57 Caption = 'Op'#233'rateur' @@ -4159,6 +4159,17 @@ object FormConfig: TFormConfig TabOrder = 4 OnClick = RadioGroupOPClick end + object LabeledEditZone: TLabeledEdit + Left = 16 + Top = 44 + Width = 41 + Height = 21 + EditLabel.Width = 25 + EditLabel.Height = 13 + EditLabel.Caption = 'Zone' + TabOrder = 5 + OnChange = LabeledEditZoneChange + end end object ButtonSupLog: TButton Left = 288 @@ -4178,7 +4189,7 @@ object FormConfig: TFormConfig Width = 145 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 7 OnChange = ComboBoxFLChange end @@ -4728,7 +4739,7 @@ object FormConfig: TFormConfig Height = 21 Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"' Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 ParentShowHint = False ShowHint = True TabOrder = 10 @@ -6455,7 +6466,7 @@ object FormConfig: TFormConfig Width = 153 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 0 OnChange = ComboBoxUSBTrChange end @@ -6635,7 +6646,7 @@ object FormConfig: TFormConfig Left = 664 Top = 72 Bitmap = { - 494C010109000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01010A000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000004000000001002000000000000040 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -6791,17 +6802,17 @@ object FormConfig: TFormConfig 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000000FF000000 + FF000000FF000000FF000000FF0000000000000000000000FF000000FF000000 + FF000000FF000000FF0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000000FF000000 + FF000000FF000000FF000000FF0000000000000000000000FF000000FF000000 + FF000000FF000000FF0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -7155,11 +7166,11 @@ object FormConfig: TFormConfig 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000FFFF000000000000742E000000000000 - 75EE000000000000546A00000000000025E4000000000000742E000000000000 - FFFF000000000000FFFF00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000FFFF000000000000FB4700000000 + 00000000000000000000000000000000FFFFFFFF00000000742EFFFF00000000 + 75EEFFFF00000000546AC1830000000025E4C18300000000742EFFFF00000000 + FFFFFFFF00000000FFFFB6DB0000000000000000000000000000B6DB00000000 + 00000000000000000000B6DB000000000000FFFF000000000000FFFF00000000 + 0000FFFF000000000000FFFF000000000000FFFF000000000000FB4700000000 0000F56F000000000000F56F000000000000F54F000000000000FB6F00000000 0000FFFF00000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 diff --git a/UnitConfig.pas b/UnitConfig.pas index ed451de..ca3405d 100644 --- a/UnitConfig.pas +++ b/UnitConfig.pas @@ -510,6 +510,7 @@ type Label83: TLabel; Label84: TLabel; LabelTitreTrain: TLabel; + LabeledEditZone: TLabeledEdit; procedure ButtonAppliquerEtFermerClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ListBoxAigMouseDown(Sender: TObject; Button: TMouseButton; @@ -808,6 +809,7 @@ type procedure LabeledEditVit1Change(Sender: TObject); procedure LabeledEditVit2Change(Sender: TObject); procedure LabeledEditVit3Change(Sender: TObject); + procedure LabeledEditZoneChange(Sender: TObject); private { Déclarations privées } @@ -964,6 +966,7 @@ EtatDCC=5; EtatDet=6; EtatBoutonTCO=7; EtatMemoire=8; +EtatZone=9; NomVAR='Fonction logique'; NomOpET='Opérateur ET'; NomOpOU='Opérateur OU'; @@ -973,7 +976,8 @@ NomEtatDCC='Etat DCC'; NomEtatDet='Etat détect./actionn.'; NomEtatBoutonTCO='Bouton TCO'; NomEtatMemoire='Mémoire'; -NomFonc : array[0..8] of string[25]=(NomVar,NomOpET,NomOpOu,NomOpNonET,NomOpNonOU,NomEtatDCC,NomEtatDet,NomEtatBoutonTCO,NomEtatMemoire); +NomEtatZone='Zone'; +NomFonc : array[0..9] of string[25]=(NomVar,NomOpET,NomOpOu,NomOpNonET,NomOpNonOU,NomEtatDCC,NomEtatDet,NomEtatBoutonTCO,NomEtatMemoire,NomEtatZone); var @@ -2632,7 +2636,9 @@ begin s:=intToSTR(i)+','+nomfonc[fonction[j,i].typ]+','; s:=s+'N'+intToSTR(fonction[j,i].niveau)+','; s:=s+'T'+intToSTR(fonction[j,i].typ)+','; - s:=s+'A'+intToSTR(fonction[j,i].adresse)+','; + s:=s+'A'+intToSTR(fonction[j,i].adresse); + if fonction[j,i].typ=EtatZone then s:=s+'-'+intToSTR(fonction[j,i].adresse2); + s:=s+','; s:=s+'E'+intToSTR(fonction[j,i].etat)+','; s:=s+'V'+','+fonction[j,i].train+','; s:=s+'O'+intToSTR(fonction[j,i].OpMemoire)+','; @@ -2954,14 +2960,16 @@ begin result:=c; end; +// renvoie vrai si typ est un opérateur function isOperateur(typ : integer): boolean; begin result:=(typ>=OpET) and (typ<=OpNonOu); end; +// renvoie vrai si typ est une variable function isVariable(typ : integer): boolean; begin - result:=(typ>=EtatDCC) and (typ<=EtatMemoire); + result:=(typ>=EtatDCC) and (typ<=EtatZone); end; // donne le texte à mettre dans le tree view en fonction de l'index de fonction[] @@ -3015,6 +3023,10 @@ begin end; s:=s+intToSTR(fonction[fonc,i].etat); end; + if typ=EtatZone then + begin + s:=s+fonction[fonc,i].train+' '+intToSTR(fonction[fonc,i].adresse)+' '+intToSTR(fonction[fonc,i].adresse2)+' '+intToSTR(fonction[fonc,i].etat); + end; end; result:=s; end; @@ -3042,10 +3054,14 @@ begin else s:=s+' inconnu '; end; end; - if typ=EtatDet then + if (typ=EtatDet) then begin s:=s+intToSTR(fonction[fonc,i].adresse)+' '+intToSTR(fonction[fonc,i].etat); end; + if (typ=EtatZone) then + begin + s:=s+intToSTR(fonction[fonc,i].adresse)+' '+intToSTR(fonction[fonc,i].adresse2)+' '+intToSTR(fonction[fonc,i].etat); + end; if typ=EtatBoutonTCO then begin s:=s+'Bt'+intToSTR(fonction[fonc,i].adresse)+' '+intToSTR(fonction[fonc,i].etat); @@ -4913,24 +4929,33 @@ const LessThanValue=-1; Fonction[NbreFL+1,i].niveau:=v; Delete(s,1,erreur); - Delete(s,1,1); // supprime T + Delete(s,1,1); // supprime T (type) val(s,v,erreur); delete(s,1,erreur); - erreur:=CompareValue(versR,9.7,0.01); - if (erreur=LessThanValue) or (erreur=EqualsValue) then - begin - if (v>=4) then inc(v); - end; - Fonction[NbreFL+1,i].typ:=v; + //erreur:=CompareValue(versR,9.7,0.01); + //if (erreur=LessThanValue) or (erreur=EqualsValue) then + //begin + // if (v>=4) then inc(v); + //end; + Fonction[NbreFL+1,i].typ:=v; // type inc(idOperateur); ArbreFonc[idOperateur,0]:=i; - Delete(s,1,1); // supprime A + Delete(s,1,1); // supprime A (adresse) val(s,v,erreur); - delete(s,1,erreur); - Fonction[NbreFL+1,i].adresse:=v; - Delete(s,1,1); // supprime E + Fonction[NbreFL+1,i].adresse:=v; + delete(s,1,erreur-1); + if s[1]='-' then // si adresse 2 pour mémoire de zone + begin + delete(s,1,1); + val(s,v,erreur); + Fonction[NbreFL+1,i].adresse2:=v; + delete(s,1,erreur-1); + end; + delete(s,1,1); // supprime , + + Delete(s,1,1); // supprime E (état) val(s,v,erreur); delete(s,1,erreur); Fonction[NbreFL+1,i].etat:=v; @@ -8552,10 +8577,9 @@ begin items.add(NomEtatDet); items.add(NomEtatBoutonTCO); items.add(NomEtatMemoire); + items.Add(NomEtatZone); end; - - // actionneurs PN ListBoxPN.Clear; longestLength:=0; @@ -16576,6 +16600,7 @@ var i,io,j,decl :integer; s : string; begin // remplir la listbox en fonction des opérations de l'action cliquée + //Affiche('Affiche_action',clYellow); with FormConfig.ListBoxOperations do begin clear; @@ -16590,11 +16615,14 @@ begin else begin io:=Tablo_Action[ligneclicAct+1].tabloOp[i].numoperation; - affecte_operation(io,formConfig.ListBoxOperations); + s:=affecte_operation(io); + if ligneclicAct>0 then if not(Tablo_Action[ligneclicact+1].tabloOp[i].valide) then s:=s+sd; + formConfig.ListBoxOperations.Items.Add(s); end; itemHeight:=16; end; end; + Application.ProcessMessages; formConfig.RichEditInfo.clear; decl:=Tablo_Action[ligneclicAct+1].declencheur; @@ -17897,7 +17925,7 @@ begin exit; end; end; - if (ComboBoxVar.ItemIndex=EtatMemoire-EtatDCC) then + if (ComboBoxVar.ItemIndex=EtatZone-EtatDCC) then begin end; labelInfo.Caption:=''; @@ -17931,6 +17959,31 @@ begin node.Text:=s; end; +procedure TFormConfig.LabeledEditZoneChange(Sender: TObject); +var node : tTreenode; + i,v,erreur : integer; + s : string; +begin + if clicTree then exit; + + node:=TreeViewL.Selected; + if node=nil then exit; + i:=node.AbsoluteIndex; + + config_modifie:=true; + val(LabeledEditZone.text,v,erreur); + if v<1 then + begin + labelInfo.Caption:='Erreur'; + exit; + end; + labelInfo.Caption:=''; + fonction[foncCourante,i].adresse2:=v; + s:=texte_tv(foncCourante,i); + node.Text:=s; + +end; + procedure TformConfig.outdployer1Click(Sender: TObject); begin @@ -17959,6 +18012,7 @@ begin LabelEtat.Visible:=true; SpinEditEtat.Visible:=true; RadioGroupOP.Visible:=false; + LabeledEditZone.Visible:=false; LabeledEditEtatACC.Visible:=false; LabeledEditTrain.visible:=false; PanelAcc.Visible:=true; @@ -17968,12 +18022,13 @@ begin LabeledEditDCC.text:=intToSTR(fonction[foncCourante,iNode].adresse); end; - if i=EtatDet then // actionneur détecteur + if (i=EtatDet) then // actionneur détecteur begin RadioGroupOP.Visible:=false; LabelEtat.Visible:=false; LabeledEditTrain.visible:=true; SpinEditEtat.Visible:=false; + LabeledEditZone.Visible:=false; LabeledEditEtatACC.Visible:=true; LabeledEditDcc.EditLabel.Caption:='Adresse'; LabeledEditTrain.Text:=fonction[foncCourante,iNode].train; @@ -17981,6 +18036,21 @@ begin LabeledEditDCC.text:=intToSTR(fonction[foncCourante,iNode].adresse); end; + if (i=EtatZone) then // zone + begin + RadioGroupOP.Visible:=false; + LabelEtat.Visible:=false; + LabeledEditTrain.visible:=true; + SpinEditEtat.Visible:=false; + LabeledEditZone.Visible:=true; + LabeledEditEtatACC.Visible:=true; + LabeledEditDcc.EditLabel.Caption:='Adresse'; + LabeledEditTrain.Text:=fonction[foncCourante,iNode].train; + LabeledEditEtatAcc.Text:=intToSTR(fonction[foncCourante,iNode].etat); + LabeledEditDCC.text:=intToSTR(fonction[foncCourante,iNode].adresse); + LabeledEditZone.text:=intToSTR(fonction[foncCourante,iNode].adresse2); + end; + if i=EtatBoutonTCO then begin RadioGroupOP.Visible:=false; @@ -17989,6 +18059,7 @@ begin LabeledEditEtatACC.Visible:=true; LabeledEditTrain.visible:=false; PanelAcc.Visible:=true; + LabeledEditZone.Visible:=false; LabeledEditDCC.Visible:=true; LabeledEditDcc.EditLabel.Caption:='Numéro de bouton'; LabeledEditDCC.Text:=intToSTR(fonction[foncCourante,iNode].adresse); @@ -18004,6 +18075,7 @@ begin top:=8; end; LabeledEditDCC.Visible:=true; + LabeledEditZone.Visible:=false; LabeledEditDcc.EditLabel.Caption:='Numéro de mémoire'; LabeledEditTrain.visible:=false; LabeledEditEtatACC.Visible:=true; @@ -18545,7 +18617,7 @@ begin end; Function Etat_variable(k,i : integer): boolean ; -var pos,j,typ,adr : integer; +var pos,j,typ,adr,adr2 : integer; resultat : boolean; train : string; begin @@ -18560,6 +18632,7 @@ begin exit; end; + if typ=EtatDet then // si état détecteur / actionneur begin resultat:=detecteur[adr].Etat=(fonction[k,i].etat=1); @@ -18591,6 +18664,22 @@ begin end; exit; end; + + if typ=EtatZone then // si Zone + begin + adr2:=fonction[k,i].adresse2; + resultat:=MemZone[adr,adr2].Etat=(fonction[k,i].etat=1); + // ajouter ici si on teste un train sur détecteur + train:=fonction[k,i].train; + if train<>'' then + begin + //Affiche('Eval45 '+intToSTR(adr)+' '+Train,clwhite); + if detecteur[adr].Train<>train then resultat:=false; + end; + result:=resultat; + exit; + end; + end; // donne le suivant de même niveau de même index précédent @@ -18992,7 +19081,7 @@ begin config_modifie:=true; - if (ComboBoxVar.ItemIndex=EtatMemoire-EtatDCC) then + if (ComboBoxVar.ItemIndex=EtatZone-EtatDCC) then begin fonction[foncCourante,i].opMemoire:=RadioGroupOP.ItemIndex; s:=texte_tv(foncCourante,i); @@ -19651,6 +19740,8 @@ end; + + end. diff --git a/UnitMemZone.dfm b/UnitMemZone.dfm index 39cb5fd..8ab43b9 100644 --- a/UnitMemZone.dfm +++ b/UnitMemZone.dfm @@ -4,7 +4,7 @@ object FormMemZone: TFormMemZone BorderStyle = bsDialog Caption = 'Activer / d'#233'sactiver des m'#233'moires de zone' ClientHeight = 173 - ClientWidth = 370 + ClientWidth = 405 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -19,15 +19,16 @@ object FormMemZone: TFormMemZone TextHeight = 13 object Label1: TLabel Left = 24 - Top = 8 + Top = 0 Width = 329 - Height = 33 + Height = 39 Caption = 'Les m'#233'moires de zone sont constitu'#233'es de deux d'#233'tecteurs contigu' + - 's' + 's. Si les deux d'#233'tecteurs sont s'#233'par'#233's par un ou des aiguillage(' + + 's), il doit '#234'tre correctement positionn'#233 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText - Font.Height = -13 + Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] ParentFont = False @@ -40,28 +41,28 @@ object FormMemZone: TFormMemZone Height = 13 end object Shape1: TShape - Left = 216 + Left = 240 Top = 88 Width = 137 Height = 9 Brush.Color = clBlue end object Shape2: TShape - Left = 232 + Left = 256 Top = 83 Width = 25 Height = 20 Brush.Color = clRed end object Shape3: TShape - Left = 312 + Left = 336 Top = 83 Width = 25 Height = 20 Brush.Color = clRed end object Label2: TLabel - Left = 225 + Left = 249 Top = 56 Width = 35 Height = 19 @@ -74,7 +75,7 @@ object FormMemZone: TFormMemZone ParentFont = False end object Label3: TLabel - Left = 304 + Left = 328 Top = 56 Width = 35 Height = 19 diff --git a/UnitMemZone.pas b/UnitMemZone.pas index b66c88d..5e12e3e 100644 --- a/UnitMemZone.pas +++ b/UnitMemZone.pas @@ -78,7 +78,6 @@ end; function valide_det : boolean; var erreur : integer; - elsuiv : tEquipement; begin result:=false; val(FormMemZone.labeledEditDet1.text,det1Z,erreur); @@ -93,15 +92,16 @@ begin end; val(FormMemZone.labeledEditDet2.text,det2Z,erreur); - det_contigu(det1Z,det2Z,suivant,ElSuiv); - - if suivant=0 then + Det_Adj(det1Z); // renvoie les adresses des détecteurs adjacents au détecteur "det1Zrésultat dans adj1 et adj2 + if (adj1=det2Z) or (adj2=det2Z) then begin - FormMemZone.LabelInfo.Caption:='Les détecteurs '+intToSTR(det1Z)+' / '+intToSTR(det2Z)+' ne sont pas contigus'; + result:=true; + FormMemZone.LabelInfo.caption:=''; exit; end; - FormMemZone.LabelInfo.caption:=''; - result:=true; + + FormMemZone.LabelInfo.Caption:='Les détecteurs '+intToSTR(det1Z)+' / '+intToSTR(det2Z)+' ne sont pas contigus'; + result:=false; end; procedure TFormMemZone.ButtonActClick(Sender: TObject); diff --git a/UnitModifAction.dfm b/UnitModifAction.dfm index 7e1851d..2b428d7 100644 --- a/UnitModifAction.dfm +++ b/UnitModifAction.dfm @@ -1,6 +1,6 @@ object FormModifAction: TFormModifAction - Left = 395 - Top = 166 + Left = 542 + Top = 189 BorderStyle = bsDialog Caption = 'Modifier une action' ClientHeight = 443 @@ -60,7 +60,7 @@ object FormModifAction: TFormModifAction Top = 64 Width = 729 Height = 337 - ActivePage = TabSheetDecl + ActivePage = TabSheetOp MultiLine = True TabOrder = 1 object TabSheetDecl: TTabSheet diff --git a/UnitModifAction.pas b/UnitModifAction.pas index e5d3eac..f26a6e0 100644 --- a/UnitModifAction.pas +++ b/UnitModifAction.pas @@ -154,7 +154,7 @@ var ClicDeclenche,ClicAction,ClicCond,DeclencheurAffiche,OperationAffiche : integer; function Info_action(i : integer) : string; -procedure affecte_operation(i : integer;t: TListBox); +function affecte_operation(i : integer) : string; implementation @@ -219,21 +219,25 @@ begin end; // ajoute à la listbox t une ligne avec son icone opérations[] -// i numéro d'opération -procedure affecte_operation(i : integer;t : tListBox); +// i numéro d'opération dans le ytableau operations +function affecte_operation(i : integer) : string; var s : string; + io : integer; begin - s:=operations[i].nom; - if ligneclicAct>0 then if not(Tablo_Action[ligneclicact+1].tabloOp[i].valide) then s:=s+sd; - if i=0 then io:=Tablo_Action[ligneclicAct+1].tabloOp[i].numoperation else io:=0; + s:=''; + if i'' then ComboBoxActions.Items.Add(s); end; + //ligneclicACt:=0; ComboBoxActions.ItemIndex:=ligneclicAct; LabelDecl.Caption:='Déclencheur de l''action n°'+intToSTR(ComboBoxactions.ItemIndex+1); + Aff_champs(ligneclicAct+1,ClicCond+1,ClicAction+1); if OperationAffiche<>0 then @@ -1226,8 +1236,8 @@ begin for i:=1 to Tablo_Action[idBD].NbOperations do begin no:=Tablo_Action[idBD].tabloOp[i].numoperation; - //items.Add(Format('%d%s', [no-1, operations[no].nom])); // valeur d'index de l'icone dans la ImagelistIcones - affecte_operation(no,ListBoxOperations); + s:=affecte_operation(no); + ListBoxOperations.Items.add(s); itemHeight:=16; end; ItemIndex:=indexSrc-1; @@ -1264,7 +1274,8 @@ begin for i:=1 to Tablo_Action[idBD].NbOperations do begin no:=Tablo_Action[idBD].tabloOp[i].numoperation; - affecte_operation(no,ListBoxOperations); + s:=affecte_operation(no); + ListBoxOperations.Items.Add(s); itemHeight:=16; end; @@ -1536,7 +1547,7 @@ begin if not(Tablo_Action[ligneclicact+1].tabloOp[clicaction+1].valide) then s:=s+sd; listBoxOperations.Items[clicaction]:=s; - formconfig.ListBoxOperations.items[clicaction]:=s; //encode_actions(ligneclicAct+1); + if formconfig.ListBoxOperations.Count>=clicaction then formconfig.ListBoxOperations.items[clicaction]:=s; //encode_actions(ligneclicAct+1); maj_combocactions(ligneclicAct); end; diff --git a/UnitPrinc.pas b/UnitPrinc.pas index d3dd6f7..459e1a9 100644 --- a/UnitPrinc.pas +++ b/UnitPrinc.pas @@ -778,7 +778,7 @@ Tfonction = record typ : integer; // opOU, EtatDCC, EtatDet ... etc Indexprec : integer ; // index du niveau précédent d'origine (parent) - adresse,etat : integer; // adresse : l'indice 0 contient le nombre d'éléments + adresse,adresse2,etat : integer; // adresse : l'indice 0 contient le nombre d'éléments OpMemoire : integer; // opérateur "mémoire" : 0=égal 1=> 2=< niveau : integer; // niveau : l'indice 0 contient le numéro de fonction modifiable traite : boolean; @@ -21552,7 +21552,7 @@ begin procetape('Lecture de la configuration'); lit_config; - clientInfo.Open; // se connecte au serveur SC et envoie les infos + clientInfo.Open; // &&& se connecte au serveur SC et envoie les infos {$IF CompilerVersion >= 28.0} //https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Compiler_Versions @@ -28149,8 +28149,8 @@ end; procedure TFormPrinc.ButtonEssaiClick(Sender: TObject); var i : integer; begin - maj_route(515); -// aiguillage[5].AdrTrain:=3; + i:=Tablo_Action[1].tabloOp[10].numoperation; + Affiche(intToSTR(i),clYellow); end; procedure TFormPrinc.TrackBarZCChange(Sender: TObject); diff --git a/verif_version.pas b/verif_version.pas index 3c6589c..49f5735 100644 --- a/verif_version.pas +++ b/verif_version.pas @@ -26,7 +26,7 @@ var f : textFile; Const -VersionSC = '10.7'; // sert à la comparaison de la version publiée +VersionSC = '10.71'; // sert à la comparaison de la version publiée SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace // pour unzip SHCONTCH_NOPROGRESSBOX=4; diff --git a/versions.txt b/versions.txt index cc6ca3e..1fe830b 100644 --- a/versions.txt +++ b/versions.txt @@ -341,6 +341,9 @@ version 10.6 : Modification pour l'affichage de la barre de zoom du TCO pour les version 10.7 : Affichage du compteur de train depuis le menu contextuel des cantons du tco. En roulage ou RUN CDM, suppression d'un train non suivi de la liste des trains en roulage. Correction désaffectation trains sur cantons. +version 10.71 : Ajout dans les variables des fonctions les mémoires de zone. + Correction bug activation mémoires de zone dans le menu du TCO. + Correction bug affichage des opérations dans les actions.