This commit is contained in:
f1iwq2
2023-08-26 10:40:18 +02:00
parent 15d124f2a2
commit 79e9771a3e
12 changed files with 1725 additions and 1330 deletions
+2 -1
View File
@@ -204,7 +204,8 @@ procedure Maj_DB;
var s : string;
begin
s:=encode_sig_feux(index);
formconfig.RichSig.Lines[index-1]:=s;
formconfig.ListBoxSig.items[index-1]:=s;
formconfig.ListBoxSig.selected[ligneClicSig]:=true;
aff_champs_sig_feux(index);
end;
+133 -108
View File
@@ -1,6 +1,6 @@
object FormConfig: TFormConfig
Left = 243
Top = 134
Left = 164
Top = 114
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale'
@@ -2374,13 +2374,6 @@ object FormConfig: TFormConfig
'Liste de mod'#233'lisation des aiguillages - cliquez sur une ligne po' +
'ur afficher la description de l'#39'aiguillage'
end
object Label28: TLabel
Left = 88
Top = 208
Width = 52
Height = 13
Caption = 'LabelTJD1'
end
object GroupBox11: TGroupBox
Left = 328
Top = 32
@@ -2771,6 +2764,11 @@ object FormConfig: TFormConfig
Top = 48
Width = 41
Height = 21
Hint =
'Temporisation de dur'#233'e de l'#39'impulsion de pilotage - Uniquement e' +
'n mode autonome'
ParentShowHint = False
ShowHint = True
TabOrder = 0
OnChange = EditTempo10Change
end
@@ -2822,33 +2820,13 @@ object FormConfig: TFormConfig
end
end
end
object RichAig: TRichEdit
Left = 0
Top = 64
Width = 321
Height = 385
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HideSelection = False
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
TabOrder = 1
WordWrap = False
OnKeyDown = RichAigKeyDown
OnMouseDown = RichAigMouseDown
end
object ButtonNouvAig: TButton
Left = 0
Top = 32
Width = 65
Height = 17
Caption = 'Nouveau'
TabOrder = 2
TabOrder = 1
OnClick = ButtonNouvAigClick
end
object BoutSupAig: TButton
@@ -2857,7 +2835,7 @@ object FormConfig: TFormConfig
Width = 65
Height = 17
Caption = 'Supprime'
TabOrder = 3
TabOrder = 2
OnClick = BoutSupAigClick
end
object ButtonAjSup: TButton
@@ -2866,9 +2844,29 @@ object FormConfig: TFormConfig
Width = 121
Height = 17
Caption = 'Ajoute l'#39'aig supprim'#233
TabOrder = 4
TabOrder = 3
OnClick = ButtonAjSupClick
end
object ListBoxAig: TListBox
Left = 0
Top = 56
Width = 305
Height = 353
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemHeight = 13
MultiSelect = True
ParentFont = False
PopupMenu = PopupMenuListes
TabOrder = 4
OnDrawItem = ListBoxAigDrawItem
OnKeyDown = ListBoxAigKeyDown
OnMouseDown = ListBoxAigMouseDown
end
end
object TabSheetBranches: TTabSheet
Caption = 'Branches'
@@ -2955,7 +2953,7 @@ object FormConfig: TFormConfig
Lines.Strings = (
'RichBranche')
ParentFont = False
PopupMenu = PopupMenuConfig
PopupMenu = PopupMenuBranches
ScrollBars = ssBoth
TabOrder = 1
WordWrap = False
@@ -3170,6 +3168,7 @@ object FormConfig: TFormConfig
Hint =
'Une ligne contient les conditions en ET. Les lignes sont cha'#238'n'#233'e' +
's en OU'
Color = clScrollBar
ParentShowHint = False
ScrollBars = ssBoth
ShowHint = True
@@ -3387,6 +3386,7 @@ object FormConfig: TFormConfig
Hint =
'Une ligne contient les conditions en ET. Les lignes sont cha'#238'n'#233'e' +
's en OU'
Color = clScrollBar
ParentShowHint = False
ScrollBars = ssBoth
ShowHint = True
@@ -3394,35 +3394,13 @@ object FormConfig: TFormConfig
OnChange = MemoBlancChange
end
end
object RichSig: TRichEdit
Left = 0
Top = 56
Width = 329
Height = 345
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HideSelection = False
Lines.Strings = (
'RichSig')
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
TabOrder = 1
WordWrap = False
OnKeyDown = RichSigKeyDown
OnMouseDown = RichSigMouseDown
end
object ButtonNouvFeu: TButton
Left = 0
Top = 32
Width = 65
Height = 17
Caption = 'Nouveau'
TabOrder = 2
TabOrder = 1
OnClick = ButtonNouvFeuClick
end
object ButtonSupFeu: TButton
@@ -3431,7 +3409,7 @@ object FormConfig: TFormConfig
Width = 65
Height = 17
Caption = 'Supprime'
TabOrder = 3
TabOrder = 2
OnClick = ButtonSupFeuClick
end
object ButtonInsFeu: TButton
@@ -3440,7 +3418,7 @@ object FormConfig: TFormConfig
Width = 153
Height = 17
Caption = 'Ajouter le signal supprim'#233
TabOrder = 4
TabOrder = 3
OnClick = ButtonInsFeuClick
end
object CheckBoxRazSignaux: TCheckBox
@@ -3452,16 +3430,35 @@ object FormConfig: TFormConfig
Caption = 'Raz signaux apr'#232's commande'
ParentShowHint = False
ShowHint = True
TabOrder = 5
TabOrder = 4
end
object EditTempoFeu: TEdit
Left = 0
Top = 440
Width = 33
Height = 21
TabOrder = 6
TabOrder = 5
OnChange = EditTempoFeuChange
end
object ListBoxSig: TListBox
Left = 0
Top = 56
Width = 321
Height = 337
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemHeight = 13
MultiSelect = True
ParentFont = False
PopupMenu = PopupMenuListes
TabOrder = 6
OnKeyDown = ListBoxSigKeyDown
OnMouseDown = ListBoxSigMouseDown
end
end
object TabSheetDecodeurs: TTabSheet
Caption = 'D'#233'codeurs'
@@ -3575,7 +3572,7 @@ object FormConfig: TFormConfig
Top = 56
Width = 193
Height = 21
ItemHeight = 0
ItemHeight = 13
TabOrder = 0
OnChange = ComboBoxDecodeurPersoChange
end
@@ -3593,12 +3590,10 @@ object FormConfig: TFormConfig
Top = 176
Width = 145
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 2
OnChange = ComboBoxNationChange
Items.Strings = (
'Fran'#231'aise'
'Belge')
end
object BoutonNouveau: TButton
Left = 86
@@ -3998,7 +3993,7 @@ object FormConfig: TFormConfig
end
end
object GroupBoxPN: TGroupBox
Left = 200
Left = 32
Top = 16
Width = 233
Height = 401
@@ -4360,6 +4355,7 @@ object FormConfig: TFormConfig
Height = 21
Hint = 'D'#233'tecteur 2 zone de fermeture'
TabOrder = 29
OnChange = EditZdet2V4FChange
end
object EditZdet1V4O: TEdit
Left = 152
@@ -4498,25 +4494,24 @@ object FormConfig: TFormConfig
TabOrder = 1
OnClick = ButtonSupAccClick
end
object RichAct: TRichEdit
object ListBoxAct: TListBox
Left = 8
Top = 48
Width = 329
Height = 161
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HideSelection = False
ItemHeight = 13
MultiSelect = True
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
PopupMenu = PopupMenuListes
TabOrder = 2
WordWrap = False
OnKeyDown = RichActKeyDown
OnMouseDown = RichActMouseDown
OnKeyDown = ListBoxActKeyDown
OnMouseDown = ListBoxActMouseDown
end
end
object GroupBox17: TGroupBox
@@ -4547,25 +4542,24 @@ object FormConfig: TFormConfig
TabOrder = 1
OnClick = ButtonSupPNClick
end
object RichPN: TRichEdit
object ListBoxPN: TListBox
Left = 8
Top = 48
Width = 329
Height = 137
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clYellow
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HideSelection = False
ItemHeight = 13
MultiSelect = True
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
PopupMenu = PopupMenuListes
TabOrder = 2
WordWrap = False
OnKeyDown = RichPNKeyDown
OnMouseDown = RichPNMouseDown
OnKeyDown = ListBoxPNKeyDown
OnMouseDown = ListBoxPNMouseDown
end
end
end
@@ -4583,7 +4577,7 @@ object FormConfig: TFormConfig
end
object Image2: TImage
Left = 248
Top = 408
Top = 400
Width = 105
Height = 65
Picture.Data = {
@@ -4726,7 +4720,7 @@ object FormConfig: TFormConfig
Left = 8
Top = 64
Width = 577
Height = 225
Height = 217
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
@@ -4741,9 +4735,9 @@ object FormConfig: TFormConfig
end
object GroupBox23: TGroupBox
Left = 8
Top = 328
Top = 320
Width = 577
Height = 81
Height = 73
Caption = 'Options'
TabOrder = 1
object Label29: TLabel
@@ -4778,7 +4772,7 @@ object FormConfig: TFormConfig
end
object ButtonEnv: TButton
Left = 8
Top = 296
Top = 288
Width = 129
Height = 25
Hint = 'Envoi les commandes si l'#39'interface DCC++ est connect'#233'e'
@@ -4930,31 +4924,13 @@ object FormConfig: TFormConfig
FFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00}
Transparent = True
end
object RichEditTrains: TRichEdit
Left = 8
Top = 64
Width = 289
Height = 385
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HideSelection = False
ParentFont = False
ReadOnly = True
TabOrder = 0
OnKeyDown = RichEditTrainsKeyDown
OnMouseDown = RichEditTrainsMouseDown
end
object GroupBox24: TGroupBox
Left = 312
Top = 64
Width = 297
Height = 161
Caption = 'Trains'
TabOrder = 1
TabOrder = 0
object Label51: TLabel
Left = 16
Top = 48
@@ -5052,7 +5028,7 @@ object FormConfig: TFormConfig
Width = 73
Height = 17
Caption = 'Nouveau'
TabOrder = 2
TabOrder = 1
OnClick = ButtonNTClick
end
object ButtonSupprime: TButton
@@ -5061,9 +5037,28 @@ object FormConfig: TFormConfig
Width = 75
Height = 17
Caption = 'Supprime'
TabOrder = 3
TabOrder = 2
OnClick = ButtonSupprimeClick
end
object ListBoxTrains: TListBox
Left = 8
Top = 64
Width = 281
Height = 345
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemHeight = 13
MultiSelect = True
ParentFont = False
PopupMenu = PopupMenuListes
TabOrder = 3
OnKeyDown = ListBoxTrainsKeyDown
OnMouseDown = ListBoxTrainsMouseDown
end
end
end
object ButtonEnregistre: TButton
@@ -5082,7 +5077,7 @@ object FormConfig: TFormConfig
Left = 668
Top = 468
end
object PopupMenuConfig: TPopupMenu
object PopupMenuBranches: TPopupMenu
Left = 728
Top = 88
object Copier1: TMenuItem
@@ -5094,4 +5089,34 @@ object FormConfig: TFormConfig
OnClick = Coller1Click
end
end
object PopupMenuListes: TPopupMenu
Left = 800
Top = 88
object Slectionnertout1: TMenuItem
Caption = 'S'#233'lectionner tout'
Hint = 'S'#233'lectionne toutes les lignes'
OnClick = Slectionnertout1Click
end
object N1: TMenuItem
Caption = '-'
end
object Nouveau1: TMenuItem
Caption = 'Nouveau'
Hint = 'Cr'#233#233'e un nouvel '#233'l'#233'ment'
OnClick = Nouveau1Click
end
object Supprimer1: TMenuItem
Caption = 'Supprimer'
Hint = 'Supprime un ou des '#233'l'#233'ments s'#233'lectionn'#233's'
OnClick = Supprimer1Click
end
object N2: TMenuItem
Caption = '-'
end
object outcopierentatquetexte1: TMenuItem
Caption = 'Tout copier en tant que texte'
Hint = 'Copie tout le contenu en tant que texte dans le presse-papier'
OnClick = outcopierentatquetexte1Click
end
end
end
+1194 -937
View File
File diff suppressed because it is too large Load Diff
+1 -3
View File
@@ -337,8 +337,6 @@ begin
end;
procedure TFormConfCellTCO.FormCreate(Sender: TObject);
var i,x,y : integer;
image,imagesrc : Timage;
begin
// fenetre toujours dessus
if affevt then Affiche('FormConfCellTCO create',clyellow);
@@ -513,7 +511,7 @@ end;
procedure TFormConfCellTCO.ImagePaletteCCMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var c,x0,y0,xc,yc,xf,yf,element,i,erreur,x1,y1,x2,y2,c1,c2,c3,c4 : integer;
var c,x0,y0,xc,yc,xf,yf,element,i,erreur,x1,y1,c1,c2,c3,c4 : integer;
begin
x0:=0; // x origine
y0:=0; // y origine
+20 -20
View File
@@ -1,8 +1,8 @@
object FormPrinc: TFormPrinc
Left = 22
Top = 241
Width = 1227
Height = 671
Left = 64
Top = 216
Width = 1222
Height = 652
Caption = 'Signaux complexes'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
@@ -17,8 +17,8 @@ object FormPrinc: TFormPrinc
OnClose = FormClose
OnCreate = FormCreate
DesignSize = (
1219
620)
1206
594)
PixelsPerInch = 96
TextHeight = 13
object LabelTitre: TLabel
@@ -1187,7 +1187,7 @@ object FormPrinc: TFormPrinc
Visible = False
end
object LabelEtat: TLabel
Left = 454
Left = 449
Top = 8
Width = 152
Height = 18
@@ -1203,7 +1203,7 @@ object FormPrinc: TFormPrinc
object SplitterH: TSplitter
Left = 0
Top = 0
Height = 598
Height = 572
end
object ImageSignal20: TImage
Left = 384
@@ -1445,10 +1445,10 @@ object FormPrinc: TFormPrinc
Visible = False
end
object ScrollBox1: TScrollBox
Left = 630
Left = 625
Top = 200
Width = 563
Height = 392
Height = 373
HorzScrollBar.Increment = 48
HorzScrollBar.Tracking = True
VertScrollBar.Smooth = True
@@ -1459,7 +1459,7 @@ object FormPrinc: TFormPrinc
TabOrder = 0
end
object GroupBox1: TGroupBox
Left = 630
Left = 625
Top = 5
Width = 265
Height = 52
@@ -1507,8 +1507,8 @@ object FormPrinc: TFormPrinc
end
object StatusBar1: TStatusBar
Left = 0
Top = 598
Width = 1219
Top = 572
Width = 1206
Height = 22
Panels = <>
SimplePanel = True
@@ -1524,7 +1524,7 @@ object FormPrinc: TFormPrinc
00020000802500000000080000000000000000003F00000011000000}
end
object Panel1: TPanel
Left = 918
Left = 913
Top = 5
Width = 282
Height = 148
@@ -1629,7 +1629,7 @@ object FormPrinc: TFormPrinc
end
object StaticText: TStaticText
Left = 16
Top = 568
Top = 549
Width = 14
Height = 17
Anchors = [akLeft, akBottom]
@@ -1637,7 +1637,7 @@ object FormPrinc: TFormPrinc
TabOrder = 5
end
object GroupBox2: TGroupBox
Left = 647
Left = 642
Top = 64
Width = 265
Height = 105
@@ -1699,7 +1699,7 @@ object FormPrinc: TFormPrinc
end
end
object GroupBox3: TGroupBox
Left = 630
Left = 625
Top = 64
Width = 265
Height = 129
@@ -1935,7 +1935,7 @@ object FormPrinc: TFormPrinc
end
end
object ButtonEnv: TButton
Left = 1078
Left = 1073
Top = 160
Width = 113
Height = 33
@@ -1946,7 +1946,7 @@ object FormPrinc: TFormPrinc
OnClick = ButtonEnvClick
end
object EditEnvoi: TEdit
Left = 950
Left = 945
Top = 168
Width = 121
Height = 21
@@ -1955,7 +1955,7 @@ object FormPrinc: TFormPrinc
Text = '<1>'
end
object Button1: TButton
Left = 494
Left = 489
Top = 0
Width = 75
Height = 25
+29 -35
View File
@@ -1,5 +1,5 @@
Unit UnitPrinc;
// 17/8 10h
// 23/8 16h
(********************************************
Programme signaux complexes Graphique Lenz
Delphi 7 + activeX Tmscomm + clientSocket
@@ -1849,12 +1849,12 @@ end;
// créée une image dynamiquement pour un nouveau signal déclaré dans le fichier de config
// rang commence à 1
procedure cree_image(rang : integer);
var adresse,TypeFeu : integer;
var adresse,TypeSignal : integer;
s : string;
T_BP : TBitMap;
begin
TypeFeu:=feux[rang].aspect;
if typeFeu<=0 then exit;
TypeSignal:=feux[rang].aspect;
if typeSignal<=0 then exit;
adresse:=feux[rang].adresse;
Feux[rang].Img:=Timage.create(Formprinc.ScrollBox1);
if feux[rang].Img=nil then begin affiche('Erreur 900 : impossible de créer une image',clred);exit;end;
@@ -1884,7 +1884,7 @@ begin
PopUpMenu:=Formprinc.PopupMenuFeu; // affectation popupmenu sur clic droit
// affecter le type d'image de feu dans l'image créée
T_BP:=Select_dessin_feu(TypeFeu);
T_BP:=Select_dessin_feu(TypeSignal);
if T_BP=nil then
begin
Affiche('Erreur 418 : sélection type signal incorrecte pour signal '+intToSTR(adresse),clred);
@@ -1898,13 +1898,13 @@ begin
Transparent:=true;
// mettre rouge par défaut
if TypeFeu=2 then feux[rang].EtatSignal:=violet_F;
if TypeFeu=3 then feux[rang].EtatSignal:=semaphore_F;
if (TypeFeu>3) and (TypeFeu<10) and feux[rang].VerrouCarre then feux[rang].EtatSignal:=carre_F;
if (TypeFeu>3) and (TypeFeu<10) and not(feux[rang].VerrouCarre) then feux[rang].EtatSignal:=semaphore_F;
if (TypeFeu>10) and (typeFeu<20) then feux[rang].EtatSignal:=0;
if TypeSignal=2 then feux[rang].EtatSignal:=violet_F;
if TypeSignal=3 then feux[rang].EtatSignal:=semaphore_F;
if (TypeSignal>3) and (TypeSignal<10) and feux[rang].VerrouCarre then feux[rang].EtatSignal:=carre_F;
if (TypeSignal>3) and (TypeSignal<10) and not(feux[rang].VerrouCarre) then feux[rang].EtatSignal:=semaphore_F;
if (TypeSignal>10) and (TypeSignal<20) then feux[rang].EtatSignal:=0;
if typeFeu=20 then
if TypeSignal=20 then // signal belge
begin
feux[rang].EtatSignal:=semaphore_F;
if feux[rang].contrevoie then
@@ -1950,7 +1950,7 @@ begin
else Feux[rang].checkFB:=nil;
end;
// ajoute en bout de chaine le checksum d'une trame
// ajoute en bout de chaine le checksum d'une trame (pour XpressNet)
Function Checksum(s : string) : string;
var i : integer;
check : byte;
@@ -2143,6 +2143,7 @@ begin
o 3: dévié gauche
o 4: pos. droite #2 (TJD 4 états)
o 5: pos. déviée #2 (TJD 4 états)
en fait seules les fonctions 1 et 2 fonctionnent...
}
so:=place_id('C-C-01-0004-CMDACC-DCCAC');
s:=s+'AD='+format('%.*d',[1,adresse])+';';
@@ -2443,7 +2444,7 @@ begin
trains[index].vitesse:=vitesse;
trains[index].compteur_consigne:=10;
end;
end;
// renvoie la chaîne de l'état du signal
@@ -10303,15 +10304,15 @@ end;
// pilotage d'un accessoire (décodeur d'aiguillage, de signal) et génère l'event aig
// par CDM ou interface
// octet = 1 (dévié) ou 2 (droit)
// octet = 1 (dévié) ou 2 (droit) si 0 on ne traite pas
// uniquement en mode autonome:
// si acc=Taig, alors la sortie "octet" est mise à 1 puis à 0
// si acc=feu, alors la sortie "octet" est mise à 1 uniquement.
// Résultat true si ok
function pilote_acc(adresse : integer;octet : byte;Acc : TAccessoire): boolean;
var groupe,temp,indexAig,AdrTrain : integer ;
fonction,pilotage : byte;
fonction,pilotage,pilotageCDM : byte;
s : string;
label mise0;
begin
//Affiche(IntToSTR(adresse)+' '+intToSTr(octet),clYellow);
@@ -10339,18 +10340,14 @@ begin
//AfficheDebug(intToSTR(adresse),clred);
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' '+intToSTR(pilotage),clorange);
if aff_acc then Affiche('Accessoire '+intToSTR(adresse)+' à '+intToSTR(pilotage),clorange);
s:=chaine_CDM_Acc(adresse,pilotage);
envoi_CDM(s);
if (acc=feu) and not(Raz_Acc_signaux) then exit;
if pilotage=1 then pilotageCDM:=1; // 3 = wrong state or value
if pilotage=2 then pilotageCDM:=2;
sleep(50);
if debug_dec_sig and (acc=feu) then AfficheDebug('Tick='+IntToSTR(Tick)+' signal '+intToSTR(adresse)+' 0',clorange);
if aff_acc then Affiche('Accessoire '+intToSTR(adresse)+' à 0',clorange);
s:=chaine_CDM_Acc(adresse,0);
s:=chaine_CDM_Acc(adresse,pilotageCDM);
envoi_CDM(s);
event_aig(adresse,pilotage);
result:=true;
exit;
exit;
end;
if (pilotage=0) or (pilotage>2) then exit;
@@ -11375,7 +11372,7 @@ begin
end;
end;
// renvoie le handle de la frnêtre du programme de processID (CDMrail)
// renvoie le handle de la fenêtre du programme de processID (CDMrail)
Function GetWindowFromID(ProcessID : Cardinal): THandle;
Var TestID : Cardinal;
TestHandle : Thandle;
@@ -12662,11 +12659,9 @@ begin
exit;
end;
if pilote_acc(adr,const_droit,aigP) then
begin
s:='accessoire '+IntToSTR(adr)+' droit';
Affiche(s,clyellow);
end;
pilote_acc(adr,const_droit,aigP);
s:='accessoire '+IntToSTR(adr)+' droit';
Affiche(s,clyellow);
Self.ActiveControl:=nil;
end;
@@ -14291,7 +14286,6 @@ end;
procedure TFormPrinc.Etatdessignaux1Click(Sender: TObject);
var Adr,etat,i : integer;
aspect,combine,nation : integer;
s : string;
begin
for i:=1 to NbreFeux do
@@ -14904,14 +14898,14 @@ var s : string;
erreur : integer;
begin
V_publie:=verifie_version;
str(v_publie:2:2,s);
str(v_publie:2:2,s);
if v_publie>0 then
begin
val(version,V_utile,erreur);
if V_utile=V_publie then Affiche('Votre version '+Version+SousVersion+' est à jour',clLime);
if V_utile=V_publie then Affiche('Votre version '+Version+SousVersion+' publiée le '+date_creation+' est à jour',clLime);
if V_utile>V_publie then Affiche('Votre version '+version+SousVersion+' est plus récente que la version publiée '+s,clLime);
end
else Affiche('Site CDM-Rail inateignable',clred);
else Affiche('Site github.com inatteignable - réessayer plus tard',clred);
end;
procedure TFormPrinc.Analyser1Click(Sender: TObject);
@@ -14921,7 +14915,7 @@ begin
s1:=lowercase(fenRich.Lines[0]);
if pos('module',s1)=0 then
begin
Affiche('Pas de module détecté',clyellow);
Affiche('Pas de module réseau CDM détecté.',clyellow);
Affiche('Procédure: dans CDM RAIL ouvrez votre réseau ; Menu ... / TrackDrawing / Module Display',clLime);
Affiche('Attention : nécessite la version >=23.05 de CDM',clLime);
Affiche('Cela ouvre une fenêtre DEBUG dans cdm',clLime);
+2 -1
View File
@@ -276,7 +276,8 @@ procedure Maj_DB;
var s : string;
begin
s:=encode_sig_feux(indexSig);
formconfig.RichSig.Lines[indexSig-1]:=s;
formconfig.ListBoxSig.items[indexSig-1]:=s;
formconfig.ListBoxSig.selected[ligneClicSig]:=true;
aff_champs_sig_feux(indexSig);
end;
+225 -90
View File
@@ -426,10 +426,10 @@ const
// liaisons des voies pour chaque icone par bit (0=NO 1=Nord 2=NE 3=Est 4=SE 5=S 6=SO 7=Ouest)
Liaisons : array[0..51] of integer=
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
(0,$88,$c8,$8c,$98,$89,$9,$84,$90,$48,$44,$11,$19,$c4,$91,$4c,$21,$24,$42,$12,$22,$cc,$99,$66,$23,$33,$26,$62,$32,$31,0,0,
// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
$62,$13,$46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ;
$64,$13,$46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ;
type
// structure du TCO
TTCO = record
@@ -1128,13 +1128,15 @@ begin
end;
// élément de voie horizontale Element 1
procedure dessin_voie(Canvas : Tcanvas;x,y,mode : integer);
var Adr, x0,y0,jy1,jy2 : integer;
procedure dessin_1(Canvas : Tcanvas;x,y,mode : integer);
var Adr, x0,y0,jy1,jy2,ep,yc : integer;
r : Trect;
couleur : Tcolor;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
yc:=y0+(HauteurCell div 2);
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -1168,7 +1170,6 @@ begin
// voie
jy1:=y0+(HauteurCell div 2);
Pen.Width:=epaisseur;
case mode of
0 : couleur:=clVoies;
@@ -1176,7 +1177,8 @@ begin
2 : couleur:=couleurtrain[index_couleur];
end;
pen.color:=couleur;
moveTo(x0,jy1);LineTo(x0+LargeurCell,jy1);
if testbit(ep,7) or testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveTo(x0,yc);LineTo(x0+LargeurCell,yc);
end;
end;
@@ -3013,7 +3015,7 @@ begin
end;
// Elément 13
// Elément 13 fait
procedure dessin_13L(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
r : Trect;
@@ -3033,10 +3035,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(x0,yf);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xf,y0);
end;
end;
@@ -3056,8 +3058,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(x0,yf);lineto(xf,y0); // diag complete
moveto(x0,yc);lineto(xc,yc); // partie droite
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(x0,yf);lineto(xc,yc);
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(x0,yc);
end;
end;
@@ -3070,6 +3074,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -3121,6 +3126,7 @@ begin
end;
end;
// fait
procedure dessin_13C(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
fond : tcolor;
@@ -3140,11 +3146,11 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(xf,yf);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(x0,y0);
moveto(xf,y0);lineto(xc,yc);
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(x0,yf);
end;
end;
@@ -3163,6 +3169,7 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
@@ -3184,6 +3191,7 @@ begin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -3309,6 +3317,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -4502,7 +4511,29 @@ end;
// Element 23 croisement
procedure dessin_23(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xf,yf,xc,yc,trajet : integer;
var x0,y0,xf,yf,xc,yc,trajet,ep : integer;
procedure verticale;
begin
with canvas do
begin
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveTo(xc,y0);LineTo(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
LineTo(xc,yf);
end;
end;
procedure diagonale;
begin
with canvas do
begin
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveTo(xf,y0);LineTo(xc,yc);
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
LineTo(x0,yf);
end;
end;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
@@ -4510,6 +4541,7 @@ begin
yc:=y0+(hauteurCell div 2);
xf:=x0+LargeurCell;
yf:=y0+HauteurCell;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -4522,8 +4554,8 @@ begin
pen.color:=clvoies;
pen.width:=epaisseur;
moveto(xf,y0);lineTo(x0,yf); // diagonale
moveTo(xc,y0);LineTo(xc,yf); // verticale
diagonale;
verticale;
// regarder d'ou on vient de la route du tco
if mode>0 then
@@ -4536,15 +4568,21 @@ begin
end;
Brush.Color:=couleur;
pen.color:=couleur;
if trajet=1 then begin moveTo(xc,y0);LineTo(xc,yf);end; // verticale
if trajet=2 then begin moveto(xf,y0);lineTo(x0,yf);end; // diagonale
if trajet=1 then verticale;
if trajet=2 then diagonale;
if trajet=3 then
begin
moveto(xf,y0);LineTo(xc,yc);lineTo(xc,yf); //
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xf,y0);LineTo(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(xc,yf);
end;
if trajet=4 then
begin
moveto(xc,y0);LineTo(xc,yc);lineTo(x0,yf); // -\
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);LineTo(xc,yc);
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(x0,yf);
end;
end;
end;
@@ -4558,7 +4596,29 @@ end;
// Element 25 croisement
procedure dessin_25(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xf,yf,xc,yc,trajet : integer;
var x0,y0,xf,yf,xc,yc,trajet,ep : integer;
procedure verticale;
begin
with canvas do
begin
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveTo(xc,y0);LineTo(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
LineTo(xc,yf);
end;
end;
procedure diagonale;
begin
with canvas do
begin
if testbit(ep,0) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveTo(x0,y0);LineTo(xc,yc);
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
LineTo(xf,yf);
end;
end;
begin
x0:=(x-1)*LargeurCell;
y0:=(y-1)*HauteurCell;
@@ -4566,6 +4626,7 @@ begin
yc:=y0+(hauteurCell div 2);
xf:=x0+LargeurCell;
yf:=y0+HauteurCell;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -4578,8 +4639,8 @@ begin
pen.color:=clvoies;
pen.width:=epaisseur;
moveto(x0,y0);lineTo(xf,yf); // diagonale
moveTo(xc,y0);LineTo(xc,yf); // verticale
verticale;
diagonale;
// regarder d'ou on vient de la route du tco
if mode>0 then
@@ -4589,24 +4650,31 @@ begin
0: couleur:=clVoies;
1: couleur:=ClCanton;
2: couleur:=couleurtrain[index_couleur];
end;
end;
Brush.Color:=couleur;
pen.color:=couleur;
if trajet=1 then begin moveTo(xc,y0);LineTo(xc,yf);end; // verticale
if trajet=2 then begin moveto(x0,y0);lineTo(xf,yf);end; // diagonale
if trajet=1 then verticale;
if trajet=2 then diagonale;
if trajet=3 then
begin
moveto(x0,y0);LineTo(xc,yc);lineTo(xc,yc); //
if testbit(ep,0) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(x0,y0);LineTo(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(xc,yf);
end;
if trajet=4 then
begin
moveto(xc,y0);LineTo(xc,yc);lineTo(xf,yf); // -\
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);LineTo(xc,yc);
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(xf,yf);
end;
end;
end;
end;
// Element 26
// Element 26 fait
procedure dessin_26L(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
r : Trect;
@@ -4626,10 +4694,10 @@ var x0,y0,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -4649,8 +4717,10 @@ var x0,y0,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // verticale complete
moveTo(xf,y0);lineto(xc,yc); // partie déviée
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,yf);lineto(xc,yc);
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(xf,y0);
end;
end;
@@ -4664,6 +4734,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -4678,16 +4749,27 @@ begin
Pen.Color:=clVoies;
Pen.Mode:=pmCopy;
if (position=const_Devie) or (position=const_inconnu) then
if mode>0 then
begin
trajet_devie; // affiche la position de la branche déviée
end;
if (position=const_devie) or (position=const_inconnu) then
begin
trajet_droit;
trajet_devie;
end;
if (position=const_droit) then
begin
trajet_devie;
trajet_droit;
end;
end
if (position=const_droit) or (position=const_inconnu) then
else
begin
trajet_devie;
trajet_droit;
end;
if (position=const_Devie) then
begin
// effacement du morceau
@@ -4715,7 +4797,7 @@ end;
// Element 26
procedure dessin_26C(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xc,yc,jx1,jy1,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position : integer;
var x0,y0,xc,yc,jx1,jy1,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position,ep : integer;
r : Trect;
fond: tcolor;
@@ -4734,7 +4816,10 @@ procedure trajet_droit;
with canvas do
begin
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // partie droite
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -4753,6 +4838,7 @@ procedure trajet_droit;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
@@ -4768,6 +4854,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
// mode rond
x1:=x0+(largeurcell div 2);y1:=y0-(hauteurCell div 3);
@@ -4836,7 +4923,7 @@ begin
if graphisme=2 then dessin_26C(Canvas,x,y,Mode);
end;
// Element 27
// Element 27 fait
procedure dessin_27L(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
r : Trect;
@@ -4856,10 +4943,10 @@ var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -4879,8 +4966,10 @@ var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // verticale complete
moveTo(x0,yf);lineto(xc,yc); // partie déviée
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);lineto(xc,yc); // verticale complete
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(x0,yf);
end;
end;
@@ -4894,6 +4983,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -4908,13 +4998,23 @@ begin
Pen.Color:=clVoies;
Pen.Mode:=pmCopy;
if (position=const_Devie) or (position=const_inconnu) then
if mode>0 then
begin
trajet_devie; // affiche la position de la branche déviée
end;
if (position=const_devie) or (position=const_inconnu) then
begin
trajet_droit;
trajet_devie;
end;
if (position=const_droit) then
begin
trajet_devie;
trajet_droit;
end;
end
if (position=const_droit) or (position=const_inconnu) then
else
begin
trajet_devie;
trajet_droit;
end;
@@ -4944,9 +5044,9 @@ begin
end;
end;
// Element 27
// Element 27c fait
procedure dessin_27C(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xc,yc,jx1,jy1,jx2,jy2,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position,
var x0,y0,xc,yc,jx1,jy1,jx2,jy2,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position,ep,
jx3,jy3 : integer;
r : Trect;
fond: tcolor;
@@ -4965,8 +5065,11 @@ procedure trajet_droit;
with canvas do
begin
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // partie droite
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -4985,6 +5088,7 @@ procedure trajet_droit;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
@@ -4998,6 +5102,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
// mode rond
x1:=x0-(2*largeurCell)-(largeurcell div 3);y1:=y0-hauteurcell-(hauteurCell div 3);
@@ -5069,7 +5174,7 @@ begin
if graphisme=2 then dessin_27C(Canvas,x,y,Mode);
end;
// Element 28
// Element 28 fait
procedure dessin_28L(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
r : Trect;
@@ -5089,10 +5194,10 @@ var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -5112,8 +5217,10 @@ var x0,y0,jx2,jy2,jx3,jy3,xc,yc,jx1,jy1,xf,yf,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // verticale complete
moveTo(xf,yf);lineto(xc,yc); // partie déviée
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineTo(xf,yf);
end;
end;
@@ -5127,6 +5234,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -5177,9 +5285,9 @@ begin
end;
end;
// Element 28
// Element 28 fait
procedure dessin_28C(Canvas : Tcanvas;x,y,mode: integer);
var x0,y0,xc,yc,jx1,jy1,jx2,jy2,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position,
var x0,y0,xc,yc,jx1,jy1,jx2,jy2,xf,yf,x1,y1,x2,y2,x3,y3,x4,y4,position,ep,
jx3,jy3 : integer;
r : Trect;
fond: tcolor;
@@ -5198,8 +5306,11 @@ procedure trajet_droit;
with canvas do
begin
if testbit(ep,1) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(xc,y0);lineto(xc,yf); // partie droite
moveto(xc,y0);lineto(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -5218,6 +5329,7 @@ procedure trajet_droit;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
@@ -5231,6 +5343,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
// mode rond
x1:=x0+(largeurcell div 2);y1:=y0-hauteurCell-(hauteurCell div 3);
@@ -5301,7 +5414,7 @@ begin
if graphisme=2 then dessin_28C(Canvas,x,y,Mode);
end;
// Element 29
// Element 29 fait
procedure dessin_29L(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
fond : tcolor;
@@ -5320,10 +5433,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,0) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(x0,y0);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xf,yf);
end;
end;
@@ -5343,8 +5456,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(x0,y0);lineto(xf,yf);
moveto(xc,yc);lineto(xc,yf);
if testbit(ep,0) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(x0,y0);lineto(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -5358,6 +5473,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -5410,8 +5526,9 @@ begin
end;
end;
// fait
procedure dessin_29C(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
fond : tcolor;
procedure trajet_droit;
begin
@@ -5428,7 +5545,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
with canvas do
begin
pen.color:=couleur;
moveto(x0,y0);lineto(xf,yf); // partie droite
if testbit(ep,0) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(x0,y0);lineto(xc,yc);
if testbit(ep,4) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xf,yf);
end;
end;
@@ -5447,12 +5567,11 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position : integer;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
begin
x0:=(x-1)*LargeurCell; // x origine
y0:=(y-1)*HauteurCell; // y origine
@@ -5465,7 +5584,7 @@ begin
x2:=x0+(largeurcell div 2);y2:=yf+hauteurcell+(hauteurCell div 3);
x3:=xc;y3:=yf;
x4:=x0;y4:=y0;
ep:=tco[x,y].epaisseurs;
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
@@ -5534,7 +5653,7 @@ begin
if graphisme=2 then dessin_29C(Canvas,x,y,Mode);
end;
// Elément 32
// Elément 32 fait
procedure dessin_32L(Canvas : Tcanvas;x,y : integer;Mode : integer);
var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
r : Trect;
@@ -5554,11 +5673,11 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
with canvas do
begin
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
pen.color:=couleur;
moveto(x0,yf);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xf,y0);
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xf,y0);lineto(xc,yc);
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(x0,yf);
end;
end;
@@ -5577,8 +5696,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
moveto(x0,yf);lineto(xf,y0);
moveto(xc,yf);lineto(xc,yc);
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xf,y0);lineto(xc,yc);
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xc,yf);
end;
end;
@@ -5592,6 +5713,7 @@ begin
yf:=y0+HauteurCell; // y fin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -5606,13 +5728,23 @@ begin
Pen.Color:=clVoies;
Pen.Mode:=pmCopy;
if (position=const_Devie) or (position=const_inconnu) then
if mode>0 then
begin
trajet_devie; // affiche la position de la branche déviée
end;
if (position=const_devie) or (position=const_inconnu) then
begin
trajet_droit;
trajet_devie;
end;
if (position=const_droit) then
begin
trajet_devie;
trajet_droit;
end;
end
if (position=const_droit) or (position=const_inconnu) then
else
begin
trajet_devie;
trajet_droit;
end;
@@ -5662,10 +5794,10 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,7) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(x0,y0);lineto(xc,yc);
if testbit(ep,3) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(xf,yf);
if testbit(ep,2) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
moveto(xf,y0);lineto(xc,yc);
if testbit(ep,6) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
lineto(x0,yf);
end;
end;
@@ -5684,6 +5816,7 @@ var x0,y0,xc,yc,xf,yf,x1,x2,y1,y2,x3,y3,x4,y4,position,ep : integer;
with canvas do
begin
pen.color:=couleur;
if testbit(ep,5) then pen.Width:=epaisseur div 2 else pen.Width:=epaisseur;
Arc(x1,y1,x2,y2,x3,y3,x4,y4); //courbe
end;
end;
@@ -5705,6 +5838,7 @@ begin
position:=positionTCO(x,y);
fond:=TCO[x,y].CouleurFond;
ep:=tco[x,y].epaisseurs;
with canvas do
begin
@@ -6854,7 +6988,7 @@ procedure dessine_icone(PCanvasTCO : tcanvas;Bimage,X,Y,mode : integer);
begin
case Bimage of
// 0 : efface_cellule(PCanvasTCO,x,y,pmcopy);
1 : dessin_voie(PCanvasTCO,X,Y,mode);
1 : dessin_1(PCanvasTCO,X,Y,mode);
2 : dessin_2(PCanvasTCO,X,Y,mode);
3 : dessin_3(PCanvasTCO,X,Y,mode);
4 : dessin_4(PCanvasTCO,X,Y,Mode);
@@ -8206,7 +8340,7 @@ begin
dessin_2(ImagePalette2.Canvas,1,1,0);
dessin_3(ImagePalette3.Canvas,1,1,0);
dessin_4(ImagePalette4.Canvas,1,1,0);
dessin_voie(ImagePalette1.canvas,1,1,0);
dessin_1(ImagePalette1.canvas,1,1,0);
dessin_6(ImagePalette6.canvas,1,1,0);
dessin_7(ImagePalette7.canvas,1,1,0);
dessin_8(ImagePalette8.canvas,1,1,0);
@@ -8644,6 +8778,7 @@ begin
tco[XclicCell,YClicCell].Adresse:=0;
tco[XclicCell,YClicCell].Bimage:=0;
tco[XclicCell,YClicCell].liaisons:=0;
tco[XclicCell,YClicCell].epaisseurs:=0;
tco[XclicCell,YClicCell].Texte:='';
efface_entoure;
@@ -8763,7 +8898,7 @@ end;
procedure Elmentdroit1Click(Sender: TObject);
begin
dessin_voie(FormTCO.ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
dessin_1(FormTCO.ImageTCO.canvas,XClicCellInserer,YClicCellInserer,0);
FormTCO.EditAdrElement.Text:=IntToSTR(tco[XClicCellInserer,YClicCellInserer].Adresse);
end;
@@ -8996,7 +9131,7 @@ begin
efface_cellule(ImageTCO.Canvas,XclicCell,YClicCell,PmCopy);
TCO_modifie:=true;
dessin_voie(ImageTCO.Canvas,XClicCell,YClicCell,0);
dessin_1(ImageTCO.Canvas,XClicCell,YClicCell,0);
stocke_undo(1,XClicCell,YClicCell);
maj_undo(1);
+8 -8
View File
@@ -1,4 +1,4 @@
/ Définitions TCO version 7.11
/ Définitions TCO version 7.2
CoulFond=202050
CoulVoies=0077FF
CoulAllume=00FFFF
@@ -15,17 +15,17 @@ Matrice=39,13
Ratio=10
/Matrice TCO
[Matrice]
/ couleur fond,adresse,image,inversion aiguillage,Orientation du signal, pied du signal , [texte], representation, fonte, taille fonte, couleur fonte, style, réserve
/ couleur fond,adresse,image,inversion aiguillage,Orientation du signal, pied du signal , [texte], representation, fonte, taille fonte, couleur fonte, style, épaisseurs
(000040,358,50,0,1,1,,2,,0,FFFFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,G,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,497,50,0,1,2,,2,,0,FFFFFF,G,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,TCO GARE PRINCIPALE,1,ARIAL,20,00FFFF,GI,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,8,00FF00,,0)(000040,0,0,0,0,0,,2,,8,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,9,0,0,0,,2,,0,000000,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,8,0,0,0,,0,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,517,20,0,0,0,,2,,0,00FFFF,,0)(000040,531,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,6,2,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,516,1,0,0,0,,2,,0,00FFFF,,0)(000040,516,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,9,0,0,0,,2,,0,000000,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,8,0,0,0,,2,,0,00FFFF,,0)(000040,103,25,0,0,0,,2,MS SANS SERIF,10,00FF00,,0)(000040,0,20,0,0,0,,0,,0,000000,,0)(000040,600,50,0,1,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,232,50,0,3,1,,2,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,FFFFFF,,0)(000040,288,50,0,2,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,MS SANS SERIF,10,00FFFF,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,302,50,0,1,1,,0,,0,FFFFFF,,0)(000040,9,24,0,0,0,,2,MS SANS SERIF,10,00FF00,,0)(000040,8,24,0,0,0,,0,MS SANS SERIF,10,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,372,50,0,1,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,4,15,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,514,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,522,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,FFFFFF,,0)(000040,0,20,0,0,0,,0,,0,00FFFF,,0)(000040,0,20,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,517,20,0,0,0,,2,,0,00FFFF,,0)(000040,531,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,6,2,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,516,1,0,0,0,,2,,0,00FFFF,,0)(000040,516,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,72)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,9,0,0,0,,2,,0,000000,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,8,0,0,0,,2,,0,00FFFF,,0)(000040,103,25,0,0,0,,2,MS SANS SERIF,10,00FF00,,0)(000040,0,20,0,0,0,,0,,0,000000,,0)(000040,600,50,0,1,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,16)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,232,50,0,3,1,,2,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,FFFFFF,,0)(000040,288,50,0,2,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,MS SANS SERIF,10,00FFFF,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,302,50,0,1,1,,0,,0,FFFFFF,,0)(000040,9,24,0,0,0,,2,MS SANS SERIF,10,00FF00,,0)(000040,8,24,0,0,0,,0,MS SANS SERIF,10,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,70)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,372,50,0,1,1,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,4,15,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,514,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,522,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,FFFFFF,,0)(000040,0,20,0,0,0,,0,,0,00FFFF,,0)(000040,0,20,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,3,15,0,0,0,,2,,0,00FF00,,0)(000040,5,2,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,515,1,0,0,0,,2,,0,00FFFF,,0)(000040,515,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,FFFFFF,,0)(000040,526,20,0,0,0,,2,,0,00FFFF,,0)(000040,0,20,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,19,0,0,0,,2,,0,00FFFF,,0)(000040,0,19,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,520,50,0,2,1,,2,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,10,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,316,50,0,3,1,,2,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,QUAI 1,1,ARIAL,12,FFFFFF,G,0)(000040,0,51,0,0,0,,2,,8,00FF00,,0)(000040,0,51,0,0,0,,2,,8,00FF00,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,51,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,190,50,0,2,1,,2,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,18,0,0,0,,0,,0,00FFFF,,0)(000040,0,18,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,11,0,0,0,,2,,0,00FFFF,,0)(000040,0,6,0,0,0,,2,,0,000000,,0)(000040,518,1,0,0,0,,0,,0,00FFFF,,0)(000040,518,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,1,3,0,0,0,,2,,8,00FF00,,0)(000040,100,21,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,VOIE 2,2,ARIAL,10,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,523,1,0,0,0,,0,,0,00FFFF,,0)(000040,523,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,2,,0,00FFFF,,0)(000040,0,10,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,530,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,8,0,0,0,,2,,0,00FFFF,,0)(000040,0,6,0,0,0,,2,,0,000000,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,12,4,1,0,0,,2,,0,00FF00,,0)(000040,2,3,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,519,1,0,0,0,,2,,0,00FFFF,,0)(000040,519,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,VOIE 1,2,ARIAL,10,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,7,2,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,527,1,0,0,0,,2,,8,00FFFF,,0)(000040,0,1,0,0,0,,3,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,7,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,529,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,26,22,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,8,0,0,0,,0,,0,000000,,0)(000040,0,11,0,0,0,,0,,0,000000,,0)(000040,330,50,0,3,1,,0,,0,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,QUAI 2,1,ARIAL,12,FFFFFF,G,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,10,0,0,0,,0,,0,000000,,0)(000040,204,50,0,3,1,,0,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,6,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,21,5,0,0,0,,0,,0,00FF00,,0)(000040,20,5,0,0,0,,0,,0,00FF00,,0)(000040,520,1,0,0,0,,2,,8,00FFFF,,0)(000040,520,1,0,0,0,,0,,0,00FFFF,,0)(000040,520,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,530,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,8,0,0,0,,2,,0,00FFFF,,0)(000040,0,6,0,0,0,,2,,0,000000,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,12,4,1,0,0,,2,,0,00FF00,,16)(000040,2,3,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,519,1,0,0,0,,2,,0,00FFFF,,0)(000040,519,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,VOIE 1,2,ARIAL,10,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,7,2,0,0,0,,2,,0,00FF00,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,527,1,0,0,0,,2,,8,00FFFF,,0)(000040,0,1,0,0,0,,3,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,7,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,529,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,26,22,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,8,0,0,0,,0,,0,000000,,0)(000040,0,11,0,0,0,,0,,0,000000,,16)(000040,330,50,0,3,1,,0,,0,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,QUAI 2,1,ARIAL,12,FFFFFF,G,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,51,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,10,0,0,0,,0,,0,000000,,0)(000040,204,50,0,3,1,,0,,0,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,6,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,21,5,0,0,0,,0,,0,00FF00,,0)(000040,20,5,0,0,0,,0,,0,00FF00,,1)(000040,520,1,0,0,0,,2,,8,00FFFF,,0)(000040,520,1,0,0,0,,0,,0,00FFFF,,0)(000040,520,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,0,,0,00FFFF,,0)(000040,0,1,0,0,0,,0,,8,00FFFF,,0)(000040,0,1,0,0,0,,2,,0,00FFFF,,0)(000040,0,7,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,176,50,0,3,1,,0,,0,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,3,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,8,00FF00,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,FFFFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)
(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,2,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,00FFFF,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,000000,,0)(000040,0,0,0,0,0,,0,,0,FFFFFF,,0)
+109 -125
View File
@@ -5,7 +5,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils, unitPrinc,
ShellAPI ;
ShellAPI;
type
TFormVersion = class(TForm)
@@ -23,14 +23,14 @@ var
FormVersion: TFormVersion;
Lance_verif : integer;
verifVersion,notificationVersion : boolean;
date_creation : string;
Const Version='7.2'; // sert à la comparaison de la version publiée
Const Version='7.3'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
function GetCurrentProcessEnvVar(const VariableName: string): string;
function verifie_version : real;
function DownloadURL_NOCache(aUrl: string;s : string;var taille : longint): Boolean;
function url_github(var url: string) : boolean;
implementation
@@ -61,56 +61,14 @@ begin
end;
end;
// récupère l'url de téléchargement du github avec curl
// curl -s https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest \
function url_github(var url: string) : boolean;
var s : string;
retour,i : integer;
trouve : boolean;
fichier : text;
begin
result:=false;
url:='';
s:='-s -o url.txt https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest'; // résultat dans url.txt
//s:='';
retour:=ShellExecute(Formprinc.Handle,'open',
Pchar('curl.exe'),
//Pchar('cmd.exe'),
Pchar(s), // paramètre
Pchar('') // répertoire
,SW_HIDE); // pas d'affichage
if retour>32 then
begin
result:=true;
assign(fichier,'url.txt');
reset(fichier);
trouve:=false;
while not(eof(fichier)) or not trouve do
begin
readln(fichier,s);
if pos('browser_download_url',s)<>0 then
begin
trouve:=true;
i:=pos('https',s);
delete(s,1,i-1);
i:=pos('"',s);
s:=copy(s,1,i-1);
url:=s;
end;
end;
end
end;
// téléchargement d'une page internet sans cache dans un fichier
// aUrl = adresse URL du fichier - S : chemin et nom du fichier à écrire - taille : renvoie la taille lue en octets
function DownloadURL_NOCache(aUrl: string;s : string;var taille : longint): Boolean;
var
hSession: HINTERNET;
hService: HINTERNET;
Fs:TFileStream;
hSession,hService: hinternet;
Fs : TFileStream;
lpBuffer: array[0..1024 + 1] of byte;
dwBytesRead: DWORD;
dwBytesRead: dword;
i : integer;
t : longint;
begin
@@ -122,7 +80,6 @@ begin
try
if Assigned(hSession) then
begin
//Affiche('Session assignée',clLime);
hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, INTERNET_FLAG_RELOAD, 0);
i:=getLastError;
if i<>0 then
@@ -136,13 +93,13 @@ begin
//Affiche('Service assigné',clLime);
while True do
begin
dwBytesRead := 1024;
dwBytesRead:=1024;
InternetReadFile(hService,@lpBuffer,1024,dwBytesRead);
fs.WriteBuffer(lpBuffer,dwBytesRead);
t:=t+dwBytesRead;
if dwBytesRead=0 then break;
end;
Result := True;
Result:=True;
taille:=t;
finally
InternetCloseHandle(hService);
@@ -156,22 +113,51 @@ begin
end;
end;
// renvoie le numéro de version depuis le forum CDM
// renvoie le numéro de version depuis le site github
function verifie_version : real;
var s,s2,s3,Version_p,Url,LocalFile,nomfichier : string;
var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,nombre_tel,date_creation_ang
: string;
trouve_version,trouve_zip,zone_comm,LocZip : boolean;
fichier : text;
i,j,erreur,Ncomm,i2,i3,l : integer;
i,j,erreur,Ncomm,i2,l : integer;
V_utile,V_publie : real;
SV_publie : char;
taille : longint;
comm : array[1..10] of string;
function extrait_champ(ss : string) : string;
var i,j : integer;
begin
s:='"'+s+'"';
result:='';
i:=pos(ss,s);
if i<>0 then
begin
i:=posEx('"',s,i+1);
i:=posEx('"',s,i+1);
j:=posex('"',s,i+1);
result:=copy(s,i+1,j-i-1);
end;
end;
function extrait_champ_simple(ss : string) : string;
var i,j : integer;
begin
s:='"'+s+'"';
result:='';
i:=pos(ss,s);
if i<>0 then
begin
i:=posEx(':',s,i+1);
j:=posEx(',',s,i+1);
//j:=posex('"',s,i+1);
result:=copy(s,i+1,j-i-1);
end;
end;
begin
//Affiche('vérifie version',clLime);
// tester si on peut extraire l'url par curl
//if url_github(UrlGIT) then affiche('curl ok',clyellow);
Url:='http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=77&t=3906#p50499';
Url:='https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest';
LocalFile:='page.txt';
trouve_version:=false;
trouve_zip:=false;
@@ -181,82 +167,75 @@ begin
begin
AssignFile(fichier,LocalFile);
reset(fichier);
while not(eof(fichier)) and (not(trouve_version) or not(trouve_zip)) do
begin
readln(fichier,s);
//Affiche(s,clyellow);
//s:=LowerCase(s);
if not(trouve_version) then
// adresse de téléchargement
s3:=extrait_champ('browser_download_url');
if s3<>'' then trouve_zip:=true;
// nombre de téléchargements
nombre_tel:=extrait_champ_simple('download_count');
// date de création
date_creation_ang:=extrait_champ('created_at');
if date_creation_ang<>'' then
begin
i:=pos('version ',LowerCase(s));
trouve_version:=i<>0;
if trouve_version then
begin
s2:=s;zone_comm:=true;
//Affiche('trouvé version',clOrange);
end;
//Affiche(date_creation_ang,clyellow);
i:=pos('-',date_creation_ang);
j:=posex('-',date_creation_ang,i+1);
i2:=pos('T',date_creation_ang);
date_creation:=copy(date_creation_ang,j+1,i2-j-1);
date_creation:=date_creation+'/'+copy(date_creation_ang,i+1,j-i-1);
date_creation:=date_creation+'/'+copy(date_creation_ang,1,i-1);
date_creation:=date_creation+' '+copy(date_creation_ang,i2+1,length(date_creation_ang)-i2-1);
//Affiche(date_creation,clyellow);
end;
if not(trouve_zip) then
// version publiée
version_p:=extrait_champ('tag_name');
if version_p<>'' then
begin
i:=pos('.zip',LowerCase(s));
trouve_zip:=i<>0;
//if trouve_zip then Affiche(s,clyellow);
if trouve_zip then
begin
s3:=s;
//zone_comm:=false;
end;
trouve_version:=true;
if not(version_p[1] in ['0'..'9']) then delete(version_p,1,1);
end;
// commentaire en gras
if zone_comm then
description:=extrait_champ('body');
if description<>'' then
begin
description:=utf8Decode(description);
i:=1 ; j:=1;
// couper en chaînes
while j<>0 do
begin
i:=pos('bold">',LowerCase(s))+6;i2:=posEx('<br />',LowerCase(s),i+1); i3:=posEx('</span>',LowerCase(s),i+1) ;
if i<>6 then
j:=pos('\r',description);
if j<>0 then
begin
//Affiche(s,clred);
inc(ncomm);
if i3<i2 then i2:=i3;
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));
Delete(s,1,i2-1);
j:=0;
repeat
i:=pos('<br />',LowerCase(s))+6;i3:=posEx('</span>',LowerCase(s),i+1);i2:=posEx('<br />',LowerCase(s),i+1);
inc(ncomm);
if i2<i3 then
begin
comm[ncomm]:=UTF8Decode(copy(s,i,i2-i));Delete(s,1,i2-1);
end
else
begin
comm[ncomm]:=UTF8Decode(copy(s,i,i3-i));Delete(s,1,i3-1);
end;
inc(j);
until (i3<i2) or (ncomm=10) or (j=20);
zone_comm:=false;
comm[i]:=copy(description,1,j-1);
inc(i);
delete(description,1,j+1);
end;
j:=pos('\n',description);
if j<>0 then
begin
delete(description,j,2);
end;
end;
comm[i]:=description;
ncomm:=i;
end;
end;
closefile(fichier);
if trouve_version and trouve_zip then
begin
// isoler le champ version
i:=pos('version ',LowerCase(s2));
delete(s2,1,i+7);
j:=pos(' ',s2);
Version_p:=copy(s2,1,j-1); // version dans version_p Exemple V4.73b
// isoler l'url du zip
i:=pos('.zip',LowerCase(s3));
repeat
dec(i);
locZip:=s3[i]='=';
until (i=1) or LocZip;
if locZip then
begin
delete(s3,1,i+1);
end;
i:=pos('zip"',LowerCase(s3)); // s3 contient l'url du zip
s3:=copy(s3,1,i+2);
//----------------------------------------------------
//isoler le nom du fichier
i:=length(s3);
@@ -266,6 +245,8 @@ begin
until (i=1) or LocZip;
nomfichier:=copy(s3,i+1,length(s3)-i);
//affiche(nombre_tel,cllime);
//Affiche(s3,clLime);
//Affiche(nomfichier,clred);
@@ -284,19 +265,19 @@ begin
if erreur<>0 then exit;
val(s2,V_utile,erreur);
if erreur<>0 then exit;
if (V_utile<V_publie) or
((V_utile=V_publie) and (SousVersion<SV_publie)) then
begin
FormVersion.Top:=10;
FormVersion.Top:=10;
FormVersion.Left:=10;
FormVersion.show;
s:='Vous utilisez la version '+version+SousVersion+' mais il existe la version '+Version_p+SV_publie;
if ncomm>0 then
if length(description)>0 then
begin
Aff('Nouveautés de la V'+version_p+SV_publie+' de Signaux_Complexes_GL :');
FormVersion.Memo1.lines.Clear;
Aff('Nouveautés de la V'+version_p+SV_publie+' de Signaux_Complexes_GL du '+date_creation);
aff(' ');
for i:=1 to ncomm-1 do aff(comm[i]);
for i:=1 to ncomm do aff(comm[i]);
end;
if MessageDlg(s+'. Voulez-vous la télécharger?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
@@ -316,15 +297,18 @@ begin
end
else Aff('Echec 1 de téléchargement');
end
else formVersion.Free;
else formVersion.close;
end;
result:=V_publie;
end;
end
else
affiche('Le dépôt github ne comprend aucune version diffusée.',clOrange);
end
else
begin
result:=0;
if notificationVersion then Affiche('Pas d''accès au site ou échec téléchargement',clorange);
if notificationVersion then Affiche('Pas d''accès au site github.com ou échec téléchargement',clorange);
end;
end;
+2 -2
View File
@@ -179,8 +179,8 @@ version 7.11 : Renvoi de la consigne de vitesse au trains apr
Possibilité de générer des évènements détecteurs depuis le TCO.
version 7.2 : Possibilité de dessiner des voies fines et épaisses dans le TCO
par exemple pour distinguer les voies principales et les bretelles.
version 7.3 : Correction d'un bug sur le pilotage des aiguillages via CDM rail