V8.53
This commit is contained in:
Binary file not shown.
BIN
Binary file not shown.
+125
-126
@@ -1,104 +1,104 @@
|
||||
|
||||
Start Length Name Class
|
||||
0001:00000000 0017F73CH .text CODE
|
||||
0002:00000000 00002CB0H .data DATA
|
||||
0002:00002CB0 045E33E9H .bss BSS
|
||||
0001:00000000 0017FCFCH .text CODE
|
||||
0002:00000000 00002CA0H .data DATA
|
||||
0002:00002CA0 045F6E41H .bss BSS
|
||||
|
||||
|
||||
Detailed map of segments
|
||||
|
||||
0001:00000000 00005ED3 C=CODE S=.text G=(none) M=System ACBP=A9
|
||||
0001:00005ED4 00000140 C=CODE S=.text G=(none) M=SysInit ACBP=A9
|
||||
0001:00006014 00000108 C=CODE S=.text G=(none) M=Types ACBP=A9
|
||||
0001:0000611C 00000F38 C=CODE S=.text G=(none) M=Windows ACBP=A9
|
||||
0001:00007054 00000038 C=CODE S=.text G=(none) M=Messages ACBP=A9
|
||||
0001:0000708C 00000338 C=CODE S=.text G=(none) M=SysConst ACBP=A9
|
||||
0001:000073C4 00006FF8 C=CODE S=.text G=(none) M=SysUtils ACBP=A9
|
||||
0001:0000E3BC 0000081B C=CODE S=.text G=(none) M=VarUtils ACBP=A9
|
||||
0001:0000EBD8 0000804E C=CODE S=.text G=(none) M=Variants ACBP=A9
|
||||
0001:00016C28 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
|
||||
0001:00016DC8 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
|
||||
0001:00017604 00000358 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
|
||||
0001:0001795C 0000A7EA C=CODE S=.text G=(none) M=Classes ACBP=A9
|
||||
0001:00022148 00000370 C=CODE S=.text G=(none) M=Consts ACBP=A9
|
||||
0001:000224B8 00009BFB C=CODE S=.text G=(none) M=Graphics ACBP=A9
|
||||
0001:0002C0B4 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
|
||||
0001:0002C1D8 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
|
||||
0001:0002C490 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
|
||||
0001:0002C628 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
|
||||
0001:0002CDB0 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
|
||||
0001:0002CDE8 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
|
||||
0001:0002DDE0 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
|
||||
0001:0002DE38 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
|
||||
0001:0002EF00 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
|
||||
0001:0002F220 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
|
||||
0001:0002F610 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
|
||||
0001:0002FFCC 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
|
||||
0001:00030004 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
|
||||
0001:0003003C 00000048 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
|
||||
0001:00030084 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
|
||||
0001:000300BC 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
|
||||
0001:00030114 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
|
||||
0001:0003014C 0000007C C=CODE S=.text G=(none) M=ShlObj ACBP=A9
|
||||
0001:000301C8 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
|
||||
0001:00030228 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
|
||||
0001:00030260 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
|
||||
0001:00033934 00004ADA C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
|
||||
0001:00038410 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
|
||||
0001:000384A0 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
|
||||
0001:00038C40 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
|
||||
0001:00038D68 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
|
||||
0001:0003C58C 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
|
||||
0001:0003C5C4 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
|
||||
0001:0003C62C 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
|
||||
0001:0003C694 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
|
||||
0001:0003C700 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
|
||||
0001:0003C758 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
|
||||
0001:0003C790 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
|
||||
0001:000460D8 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
|
||||
0001:00046F78 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
|
||||
0001:00053610 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
|
||||
0001:00053778 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
|
||||
0001:00054498 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
|
||||
0001:0006589C 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
|
||||
0001:00066B30 00001B9C C=CODE S=.text G=(none) M=ImgList ACBP=A9
|
||||
0001:000686CC 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
|
||||
0001:0006EDB0 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
|
||||
0001:0007BD3C 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
|
||||
0001:0007BD8C 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
|
||||
0001:0008F178 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
|
||||
0001:0008F1D8 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
|
||||
0001:00090434 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
|
||||
0001:0009046C 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
|
||||
0001:00091C00 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
|
||||
0001:00091C60 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
|
||||
0001:0009517C 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
|
||||
0001:00095490 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
|
||||
0001:000955B8 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
|
||||
0001:00099030 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
|
||||
0001:0009991C 00000598 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
|
||||
0001:00099EB4 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
|
||||
0001:00099EF4 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
|
||||
0001:00099F2C 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
|
||||
0001:0009A944 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
|
||||
0001:0009CA4C 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9
|
||||
0001:000A5C98 00001820 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
|
||||
0001:000A74B8 0000057C C=CODE S=.text G=(none) M=Importation ACBP=A9
|
||||
0001:000A7A34 000147DC C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
|
||||
0001:000BC210 0000289B C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
|
||||
0001:000BEAAC 00000C64 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
|
||||
0001:000BF710 00003D24 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
|
||||
0001:000C3434 00032118 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
|
||||
0001:000F554C 00003410 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
|
||||
0001:000F895C 000027B4 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
|
||||
0001:000FB110 0000284B C=CODE S=.text G=(none) M=verif_version ACBP=A9
|
||||
0001:000FD95C 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
|
||||
0001:000FEB2C 00000C00 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
|
||||
0001:000FF72C 00002850 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
|
||||
0001:00101F7C 0003D29F C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
|
||||
0001:0013F21C 0003D35C C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
|
||||
0001:0017C578 00002D04 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
|
||||
0001:0017F27C 000004C0 C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
|
||||
0001:00000000 00005F07 C=CODE S=.text G=(none) M=System ACBP=A9
|
||||
0001:00005F08 00000140 C=CODE S=.text G=(none) M=SysInit ACBP=A9
|
||||
0001:00006048 00000108 C=CODE S=.text G=(none) M=Types ACBP=A9
|
||||
0001:00006150 00000F38 C=CODE S=.text G=(none) M=Windows ACBP=A9
|
||||
0001:00007088 00000038 C=CODE S=.text G=(none) M=Messages ACBP=A9
|
||||
0001:000070C0 00000338 C=CODE S=.text G=(none) M=SysConst ACBP=A9
|
||||
0001:000073F8 00006F8C C=CODE S=.text G=(none) M=SysUtils ACBP=A9
|
||||
0001:0000E384 0000081B C=CODE S=.text G=(none) M=VarUtils ACBP=A9
|
||||
0001:0000EBA0 0000804E C=CODE S=.text G=(none) M=Variants ACBP=A9
|
||||
0001:00016BF0 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
|
||||
0001:00016D90 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
|
||||
0001:000175CC 00000358 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
|
||||
0001:00017924 0000A7EA C=CODE S=.text G=(none) M=Classes ACBP=A9
|
||||
0001:00022110 00000370 C=CODE S=.text G=(none) M=Consts ACBP=A9
|
||||
0001:00022480 00009BFB C=CODE S=.text G=(none) M=Graphics ACBP=A9
|
||||
0001:0002C07C 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
|
||||
0001:0002C1A0 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
|
||||
0001:0002C458 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
|
||||
0001:0002C5F0 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
|
||||
0001:0002CD78 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
|
||||
0001:0002CDB0 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
|
||||
0001:0002DDA8 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
|
||||
0001:0002DE00 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
|
||||
0001:0002EEC8 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
|
||||
0001:0002F1E8 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
|
||||
0001:0002F5D8 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
|
||||
0001:0002FF94 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
|
||||
0001:0002FFCC 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
|
||||
0001:00030004 00000040 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
|
||||
0001:00030044 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
|
||||
0001:0003007C 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
|
||||
0001:000300D4 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
|
||||
0001:0003010C 0000006C C=CODE S=.text G=(none) M=ShlObj ACBP=A9
|
||||
0001:00030178 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
|
||||
0001:000301D8 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
|
||||
0001:00030210 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
|
||||
0001:000338E4 00004ADA C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
|
||||
0001:000383C0 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
|
||||
0001:00038450 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
|
||||
0001:00038BF0 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
|
||||
0001:00038D18 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
|
||||
0001:0003C53C 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
|
||||
0001:0003C574 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
|
||||
0001:0003C5DC 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
|
||||
0001:0003C644 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
|
||||
0001:0003C6B0 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
|
||||
0001:0003C708 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
|
||||
0001:0003C740 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
|
||||
0001:00046088 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
|
||||
0001:00046F28 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
|
||||
0001:000535C0 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
|
||||
0001:00053728 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
|
||||
0001:00054448 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
|
||||
0001:0006584C 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
|
||||
0001:00066AE0 00001B9C C=CODE S=.text G=(none) M=ImgList ACBP=A9
|
||||
0001:0006867C 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
|
||||
0001:0006ED60 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
|
||||
0001:0007BCEC 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
|
||||
0001:0007BD3C 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
|
||||
0001:0008F128 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
|
||||
0001:0008F188 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
|
||||
0001:000903E4 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
|
||||
0001:0009041C 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
|
||||
0001:00091BB0 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
|
||||
0001:00091C10 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
|
||||
0001:0009512C 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
|
||||
0001:00095440 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
|
||||
0001:00095568 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
|
||||
0001:00098FE0 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
|
||||
0001:000998CC 00000598 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
|
||||
0001:00099E64 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
|
||||
0001:00099EA4 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
|
||||
0001:00099EDC 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
|
||||
0001:0009A8F4 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
|
||||
0001:0009C9FC 0000924C C=CODE S=.text G=(none) M=Grids ACBP=A9
|
||||
0001:000A5C48 00001820 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
|
||||
0001:000A7468 0000057C C=CODE S=.text G=(none) M=Importation ACBP=A9
|
||||
0001:000A79E4 000147DC C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
|
||||
0001:000BC1C0 0000289B C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
|
||||
0001:000BEA5C 00000C64 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
|
||||
0001:000BF6C0 00003D24 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
|
||||
0001:000C33E4 000320D4 C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
|
||||
0001:000F54B8 00003410 C=CODE S=.text G=(none) M=UnitSR ACBP=A9
|
||||
0001:000F88C8 000027B4 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
|
||||
0001:000FB07C 00002667 C=CODE S=.text G=(none) M=verif_version ACBP=A9
|
||||
0001:000FD6E4 000011D0 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
|
||||
0001:000FE8B4 00000DDC C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
|
||||
0001:000FF690 00002850 C=CODE S=.text G=(none) M=Unitplace ACBP=A9
|
||||
0001:00101EE0 0003D627 C=CODE S=.text G=(none) M=UnitPrinc ACBP=A9
|
||||
0001:0013F508 0003D4BC C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
|
||||
0001:0017C9C4 00002E78 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
|
||||
0001:0017F83C 000004C0 C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
|
||||
0002:00000000 000000CC C=DATA S=.data G=DGROUP M=System ACBP=A9
|
||||
0002:000000CC 00000020 C=DATA S=.data G=DGROUP M=SysInit ACBP=A9
|
||||
0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9
|
||||
@@ -109,29 +109,28 @@ Detailed map of segments
|
||||
0002:00000518 00000080 C=DATA S=.data G=DGROUP M=Classes ACBP=A9
|
||||
0002:00000598 0000030C C=DATA S=.data G=DGROUP M=Graphics ACBP=A9
|
||||
0002:000008A4 00000004 C=DATA S=.data G=DGROUP M=Printers ACBP=A9
|
||||
0002:000008A8 00000010 C=DATA S=.data G=DGROUP M=ShlObj ACBP=A9
|
||||
0002:000008B8 00000180 C=DATA S=.data G=DGROUP M=Dialogs ACBP=A9
|
||||
0002:00000A38 0000018C C=DATA S=.data G=DGROUP M=ExtCtrls ACBP=A9
|
||||
0002:00000BC4 0000009E C=DATA S=.data G=DGROUP M=Buttons ACBP=A9
|
||||
0002:00000C64 00000008 C=DATA S=.data G=DGROUP M=IniFiles ACBP=A9
|
||||
0002:00000C6C 00000008 C=DATA S=.data G=DGROUP M=Registry ACBP=A9
|
||||
0002:00000C74 00000008 C=DATA S=.data G=DGROUP M=Mapi ACBP=A9
|
||||
0002:00000C7C 000000B9 C=DATA S=.data G=DGROUP M=ComCtrls ACBP=A9
|
||||
0002:00000D38 00000068 C=DATA S=.data G=DGROUP M=Themes ACBP=A9
|
||||
0002:00000DA0 00000154 C=DATA S=.data G=DGROUP M=StdCtrls ACBP=A9
|
||||
0002:00000EF4 0000013C C=DATA S=.data G=DGROUP M=Controls ACBP=A9
|
||||
0002:00001030 00000020 C=DATA S=.data G=DGROUP M=ImgList ACBP=A9
|
||||
0002:00001050 000000EC C=DATA S=.data G=DGROUP M=Menus ACBP=A9
|
||||
0002:0000113C 00000124 C=DATA S=.data G=DGROUP M=Forms ACBP=A9
|
||||
0002:00001260 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
|
||||
0002:00001B68 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
|
||||
0002:00001B98 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
|
||||
0002:00001BC4 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
|
||||
0002:00001C44 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
|
||||
0002:00001C50 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
|
||||
0002:00001C54 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
|
||||
0002:00001C5C 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
|
||||
0002:00001D30 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
|
||||
0002:000008A8 00000180 C=DATA S=.data G=DGROUP M=Dialogs ACBP=A9
|
||||
0002:00000A28 0000018C C=DATA S=.data G=DGROUP M=ExtCtrls ACBP=A9
|
||||
0002:00000BB4 0000009E C=DATA S=.data G=DGROUP M=Buttons ACBP=A9
|
||||
0002:00000C54 00000008 C=DATA S=.data G=DGROUP M=IniFiles ACBP=A9
|
||||
0002:00000C5C 00000008 C=DATA S=.data G=DGROUP M=Registry ACBP=A9
|
||||
0002:00000C64 00000008 C=DATA S=.data G=DGROUP M=Mapi ACBP=A9
|
||||
0002:00000C6C 000000B9 C=DATA S=.data G=DGROUP M=ComCtrls ACBP=A9
|
||||
0002:00000D28 00000068 C=DATA S=.data G=DGROUP M=Themes ACBP=A9
|
||||
0002:00000D90 00000154 C=DATA S=.data G=DGROUP M=StdCtrls ACBP=A9
|
||||
0002:00000EE4 0000013C C=DATA S=.data G=DGROUP M=Controls ACBP=A9
|
||||
0002:00001020 00000020 C=DATA S=.data G=DGROUP M=ImgList ACBP=A9
|
||||
0002:00001040 000000EC C=DATA S=.data G=DGROUP M=Menus ACBP=A9
|
||||
0002:0000112C 00000124 C=DATA S=.data G=DGROUP M=Forms ACBP=A9
|
||||
0002:00001250 00000908 C=DATA S=.data G=DGROUP M=jpeg ACBP=A9
|
||||
0002:00001B58 00000030 C=DATA S=.data G=DGROUP M=ComObj ACBP=A9
|
||||
0002:00001B88 0000002C C=DATA S=.data G=DGROUP M=OleCtrls ACBP=A9
|
||||
0002:00001BB4 00000080 C=DATA S=.data G=DGROUP M=MSCommLib_TLB ACBP=A9
|
||||
0002:00001C34 00000009 C=DATA S=.data G=DGROUP M=MaskUtils ACBP=A9
|
||||
0002:00001C40 00000004 C=DATA S=.data G=DGROUP M=Mask ACBP=A9
|
||||
0002:00001C44 00000006 C=DATA S=.data G=DGROUP M=Grids ACBP=A9
|
||||
0002:00001C4C 000000D4 C=DATA S=.data G=DGROUP M=UnitTCO ACBP=A9
|
||||
0002:00001D20 0000060D C=DATA S=.data G=DGROUP M=UnitPrinc ACBP=A9
|
||||
0002:00003000 00000664 C=BSS S=.bss G=DGROUP M=System ACBP=A9
|
||||
0002:00003664 00000010 C=BSS S=.bss G=DGROUP M=SysInit ACBP=A9
|
||||
0002:00003674 00000004 C=BSS S=.bss G=DGROUP M=Types ACBP=A9
|
||||
@@ -216,13 +215,13 @@ Detailed map of segments
|
||||
0002:00018770 00418704 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
|
||||
0002:00430E74 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
|
||||
0002:00430E84 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
|
||||
0002:00430E98 00000020 C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
|
||||
0002:00430EB8 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
|
||||
0002:00430EBC 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
|
||||
0002:00430EC8 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
|
||||
0002:00430ED0 041B4F80 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
|
||||
0002:045E5E50 0000056C C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
|
||||
0002:045E63BC 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
|
||||
0002:00430E98 000001EC C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
|
||||
0002:00431084 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
|
||||
0002:00431088 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
|
||||
0002:00431094 00000008 C=BSS S=.bss G=DGROUP M=Unitplace ACBP=A9
|
||||
0002:0043109C 041C8808 C=BSS S=.bss G=DGROUP M=UnitPrinc ACBP=A9
|
||||
0002:045F98A4 00000570 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
|
||||
0002:045F9E14 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
|
||||
|
||||
Bound resource files
|
||||
|
||||
@@ -248,4 +247,4 @@ Signaux_complexes_GL.res
|
||||
Signaux_complexes_GL.drf
|
||||
|
||||
|
||||
Program entry point at 0001:0017F58C
|
||||
Program entry point at 0001:0017FB4C
|
||||
|
||||
+22
-9
@@ -681,7 +681,7 @@ object FormConfig: TFormConfig
|
||||
Top = 8
|
||||
Width = 633
|
||||
Height = 505
|
||||
ActivePage = TabSheetPeriph
|
||||
ActivePage = TabSheetAig
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
@@ -1987,7 +1987,7 @@ object FormConfig: TFormConfig
|
||||
Left = 0
|
||||
Top = 56
|
||||
Width = 305
|
||||
Height = 409
|
||||
Height = 377
|
||||
Color = clBlack
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clAqua
|
||||
@@ -2003,6 +2003,19 @@ object FormConfig: TFormConfig
|
||||
OnKeyDown = ListBoxAigKeyDown
|
||||
OnMouseDown = ListBoxAigMouseDown
|
||||
end
|
||||
object CheckBoxMsgAigInc: TCheckBox
|
||||
Left = 8
|
||||
Top = 448
|
||||
Width = 273
|
||||
Height = 17
|
||||
Hint =
|
||||
'Affiche un message d'#39'avertissement si un '#233'v'#232'nement est re'#231'u d'#39'un' +
|
||||
' aiguillage non d'#233'clar'#233
|
||||
Caption = 'Affiche un message sur '#233'vt aiguillage inconnu'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 5
|
||||
end
|
||||
end
|
||||
object TabSheetBranches: TTabSheet
|
||||
Caption = 'Branches'
|
||||
@@ -2353,7 +2366,7 @@ object FormConfig: TFormConfig
|
||||
Width = 137
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
TabOrder = 1
|
||||
OnChange = ComboBoxDecChange
|
||||
end
|
||||
@@ -2460,7 +2473,7 @@ object FormConfig: TFormConfig
|
||||
Width = 137
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxAspChange
|
||||
end
|
||||
@@ -2753,7 +2766,7 @@ object FormConfig: TFormConfig
|
||||
Top = 56
|
||||
Width = 193
|
||||
Height = 21
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
OnChange = ComboBoxDecodeurPersoChange
|
||||
end
|
||||
@@ -2772,7 +2785,7 @@ object FormConfig: TFormConfig
|
||||
Width = 145
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
TabOrder = 2
|
||||
OnChange = ComboBoxNationChange
|
||||
end
|
||||
@@ -2818,7 +2831,7 @@ object FormConfig: TFormConfig
|
||||
Width = 193
|
||||
Height = 21
|
||||
Style = csDropDownList
|
||||
ItemHeight = 0
|
||||
ItemHeight = 13
|
||||
TabOrder = 6
|
||||
OnChange = ComboBoxDecCdeChange
|
||||
end
|
||||
@@ -3203,7 +3216,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 = 0
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
@@ -3384,7 +3397,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 = 0
|
||||
ItemHeight = 13
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 10
|
||||
|
||||
+20
-1
@@ -357,6 +357,7 @@ type
|
||||
TabAvance: TTabSheet;
|
||||
Label31: TLabel;
|
||||
Label39: TLabel;
|
||||
CheckBoxMsgAigInc: TCheckBox;
|
||||
procedure ButtonAppliquerEtFermerClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure ListBoxAigMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
@@ -578,6 +579,7 @@ Avec_roulage_ch='Avec_roulage';
|
||||
nb_det_dist_ch='nb_det_dist';
|
||||
IpV4_PC_ch='IpV4_PC';
|
||||
ServicesCDM_ch='ServicesCDM';
|
||||
AffAigND_ch='AigND';
|
||||
retro_ch='retro';
|
||||
Ecran_ch='Ecran';
|
||||
Z21_ch='Z21';
|
||||
@@ -651,7 +653,7 @@ var
|
||||
|
||||
ack_cdm,clicliste,config_modifie,clicproprietes,confasauver,trouve_MaxPort,fermeSC,
|
||||
modif_branches,ConfigPrete,trouve_section_dccpp,trouve_section_trains,trouve_section_acccomusb,
|
||||
trouveAvecVerifIconesTCO,Affiche_avert,activ,trouve_section_dec_pers,Z21 : boolean;
|
||||
trouveAvecVerifIconesTCO,Affiche_avert,activ,trouve_section_dec_pers,Z21,AffAigND : boolean;
|
||||
|
||||
fichier : text;
|
||||
|
||||
@@ -1873,6 +1875,9 @@ begin
|
||||
if Raz_Acc_signaux then s:='1' else s:='0';
|
||||
writeln(fichierN,Raz_signaux_ch+'='+s);
|
||||
|
||||
if AffAigND then s:='1' else s:='0';
|
||||
writeln(fichierN,AffAigND_ch+'='+s);
|
||||
|
||||
// temporisation entre 2 commandes décodeurs signaux
|
||||
writeln(fichierN,Tempo_signal_ch+'=',IntToSTR(Tempo_Signal));
|
||||
|
||||
@@ -3691,6 +3696,17 @@ var s,sa,SOrigine: string;
|
||||
Raz_Acc_signaux:=i=1;
|
||||
end;
|
||||
|
||||
sa:=uppercase(AffAigND_ch)+'=';
|
||||
i:=pos(sa,s);
|
||||
if i=1 then
|
||||
begin
|
||||
inc(nv);
|
||||
delete(s,i,length(sa));
|
||||
val(s,i,erreur);
|
||||
if i>1 then i:=1;
|
||||
AffAigND:=i=1;
|
||||
end;
|
||||
|
||||
// section aiguillages
|
||||
sa:=uppercase(section_aig_ch);
|
||||
if pos(sa,s)<>0 then
|
||||
@@ -4159,6 +4175,7 @@ begin
|
||||
Srvc_Pos:=CheckServPosTrains.checked;
|
||||
Srvc_Sig:=CheckBoxSrvSig.checked;
|
||||
Raz_Acc_signaux:=CheckBoxRazSignaux.checked;
|
||||
AffAigND:=CheckBoxMsgAigInc.checked;
|
||||
AvecInitAiguillages:=CheckBoxInitAig.Checked;
|
||||
AvecDemandeAiguillages:=checkPosAig.checked;
|
||||
AvecDemandeInterfaceUSB:=CheckBoxDemarUSB.checked;
|
||||
@@ -5960,6 +5977,7 @@ begin
|
||||
' = 2 : protocole matériel RTS-CTS sans temporisation d''envoi (Interfaces Lenz LI)'+#13+
|
||||
' = 4 : contrôle de la ligne CTS avant d''émettre un caractère avec temporisation d''envoi';
|
||||
EditComUSB.showHint:=true;
|
||||
ListBoxAig.Height:=382;
|
||||
|
||||
ligneclicAig:=-1;
|
||||
AncLigneClicAig:=-1;
|
||||
@@ -14436,6 +14454,7 @@ begin
|
||||
CheckBoxSrvSig.Checked:=Srvc_Sig;
|
||||
|
||||
CheckBoxRazSignaux.checked:=Raz_Acc_signaux;
|
||||
CheckBoxMsgAigInc.checked:=AffAigND;
|
||||
CheckBoxInitAig.checked:=AvecInitAiguillages;
|
||||
CheckPosAig.checked:=AvecDemandeAiguillages;
|
||||
CheckBoxDemarUSB.checked:=AvecDemandeInterfaceUSB;
|
||||
|
||||
+37
-37
@@ -1,13 +1,13 @@
|
||||
object FormDebug: TFormDebug
|
||||
Left = 196
|
||||
Top = 37
|
||||
Left = 244
|
||||
Top = 119
|
||||
VertScrollBar.Increment = 67
|
||||
VertScrollBar.Tracking = True
|
||||
VertScrollBar.Visible = False
|
||||
AutoScroll = False
|
||||
Caption = 'Fen'#234'tre de d'#233'bug'
|
||||
ClientHeight = 757
|
||||
ClientWidth = 946
|
||||
ClientHeight = 662
|
||||
ClientWidth = 878
|
||||
Color = clWindow
|
||||
TransparentColorValue = clTeal
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -22,25 +22,25 @@ object FormDebug: TFormDebug
|
||||
OnCreate = FormCreate
|
||||
OnKeyPress = FormKeyPress
|
||||
DesignSize = (
|
||||
946
|
||||
757)
|
||||
878
|
||||
662)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object ScrollBoxDebug: TScrollBox
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 940
|
||||
Height = 772
|
||||
Width = 872
|
||||
Height = 677
|
||||
HorzScrollBar.Visible = False
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
Color = clBtnFace
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
DesignSize = (
|
||||
919
|
||||
768)
|
||||
851
|
||||
673)
|
||||
object LabelTitreDebug: TLabel
|
||||
Left = 543
|
||||
Left = 475
|
||||
Top = 8
|
||||
Width = 131
|
||||
Height = 18
|
||||
@@ -54,7 +54,7 @@ object FormDebug: TFormDebug
|
||||
ParentFont = False
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 695
|
||||
Left = 627
|
||||
Top = 10
|
||||
Width = 108
|
||||
Height = 13
|
||||
@@ -72,7 +72,7 @@ object FormDebug: TFormDebug
|
||||
object RichDebug: TRichEdit
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 522
|
||||
Width = 454
|
||||
Height = 753
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
Color = clMaroon
|
||||
@@ -84,7 +84,7 @@ object FormDebug: TFormDebug
|
||||
OnChange = RichDebugChange
|
||||
end
|
||||
object ButtonRazTout: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 216
|
||||
Width = 97
|
||||
Height = 25
|
||||
@@ -99,7 +99,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonRazToutClick
|
||||
end
|
||||
object ButtonCop: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 248
|
||||
Width = 97
|
||||
Height = 41
|
||||
@@ -116,7 +116,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonCopClick
|
||||
end
|
||||
object ButtonAffEvtChrono: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 296
|
||||
Width = 97
|
||||
Height = 33
|
||||
@@ -127,7 +127,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonAffEvtChronoClick
|
||||
end
|
||||
object ButtonCherche: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 336
|
||||
Width = 97
|
||||
Height = 25
|
||||
@@ -140,7 +140,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonChercheClick
|
||||
end
|
||||
object ButtonEcrLog: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 184
|
||||
Width = 97
|
||||
Height = 29
|
||||
@@ -150,7 +150,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonEcrLogClick
|
||||
end
|
||||
object ButtonRazTampon: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 368
|
||||
Width = 97
|
||||
Height = 33
|
||||
@@ -161,7 +161,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonRazTamponClick
|
||||
end
|
||||
object ButtonRazLog: TButton
|
||||
Left = 533
|
||||
Left = 465
|
||||
Top = 408
|
||||
Width = 97
|
||||
Height = 33
|
||||
@@ -172,7 +172,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonRazLogClick
|
||||
end
|
||||
object MemoEvtDet: TRichEdit
|
||||
Left = 638
|
||||
Left = 570
|
||||
Top = 186
|
||||
Width = 272
|
||||
Height = 263
|
||||
@@ -183,7 +183,7 @@ object FormDebug: TFormDebug
|
||||
OnChange = MemoEvtDetChange
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 530
|
||||
Left = 462
|
||||
Top = 456
|
||||
Width = 380
|
||||
Height = 57
|
||||
@@ -250,7 +250,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
end
|
||||
object GroupBox6: TGroupBox
|
||||
Left = 530
|
||||
Left = 462
|
||||
Top = 520
|
||||
Width = 380
|
||||
Height = 52
|
||||
@@ -327,7 +327,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
end
|
||||
object GroupBoxPrim: TGroupBox
|
||||
Left = 532
|
||||
Left = 464
|
||||
Top = 584
|
||||
Width = 378
|
||||
Height = 185
|
||||
@@ -345,12 +345,12 @@ object FormDebug: TFormDebug
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 8
|
||||
Top = 16
|
||||
Width = 353
|
||||
Width = 361
|
||||
Height = 73
|
||||
Caption = 'Signal'
|
||||
TabOrder = 0
|
||||
object Label4: TLabel
|
||||
Left = 313
|
||||
Left = 321
|
||||
Top = 10
|
||||
Width = 32
|
||||
Height = 13
|
||||
@@ -363,7 +363,7 @@ object FormDebug: TFormDebug
|
||||
ParentFont = False
|
||||
end
|
||||
object ButtonSigSuiv: TButton
|
||||
Left = 0
|
||||
Left = 8
|
||||
Top = 16
|
||||
Width = 49
|
||||
Height = 49
|
||||
@@ -376,7 +376,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonSigSuivClick
|
||||
end
|
||||
object ButtonCanSuivSig: TButton
|
||||
Left = 48
|
||||
Left = 56
|
||||
Top = 16
|
||||
Width = 65
|
||||
Height = 49
|
||||
@@ -389,7 +389,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonCanSuivSigClick
|
||||
end
|
||||
object EditSigSuiv: TEdit
|
||||
Left = 312
|
||||
Left = 320
|
||||
Top = 32
|
||||
Width = 33
|
||||
Height = 21
|
||||
@@ -399,7 +399,7 @@ object FormDebug: TFormDebug
|
||||
TabOrder = 2
|
||||
end
|
||||
object ButtonCP: TButton
|
||||
Left = 112
|
||||
Left = 120
|
||||
Top = 16
|
||||
Width = 81
|
||||
Height = 49
|
||||
@@ -412,7 +412,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonCPClick
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 192
|
||||
Left = 200
|
||||
Top = 16
|
||||
Width = 57
|
||||
Height = 49
|
||||
@@ -427,7 +427,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = Button2Click
|
||||
end
|
||||
object ButtonAigDevie: TButton
|
||||
Left = 248
|
||||
Left = 256
|
||||
Top = 16
|
||||
Width = 57
|
||||
Height = 49
|
||||
@@ -443,7 +443,7 @@ object FormDebug: TFormDebug
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 8
|
||||
Top = 96
|
||||
Width = 353
|
||||
Width = 361
|
||||
Height = 81
|
||||
Caption = 'D'#233'tecteur/'#233'l'#233'ment suivant'
|
||||
TabOrder = 1
|
||||
@@ -462,7 +462,7 @@ object FormDebug: TFormDebug
|
||||
OnClick = ButtonDetSuivClick
|
||||
end
|
||||
object EditPrec: TEdit
|
||||
Left = 208
|
||||
Left = 216
|
||||
Top = 34
|
||||
Width = 49
|
||||
Height = 21
|
||||
@@ -472,7 +472,7 @@ object FormDebug: TFormDebug
|
||||
TabOrder = 1
|
||||
end
|
||||
object EditActuel: TEdit
|
||||
Left = 264
|
||||
Left = 272
|
||||
Top = 34
|
||||
Width = 49
|
||||
Height = 21
|
||||
@@ -498,7 +498,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 534
|
||||
Left = 466
|
||||
Top = 28
|
||||
Width = 376
|
||||
Height = 149
|
||||
@@ -711,7 +711,7 @@ object FormDebug: TFormDebug
|
||||
end
|
||||
end
|
||||
object EditNivDebug: TEdit
|
||||
Left = 819
|
||||
Left = 751
|
||||
Top = 8
|
||||
Width = 49
|
||||
Height = 21
|
||||
|
||||
+2
-2
@@ -275,9 +275,9 @@ end;
|
||||
procedure TFormDebug.EditNivDebugKeyPress(Sender: TObject; var Key: Char);
|
||||
var i,e : integer;
|
||||
begin
|
||||
if ord(Key) = VK_RETURN then
|
||||
if ord(Key)=VK_RETURN then
|
||||
begin
|
||||
Key := #0; // prevent beeping
|
||||
Key:=#0; // prevent beeping
|
||||
val(EditNivDebug.text,i,e);
|
||||
if e=0 then
|
||||
begin
|
||||
|
||||
+7
-6
@@ -1,6 +1,6 @@
|
||||
object FormPrinc: TFormPrinc
|
||||
Left = 180
|
||||
Top = 135
|
||||
Left = 134
|
||||
Top = 180
|
||||
Width = 1148
|
||||
Height = 618
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
@@ -20,8 +20,8 @@ object FormPrinc: TFormPrinc
|
||||
OnCreate = FormCreate
|
||||
OnResize = FormResize
|
||||
DesignSize = (
|
||||
1132
|
||||
560)
|
||||
1140
|
||||
567)
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object LabelTitre: TLabel
|
||||
@@ -1430,8 +1430,8 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Top = 538
|
||||
Width = 1132
|
||||
Top = 545
|
||||
Width = 1140
|
||||
Height = 22
|
||||
Panels = <
|
||||
item
|
||||
@@ -2124,6 +2124,7 @@ object FormPrinc: TFormPrinc
|
||||
end
|
||||
object DeconnecterUSB: TMenuItem
|
||||
Caption = 'D'#233'connecter l'#39'interface de l'#39'USB'
|
||||
Enabled = False
|
||||
Hint = 'D'#233'connecter l'#39'interface USB'
|
||||
OnClick = DeconnecterUSBClick
|
||||
end
|
||||
|
||||
+47
-26
@@ -714,7 +714,8 @@ var
|
||||
record
|
||||
tick : longint;
|
||||
modele : Tequipement;
|
||||
Adresse,etat : integer ;
|
||||
Adresse,Adresse2,etat : integer ;
|
||||
train : string;
|
||||
end;
|
||||
|
||||
tablo_CV : array [1..255] of integer;
|
||||
@@ -5469,7 +5470,7 @@ end;
|
||||
// un élément est constitué de son adresse et de son type
|
||||
// et renvoie aussi en variable globale: typeGen le type de l'élément (det aig uniquement! pas tjd ni crois)
|
||||
// : AigMal = aiguillage mal positionné ou inconnu
|
||||
// alg= algorithme 1 à 8 sous forme de bits fonctionnels
|
||||
// alg= algorithme 1 à 8 sous forme de bits fonctionnels:
|
||||
// bit0 (1)=arret sur suivant qu'il soit un détecteur ou un aiguillage
|
||||
// bit1 (2)=arret sur aiguillage en talon mal positionné
|
||||
// bit2 (4)=arret sur aiguillage réservé
|
||||
@@ -5482,11 +5483,13 @@ end;
|
||||
// 9996: arrêt sur position inconnue d'aiguillage
|
||||
// 9995: arrêt sur buttoir
|
||||
// 9994: arrêt sur aiguillage réservé
|
||||
// 9993: éléments non consécutifs
|
||||
|
||||
// la variable "actuel" peut etre changée en cas de TJD!
|
||||
function suivant_alg3(prec : integer;typeELprec : TEquipement;actuel : integer;typeElActuel : TEquipement;alg : integer) : integer;
|
||||
var Adr,AdrPrec,indexBranche_prec,branche_trouve_prec,indexBranche_actuel,branche_trouve_actuel,
|
||||
tjsc1,tjsc2,AdrTjdP,Adr2,N_iteration,index,NetatTJD,index2 : integer;
|
||||
tjscourbe1,tjscourbe2,tjdC,tjsC : boolean;
|
||||
tjscourbe1,tjscourbe2,tjdC,tjsC,id : boolean;
|
||||
A,Aprec,tjsc1B,tjsc2B,typeprec: char;
|
||||
Md,BT,BtypePrec,TypeEL : TEquipement;
|
||||
s : string;
|
||||
@@ -5504,7 +5507,7 @@ begin
|
||||
Suivant_alg3:=9999;exit;
|
||||
end;
|
||||
if (NivDebug=3) then
|
||||
AfficheDebug('Alg3 précédent='+intToSTR(prec)+'/'+BtypeToChaine(TypeElprec)+' actuel='+intToSTR(actuel)+'/'+BtypeToChaine(typeElActuel)+' Alg='+intToSTr(alg),clyellow);
|
||||
AfficheDebug('it='+intToSTR(n_iteration)+' Alg3 précédent='+intToSTR(prec)+'/'+BtypeToChaine(TypeElprec)+' actuel='+intToSTR(actuel)+'/'+BtypeToChaine(typeElActuel)+' Alg='+intToSTr(alg),clyellow);
|
||||
|
||||
// trouver les éléments du précédent dans les branches
|
||||
trouve_element(prec,TypeELPrec); // branche_trouve IndexBranche_trouve
|
||||
@@ -5531,13 +5534,15 @@ begin
|
||||
Adr:=actuel;
|
||||
Bt:=BrancheN[branche_trouve_actuel,indexBranche_actuel].Btype;
|
||||
|
||||
//Affiche('Btype='+intToSTR(Btype)+' Actuel='+inTToSTR(actuel),clyellow);
|
||||
if nivDebug=3 then AfficheDebug('Btype='+BTypeToChaine(Bt)+' Actuel='+inTToSTR(actuel),clyellow);
|
||||
|
||||
id:=false;
|
||||
if Bt=det then // l'élément actuel est un détecteur
|
||||
begin
|
||||
// on part de l'actuel pour retomber sur le précédent
|
||||
if BrancheN[branche_trouve_actuel,indexBranche_actuel-1].Adresse=prec then // c'est l'autre sens
|
||||
begin
|
||||
id:=true;
|
||||
if NivDebug=3 then AfficheDebug('40 - trouvé détecteur '+intToSTR(adr)+' en + ',clwhite);
|
||||
Prec:=Adr;
|
||||
Aprec:=a;
|
||||
@@ -5554,6 +5559,7 @@ begin
|
||||
end;
|
||||
if BrancheN[branche_trouve_actuel,indexBranche_actuel+1].Adresse=prec then
|
||||
begin
|
||||
id:=true;
|
||||
if NivDebug=3 then AfficheDebug('42 - trouvé détecteur '+intToSTR(adr)+' en - ',clwhite);
|
||||
Prec:=Adr;
|
||||
Aprec:=a;
|
||||
@@ -5571,6 +5577,7 @@ begin
|
||||
// ici, les éléments sont non consécutifs. voir si l'un des deux est une TJD/TJS
|
||||
if (btypePrec=aig) then // car btype dans les branches vaut det, aig, buttoir mais jamais tjd ni tjs
|
||||
begin
|
||||
id:=true;
|
||||
// changer l'adresse du précédent par l'autre adresse de la TJD/S
|
||||
// V1 index:=index_aig(prec);
|
||||
index:=tablo_index_aiguillage[prec];
|
||||
@@ -5579,9 +5586,16 @@ begin
|
||||
begin
|
||||
//V1 prec:=Aiguillage[index_aig(prec)].Ddroit;
|
||||
prec:=Aiguillage[tablo_index_aiguillage[prec]].Ddroit;
|
||||
if NivDebug=3 then AfficheDebug('Le précedent est une TJD/S - substitution du precédent par la pointe de la TJD qui est '+intToSTR(prec),clYellow);
|
||||
if NivDebug=3 then AfficheDebug('Le précedent est une TJD/S - substitution du précédent par la pointe de la TJD qui est '+intToSTR(prec),clYellow);
|
||||
end;
|
||||
end;
|
||||
if not(id) then
|
||||
begin
|
||||
Affiche('Erreur 780 alg3: '+intToSTR(prec)+' '+intToSTR(actuel)+' non consécutifs',clRed);
|
||||
result:=9993;
|
||||
exit;
|
||||
end;
|
||||
|
||||
inc(n_iteration);
|
||||
|
||||
if n_iteration>50 then
|
||||
@@ -5620,7 +5634,7 @@ begin
|
||||
if (alg and $4=$4) and (aiguillage[index].AdrTrain<>0) then
|
||||
begin
|
||||
if NivDebug=3 then AfficheDebug('230 - aiguillage '+intToSTR(adr)+' réservé par train @'+intToSTR(aiguillage[index].AdrTrain),clyellow);
|
||||
suivant_alg3:=9997; //. attention code incorrect devrait être 9994
|
||||
suivant_alg3:=9997; // attention code incorrect devrait être 9994
|
||||
exit;
|
||||
end;
|
||||
|
||||
@@ -6873,7 +6887,7 @@ begin
|
||||
end;
|
||||
IndexBranche:=IndexBranche_trouve;
|
||||
branche:=branche_trouve;
|
||||
Dir:=1 ; //test direction
|
||||
Dir:=1 ; //test direction 1 ou 2 (incrément ou décrément)
|
||||
|
||||
repeat
|
||||
if (Dir=1) then i:=IndexBranche-1 else i:=IndexBranche+1;
|
||||
@@ -10081,8 +10095,10 @@ begin
|
||||
end
|
||||
else
|
||||
begin
|
||||
Affiche_evt('1-0 Les éléments '+intToSTR(det1)+' et '+intToSTR(det3)+' ne sont pas contigus',clyellow);
|
||||
for tco:=1 to nbreTCO do maj_tco(i,det3);
|
||||
Affiche_evt('1-0 Train '+intToSTR(i)+' Eléments '+intToSTR(det1)+' et '+intToSTR(det3)+' non contigus',clyellow);
|
||||
|
||||
for tco:=1 to nbreTCO do
|
||||
maj_tco(tco,det3);
|
||||
// det3 et det1 non adjacents
|
||||
end;
|
||||
end;
|
||||
@@ -10348,7 +10364,7 @@ begin
|
||||
end
|
||||
else
|
||||
begin
|
||||
//Affiche_Evt('Route invalide: dét '+intToSTR(det2)+' '+intToSTR(det3)+' non contigus',clOrange);
|
||||
Affiche_evt('2-0 Train '+intToSTR(i)+' Eléments '+intToSTR(det2)+' et '+intToSTR(det3)+' non contigus',clyellow);
|
||||
if event_det_train[i].det[2].adresse=det3 then
|
||||
begin
|
||||
s:='7. Rebond dét. '+intToSTR(det3)+' déjà affecté au train '+IntToSTR(i);
|
||||
@@ -10936,15 +10952,14 @@ begin
|
||||
ancien_actionneur[adr]:=etat;
|
||||
if not(fd) and not(fm) then exit;
|
||||
|
||||
if AffAigDet then AfficheDebug('Tick='+IntToSTR(tick)+' Evt Act '+intToSTR(Adr)+'/'+intToSTR(Adr2)+'='+intToSTR(etat),clyellow);
|
||||
|
||||
if AffAigDet then AfficheDebug('Tick='+IntToSTR(tick)+' Evt Act='+intToSTR(Adr)+'/'+intToSTR(Adr2)+'='+intToSTR(etat)+' Train='+trainDecl,clyellow);
|
||||
// vérifier si l'actionneur en évènement a été déclaré pour réagir
|
||||
// dans tableau des actionneurs
|
||||
for i:=1 to maxTablo_act do
|
||||
begin
|
||||
sDecl:=Tablo_actionneur[i].trainDecl;
|
||||
etatAct:=Tablo_actionneur[i].etat ; // état à réagir
|
||||
etatValide:=((etatAct=etat) and fm) or ((etatAct=0) and fd);
|
||||
etatValide:=((etatAct=etat) and fm) or ((etatAct=0) and fd); // front montant ou descendant
|
||||
typ:=Tablo_actionneur[i].typdeclenche; // déclencheur: 0=actioneur/détecteur 2=evt aig 3=MemZone
|
||||
if typ=0 then
|
||||
begin
|
||||
@@ -11445,7 +11460,9 @@ begin
|
||||
begin
|
||||
evalue;evalue;evalue;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
|
||||
else if AffAigND then affiche('Avertissement 47 : un evt aiguillage '+intToSTR(adresse)+' non déclaré a été reçu',clOrange);
|
||||
|
||||
// evt actionneur d'aiguillage
|
||||
for i:=1 to maxTablo_act do
|
||||
@@ -14568,8 +14585,17 @@ begin
|
||||
// evt détecteur ?
|
||||
if Tablo_simule[I_simule].modele=det then
|
||||
begin
|
||||
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' det='+intToSTR(Tablo_simule[i_simule].adresse)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||
Event_Detecteur(Tablo_simule[i_simule].adresse, Tablo_simule[i_simule].etat=1,''); // créer évt détecteur
|
||||
s:='Simu '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' det='+intToSTR(Tablo_simule[i_simule].adresse)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||
Event_Detecteur(Tablo_simule[i_simule].adresse, Tablo_simule[i_simule].etat=1, Tablo_simule[i_simule].train); // créer évt détecteur
|
||||
StatusBar1.Panels[1].text:=s;
|
||||
//Affiche(s,clyellow);
|
||||
end;
|
||||
|
||||
// evt actionneur ?
|
||||
if Tablo_simule[I_simule].modele=act then
|
||||
begin
|
||||
s:='Simu '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' act='+intToSTR(Tablo_simule[i_simule].adresse)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||
Event_Act(Tablo_simule[i_simule].adresse,Tablo_simule[i_simule].adresse2,Tablo_simule[i_simule].etat, Tablo_simule[i_simule].train);
|
||||
StatusBar1.Panels[1].text:=s;
|
||||
//Affiche(s,clyellow);
|
||||
end;
|
||||
@@ -14577,7 +14603,7 @@ begin
|
||||
// evt aiguillage ?
|
||||
if Tablo_simule[I_simule].modele=aig then
|
||||
begin
|
||||
s:='Simulation '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' aig='+intToSTR(Tablo_simule[i_simule].adresse)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||
s:='Simu '+intToSTR(I_simule)+' Tick='+IntToSTR(tick)+' aig='+intToSTR(Tablo_simule[i_simule].adresse)+'='+IntToSTR(Tablo_simule[i_simule].etat);
|
||||
Event_Aig(Tablo_simule[i_simule].Adresse,Tablo_simule[i_simule].etat); // créer évt aiguillage
|
||||
StatusBar1.Panels[1].text:=s;
|
||||
//Affiche(s,clyellow);
|
||||
@@ -15928,7 +15954,7 @@ end;
|
||||
|
||||
procedure TFormPrinc.FichierSimuClick(Sender: TObject);
|
||||
begin
|
||||
FormSimulation.showModal;
|
||||
if formSimulation<>nil then FormSimulation.showModal;
|
||||
end;
|
||||
|
||||
procedure TFormPrinc.ButtonEcrCVClick(Sender: TObject);
|
||||
@@ -16867,13 +16893,9 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormPrinc.Button1Click(Sender: TObject);
|
||||
var s : string;
|
||||
begin
|
||||
debugTCO:=true;
|
||||
zone_TCO(2,513,514,1,1);
|
||||
Affiche('513-514',clYellow);
|
||||
|
||||
//reserve_dereserve_det(530,534,1,2,1);
|
||||
reserve_dereserve_det(888,561,1,1,0);
|
||||
//libere_canton
|
||||
end;
|
||||
|
||||
|
||||
@@ -17532,7 +17554,6 @@ end;
|
||||
|
||||
// mise à jour des menus TCO en fonction du nombre i de TCO
|
||||
Procedure Menu_tco(i : integer);
|
||||
var j : integer;
|
||||
begin
|
||||
with formprinc do
|
||||
begin
|
||||
|
||||
+39
-12
@@ -62,7 +62,8 @@ begin
|
||||
//if intervalle<>0 then k:=Index_Simule*Intervalle+tick+30 else // démarre dans 3s
|
||||
// k:=Index_Simule+tick+30 ;
|
||||
Tablo_simule[index_simule].tick:=k;
|
||||
// détecteur?
|
||||
|
||||
// détecteur? Det=528=1 Train=BB16024
|
||||
i:=pos('DET',s);
|
||||
if i<>0 then
|
||||
begin
|
||||
@@ -78,14 +79,43 @@ begin
|
||||
Delete(s,1,i);
|
||||
val(s,k,erreur);
|
||||
Tablo_simule[index_simule].etat:=k;
|
||||
{s:=IntToSTR(Index_simule)+' Tick='+intToSTR(Tablo_simule[index_simule].tick)+
|
||||
' Detecteur='+intToSTR(Tablo_simule[index_simule].Adresse)+
|
||||
'='+intToSTR(Tablo_simule[index_simule].etat);
|
||||
Affiche(s,ClLime); }
|
||||
inc(index_simule);
|
||||
end;
|
||||
i:=pos('=',s);
|
||||
if i<>0 then delete(s,1,i);
|
||||
Tablo_simule[index_simule].train:=s;
|
||||
|
||||
inc(index_simule);
|
||||
end;
|
||||
// aiguillage?
|
||||
|
||||
// actionneur? Act=803/0=1 Train=CC406526
|
||||
i:=pos('ACT',s);
|
||||
if i<>0 then
|
||||
begin
|
||||
Delete(s,1,i+2);
|
||||
if s[1]='=' then delete(s,1,1);
|
||||
if s[1]=' ' then delete(s,1,1);
|
||||
val(s,k,erreur);
|
||||
Tablo_simule[index_simule].adresse:=k;
|
||||
|
||||
i:=pos('/',s);
|
||||
if i<>0 then delete(s,1,i);
|
||||
val(s,k,erreur);
|
||||
Tablo_simule[index_simule].adresse2:=k;
|
||||
|
||||
i:=pos('=',s);
|
||||
if i<>0 then delete(s,1,i);
|
||||
val(s,k,erreur);
|
||||
|
||||
Tablo_simule[index_simule].modele:=act;
|
||||
Tablo_simule[index_simule].etat:=k;
|
||||
|
||||
i:=pos('=',s);
|
||||
if i<>0 then delete(s,1,i);
|
||||
Tablo_simule[index_simule].train:=s;
|
||||
inc(index_simule);
|
||||
end;
|
||||
|
||||
// aiguillage?
|
||||
i:=pos('AIG',s);
|
||||
if i<>0 then
|
||||
begin
|
||||
@@ -102,17 +132,14 @@ begin
|
||||
val(s,k,erreur);
|
||||
if (k=1) or (k=2) then Tablo_simule[index_simule].etat:=k
|
||||
else Affiche('Erreur 622 : Position aiguillage '+intToSTR(Tablo_simule[index_simule].adresse)+' inconnue dans le fichier de simulation',clred);
|
||||
{s:=IntToSTR(Index_simule)+' Tick='+intToSTR(Tablo_simule[index_simule].tick)+
|
||||
' Aiguillage='+intToSTR(Tablo_simule[index_simule].adresse)+
|
||||
'='+intToSTR(Tablo_simule[index_simule].etat);
|
||||
Affiche(s,ClLime); }
|
||||
inc(index_simule);
|
||||
inc(index_simule);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Application.ProcessMessages;
|
||||
sortie:=eof(fte) or (index_simule>Max_Simule) or (pos('STOP',s)<>0);
|
||||
end ;
|
||||
|
||||
if index_simule>Max_Simule then Affiche('Tableau maximal atteint',clred);
|
||||
Affiche('Intervalle='+intToSTR(intervalle),clyellow);
|
||||
dec(index_simule); //maxi
|
||||
|
||||
+29
-27
@@ -1612,27 +1612,6 @@ begin
|
||||
//Affiche(intToSTR(LargeurCell[indexTCO])+' '+intToSTR(epaisseur),clyellow);
|
||||
end;
|
||||
|
||||
procedure entoure_cell_grille(indexTCO,x,y : integer);
|
||||
// redessine le carré de grille de la cellule qui a été altéré par la mise à
|
||||
// jour de la cellule
|
||||
var Xorg,Yorg : integer;
|
||||
begin;
|
||||
if not(AvecGrille[indexTCO]) then exit;
|
||||
Xorg:=(x-1)*LargeurCell[indexTCO];
|
||||
Yorg:=(y-1)*HauteurCell[indexTCO];
|
||||
if PcanvasTCO[indexTCO]<>nil then
|
||||
With PcanvasTCO[indexTCO] do
|
||||
begin
|
||||
Pen.Color:=clGrille[IndexTCO];
|
||||
Pen.mode:=PmCopy;
|
||||
Pen.width:=3;
|
||||
MoveTo(Xorg,YOrg);
|
||||
LineTo(Xorg+LargeurCell[indexTCO],YOrg);
|
||||
LineTo(Xorg+LargeurCell[indexTCO],YOrg+HauteurCell[indexTCO]);
|
||||
LineTo(Xorg,YOrg+HauteurCell[indexTCO]);
|
||||
LineTo(Xorg,YOrg);
|
||||
end;
|
||||
end;
|
||||
|
||||
function positionTCO(indexTCO,x,y : integer) : integer;
|
||||
var position,i : integer;
|
||||
@@ -8666,6 +8645,28 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure entoure_cell_grille(indexTCO,x,y : integer);
|
||||
// redessine le carré de grille de la cellule qui a été altéré par la mise à
|
||||
// jour de la cellule
|
||||
var Xorg,Yorg : integer;
|
||||
begin;
|
||||
if not(AvecGrille[indexTCO]) then exit;
|
||||
Xorg:=(x-1)*LargeurCell[indexTCO];
|
||||
Yorg:=(y-1)*HauteurCell[indexTCO];
|
||||
if PcanvasTCO[indexTCO]<>nil then
|
||||
With PcanvasTCO[indexTCO] do
|
||||
begin
|
||||
Pen.Color:=clGrille[IndexTCO];
|
||||
Pen.mode:=PmCopy;
|
||||
Pen.width:=1;
|
||||
MoveTo(Xorg,YOrg);
|
||||
LineTo(Xorg+LargeurCell[indexTCO],YOrg);
|
||||
LineTo(Xorg+LargeurCell[indexTCO],YOrg+HauteurCell[indexTCO]);
|
||||
LineTo(Xorg,YOrg+HauteurCell[indexTCO]);
|
||||
LineTo(Xorg,YOrg);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure Entoure_cell(indexTCO,x,y : integer);
|
||||
var r : Trect;
|
||||
@@ -8985,7 +8986,7 @@ begin
|
||||
Affiche(s,clred);
|
||||
end;
|
||||
|
||||
// efface le trajet du tco du train depuis le détecteur jusqu'au premier aiguillage
|
||||
// efface le trajet du tco du numéro du train depuis le détecteur jusqu'au premier aiguillage
|
||||
procedure efface_trajet(det,train : integer);
|
||||
var i,j,t,n,Bimage,x,y : integer;
|
||||
trouve : boolean;
|
||||
@@ -12189,7 +12190,7 @@ begin
|
||||
//if not(clicsouris) then affiche('non',clred);
|
||||
if clicsouris and SelecBouge then
|
||||
begin
|
||||
//zizi
|
||||
//
|
||||
x0:=(xMiniSel-1)*LargeurCell[indexTCO];
|
||||
y0:=(yMiniSel-1)*hauteurCell[indexTCO];
|
||||
larg:=((xMaxiSel-xMiniSel)+1)*LargeurCell[indexTCO];
|
||||
@@ -12409,6 +12410,7 @@ procedure Maj_TCO(indexTCO,Adresse : integer);
|
||||
var x,y: integer;
|
||||
begin
|
||||
if PcanvasTCO[indexTCO]=nil then exit;
|
||||
|
||||
for y:=1 to NbreCellY[indexTCO] do
|
||||
for x:=1 to NbreCellX[indexTCO] do
|
||||
begin
|
||||
@@ -13652,10 +13654,10 @@ var cs : string;
|
||||
x,y,xmini,ymini,xmaxi,ymaxi : integer;
|
||||
modeselection : boolean;
|
||||
begin
|
||||
xmini:=(XminiSel div LargeurCell[indexTCO]) +1;
|
||||
ymini:=(YminiSel div hauteurCell[indexTCO]) +1;
|
||||
xmaxi:=(XmaxiSel div LargeurCell[indexTCO]) +1;
|
||||
ymaxi:=(YmaxiSel div hauteurCell[indexTCO]) +1;
|
||||
xmini:=XminiSel;
|
||||
ymini:=YminiSel;
|
||||
xmaxi:=XmaxiSel;
|
||||
ymaxi:=YmaxiSel;
|
||||
modeSelection:=xmini<xmaxi;
|
||||
|
||||
if modeSelection then
|
||||
|
||||
+235
-261
@@ -1,11 +1,12 @@
|
||||
unit verif_version;
|
||||
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls , ComCtrls ,WinInet, ExtCtrls , StrUtils, unitPrinc,
|
||||
ShellAPI , comObj , ShlObj , ActiveX ;
|
||||
ShellAPI , comObj , ShlObj , ActiveX ;
|
||||
|
||||
type
|
||||
TFormVersion = class(TForm)
|
||||
@@ -24,8 +25,9 @@ var
|
||||
Lance_verif : integer;
|
||||
verifVersion,notificationVersion,essai : boolean;
|
||||
chemin_Dest,chemin_src,date_creation,nombre_tel : string;
|
||||
f : text;
|
||||
|
||||
Const Version='8.51'; // sert à la comparaison de la version publiée
|
||||
Const Version='8.53'; // 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;
|
||||
@@ -93,8 +95,8 @@ begin
|
||||
if i<>0 then
|
||||
case i of
|
||||
12007 : Affiche('Erreur de résolution DNS',clred);
|
||||
12037 : Affiche('Erreur validité de certificat - Mettre windows à jour',clred);
|
||||
12157 : Affiche('Erreur canal sécurisé SSL 2.0 - Mettre windows à jour',clred);
|
||||
12037 : Affiche('Erreur validité de certificat - Mettre windows à jour ou version windows obsolète',clred);
|
||||
12157 : Affiche('Erreur canal sécurisé SSL 2.0 - Mettre windows à jour ou version windows obsolète',clred);
|
||||
else affiche('Erreur '+intToSTR(i),clred);
|
||||
end;
|
||||
if Assigned(hService) then
|
||||
@@ -122,95 +124,71 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure log(s : string;couleur : Tcolor);
|
||||
begin
|
||||
Affiche(s,couleur);
|
||||
writeln(f,s);
|
||||
end;
|
||||
|
||||
procedure copie_fichier(s : string);
|
||||
var fs,fd : string;
|
||||
i : integer;
|
||||
begin
|
||||
fd:=chemin_dest+s;
|
||||
fs:=chemin_src+s;
|
||||
//Affiche(fd,clOrange);
|
||||
//Affiche(fs,clOrange);
|
||||
|
||||
if not(copyfile(pchar(fs),pchar(fd),false)) then
|
||||
if not(copyfile(pchar(fs),pchar(fd),false)) then // false force la copie si existant
|
||||
begin
|
||||
fs:=' non copié'; // true évite de le recopier
|
||||
i:=getLastError;
|
||||
Affiche('Erreur '+s,clred);
|
||||
Affiche('non copié. Erreur '+intToSTR(i)+': '+SysErrorMessage(i),clred);
|
||||
log('Fichier '+s+' non copié. Erreur '+intToSTR(i)+': '+SysErrorMessage(i),clred);
|
||||
end
|
||||
else
|
||||
Affiche(s+' copié',clLime);
|
||||
end;
|
||||
|
||||
procedure cree_raccourci(nom_exe : string);
|
||||
var
|
||||
LinkName : WideString;
|
||||
TargetName : String;
|
||||
IObject : IUnknown;
|
||||
ISLink : IShellLink;
|
||||
IPFile : IPersistFile;
|
||||
PIDL : PItemIDList;
|
||||
InFolder : array[0..MAX_PATH] of Char;
|
||||
begin
|
||||
TargetName:=CheminProgrammes+'\Signaux_complexes\'+nom_exe;
|
||||
IObject:=CreateComObject(CLSID_ShellLink);
|
||||
ISLink:=IObject as IShellLink;
|
||||
IPFile:=IObject as IPersistFile;
|
||||
|
||||
with ISLink do begin
|
||||
SetPath(pChar(TargetName));
|
||||
SetWorkingDirectory(pChar(ExtractFilePath(TargetName)));
|
||||
end;
|
||||
|
||||
// on veut placer le lien sur le bureau
|
||||
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);
|
||||
SHGetPathFromIDList(PIDL,InFolder);
|
||||
|
||||
if nom_exe='signaux_complexes_gl.exe' then LinkName:=InFolder + '\Signaux Complexes.lnk';
|
||||
if nom_exe='signaux_complexes_gl_d11.exe' then LinkName:=InFolder + '\Signaux Complexes D11.lnk';
|
||||
|
||||
IPFile.Save(PWChar(LinkName),false);
|
||||
log(s+' copié',clLime);
|
||||
end;
|
||||
|
||||
|
||||
// dézipe copie les fichiers et lance la nouvelle version
|
||||
// s : chemin etfichier à déziper
|
||||
// s : chemin et fichier à déziper
|
||||
procedure dezipe_copie(s : string);
|
||||
var fichier,nomPDF : string;
|
||||
dirList : tStrings;
|
||||
SR : TSearchRec;
|
||||
nombre,i,attributes : integer;
|
||||
pdf,ok : boolean;
|
||||
begin
|
||||
Aff('Téléchargement réussi, décompression');
|
||||
formVersion.close;
|
||||
|
||||
Affiche('Décompression du zip '+s,clLime);
|
||||
if not(unzip(s)) then
|
||||
begin
|
||||
// Vérifier si répertoire dest existe
|
||||
chemin_Dest:=CheminProgrammes+'\Signaux_complexes';
|
||||
if not(directoryExists(chemin_Dest)) then mkDir(chemin_dest);
|
||||
|
||||
i:=pos('.zip',s);
|
||||
if i=0 then
|
||||
begin
|
||||
Affiche('Erreur à la décompression du zip',clred);
|
||||
log('nom du zip invalide',clred);
|
||||
exit;
|
||||
end;
|
||||
|
||||
chemin_src:=s;
|
||||
i:=pos('.zip',chemin_src);
|
||||
if i=0 then
|
||||
begin
|
||||
affiche('nom du zip invalide',clred);
|
||||
exit;
|
||||
end;
|
||||
delete(chemin_src,i,4); // transforme en chemin
|
||||
|
||||
// Vérifier si répertoire dest existe
|
||||
chemin_Dest:=CheminProgrammes+'\Signaux_complexes';
|
||||
if not(directoryExists(chemin_Dest)) then
|
||||
begin
|
||||
Affiche('Création du répertoire '+chemin_dest,clLime);
|
||||
mkDir(chemin_dest);
|
||||
end;
|
||||
chemin_dest:=chemin_dest+'\';
|
||||
chemin_src:=chemin_src+'\';
|
||||
|
||||
AssignFile(f,chemin_dest+'log-install.txt');
|
||||
Rewrite(f);
|
||||
|
||||
log('Mise à jour de signaux complexes V'+version+' le '+DateToStr(date)+' à '+TimeToStr(Time)+' ',clYellow);
|
||||
log('Téléchargement réussi, décompression',clyellow);
|
||||
formVersion.close;
|
||||
|
||||
log('Décompression du zip '+s,clLime);
|
||||
if not(unzip(s)) then
|
||||
begin
|
||||
log('Erreur à la décompression du zip',clred);
|
||||
close(f);
|
||||
exit;
|
||||
end;
|
||||
|
||||
// remplit dirlist avec les noms de fichiers du chemin dest
|
||||
nombre:=0;
|
||||
DirList:=TStringList.Create;
|
||||
@@ -227,7 +205,7 @@ begin
|
||||
FindClose(SR);
|
||||
end;
|
||||
|
||||
// supprimer les fichiers *.Exe et versions.txt et pdf
|
||||
// supprimer les fichiers versions.txt copie_sc.exe et pdf
|
||||
nomPdf:='';
|
||||
for i:=0 to nombre-1 do
|
||||
begin
|
||||
@@ -238,24 +216,23 @@ begin
|
||||
|
||||
//Affiche(s,clyellow);
|
||||
// fichiers à supprimer dans répertoire destination
|
||||
if (pos('.exe',s)<>0) or (s='versions.txt') or pdf then
|
||||
if (s='versions.txt') or pdf then
|
||||
begin
|
||||
fichier:=chemin_dest+s;
|
||||
if sysutils.FileExists((fichier)) then
|
||||
if sysutils.FileExists(fichier) then
|
||||
begin
|
||||
Affiche('Suppression de '+fichier,clorange);
|
||||
log('Suppression de '+fichier,clorange);
|
||||
Attributes:=FileGetAttr(pchar(fichier));
|
||||
Attributes := Attributes and not (faReadOnly or faHidden);
|
||||
SetFileAttributes(pchar(fichier),Attributes);
|
||||
ok:=sysutils.DeleteFile(pchar(fichier));
|
||||
if not(OK) then Affiche('Erreur : Pas réussi à supprimer '+fichier,clred);
|
||||
if not(OK) then log('Erreur : Pas réussi à supprimer '+fichier,clred);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// copie les fichiers du répertoire zip vers le rep installé
|
||||
copie_fichier('signaux_complexes_gl.exe');
|
||||
copie_fichier('signaux_complexes_gl_d11.exe');
|
||||
|
||||
copie_fichier('versions.txt');
|
||||
|
||||
// trouver du nom du pdf dans le chemin source
|
||||
@@ -278,36 +255,30 @@ begin
|
||||
|
||||
if nomPdf<>'' then copie_fichier(nomPdf);
|
||||
|
||||
Affiche('Création des raccourcis sur le bureau',cllime);
|
||||
cree_raccourci('signaux_complexes_gl.exe');
|
||||
cree_raccourci('signaux_complexes_gl_d11.exe');
|
||||
|
||||
if essai then exit;
|
||||
|
||||
s:='';
|
||||
// lancer copie_sc.exe qui copie les exe et crée les raccourcis et lance SC
|
||||
chdir(chemin_src);
|
||||
s:='"'+chemin_dest+'" "'+chemin_src+'"';
|
||||
log('exécution de copie_sc.exe '+s,clyellow);
|
||||
close(f);
|
||||
Affiche('Lancement de la nouvelle version',clyellow);
|
||||
Application.processMessages;
|
||||
Sleep(3000);
|
||||
Sleep(2000);
|
||||
i:=ShellExecute(Formprinc.Handle,'open',
|
||||
Pchar('signaux_complexes_gl_d11.exe'),
|
||||
Pchar('copie_sc.exe'),
|
||||
Pchar(s), // paramètre
|
||||
PChar(chemin_dest) // répertoire
|
||||
PChar('') // répertoire
|
||||
,SW_SHOWNORMAL);
|
||||
if i>32 then
|
||||
begin
|
||||
Affiche('lancement ok',cllime);
|
||||
Application.Terminate;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Affiche('Erreur '+intToSTR(i),clred);
|
||||
exit;
|
||||
Affiche('Erreur '+intToSTR(i)+' au lancement de copie_sc.exe ',clred);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
// renvoie le numéro de version depuis le site github
|
||||
// si 0
|
||||
// renvoie le numéro de version depuis le site github, et télécharge... etc
|
||||
function verifie_version : real;
|
||||
var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,date_creation_ang : string;
|
||||
trouve_version,trouve_zip,zone_comm,LocZip : boolean;
|
||||
@@ -321,7 +292,7 @@ var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,date_creation_ang : s
|
||||
function supprime_anti(s : string) : string;
|
||||
var i : integer;
|
||||
begin
|
||||
// supprimer tous les \ dans la chaine
|
||||
// supprimer tous les \ dans la chaine
|
||||
i:=0;
|
||||
repeat
|
||||
i:=posEx('\',s,i+1);
|
||||
@@ -367,183 +338,171 @@ var description,s,s2,s3,Version_p,Url,LocalFile,nomfichier,date_creation_ang : s
|
||||
end;
|
||||
|
||||
begin
|
||||
//Affiche('vérifie version',clLime);
|
||||
Url:='https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest';
|
||||
LocalFile:='page.txt';
|
||||
trouve_version:=false;
|
||||
trouve_zip:=false;
|
||||
zone_comm:=false;
|
||||
Ncomm:=0;
|
||||
if DownloadURL_NOCache(Url,localFile,taille) then
|
||||
//Affiche('vérifie version',clLime);
|
||||
Url:='https://api.github.com/repos/f1iwq2/signaux_complexes_gl/releases/latest';
|
||||
LocalFile:='page.txt';
|
||||
trouve_version:=false;
|
||||
trouve_zip:=false;
|
||||
zone_comm:=false;
|
||||
Ncomm:=0;
|
||||
if DownloadURL_NOCache(Url,localFile,taille) then
|
||||
begin
|
||||
AssignFile(fichier,LocalFile);
|
||||
reset(fichier);
|
||||
while not(eof(fichier)) and (not(trouve_version) or not(trouve_zip)) do
|
||||
begin
|
||||
AssignFile(fichier,LocalFile);
|
||||
reset(fichier);
|
||||
readln(fichier,s);
|
||||
s:=utf8Decode(s);
|
||||
//Affiche(s,clyellow);
|
||||
// adresse de téléchargement
|
||||
s3:=extrait_champ('browser_download_url');
|
||||
if s3<>'' then trouve_zip:=true;
|
||||
|
||||
while not(eof(fichier)) and (not(trouve_version) or not(trouve_zip)) do
|
||||
// nombre de téléchargements
|
||||
nombre_tel:=extrait_champ_simple('download_count');
|
||||
|
||||
// date de création
|
||||
date_creation_ang:=extrait_champ('published_at');
|
||||
if date_creation_ang<>'' then
|
||||
begin
|
||||
readln(fichier,s);
|
||||
s:=utf8Decode(s);
|
||||
//Affiche(s,clyellow);
|
||||
|
||||
// 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('published_at');
|
||||
if date_creation_ang<>'' then
|
||||
begin
|
||||
//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;
|
||||
|
||||
// version publiée
|
||||
version_p:=extrait_champ('tag_name');
|
||||
if version_p<>'' then
|
||||
begin
|
||||
trouve_version:=true;
|
||||
if not(version_p[1] in ['0'..'9']) then delete(version_p,1,1);
|
||||
end;
|
||||
|
||||
description:=extrait_champ('body');
|
||||
if description<>'' then
|
||||
begin
|
||||
//description:=utf8Decode(description);
|
||||
i:=1 ; j:=1;
|
||||
// couper en chaînes
|
||||
repeat
|
||||
j:=pos('\r',description);
|
||||
if j<>0 then
|
||||
begin
|
||||
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;
|
||||
|
||||
until j=0;
|
||||
//
|
||||
ncomm:=i;
|
||||
comm[i]:=supprime_anti(description);
|
||||
|
||||
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;
|
||||
closefile(fichier);
|
||||
|
||||
if trouve_version and trouve_zip then
|
||||
// version publiée
|
||||
version_p:=extrait_champ('tag_name');
|
||||
if version_p<>'' then
|
||||
begin
|
||||
//----------------------------------------------------
|
||||
//isoler le nom du fichier
|
||||
i:=length(s3);
|
||||
trouve_version:=true;
|
||||
if not(version_p[1] in ['0'..'9']) then delete(version_p,1,1);
|
||||
end;
|
||||
|
||||
description:=extrait_champ('body');
|
||||
if description<>'' then
|
||||
begin
|
||||
//description:=utf8Decode(description);
|
||||
i:=1 ; j:=1;
|
||||
// couper en chaînes
|
||||
repeat
|
||||
dec(i);
|
||||
locZip:=s3[i]='/';
|
||||
until (i=1) or LocZip;
|
||||
nomfichier:=copy(s3,i+1,length(s3)-i);
|
||||
|
||||
//affiche(nombre_tel,cllime);
|
||||
|
||||
//Affiche(s3,clLime);
|
||||
//Affiche(nomfichier,clred);
|
||||
|
||||
// changer le . en ,
|
||||
s:=Version_p;
|
||||
// i:=pos('.',s);if i<>0 then s[i]:=',';
|
||||
s2:=version;
|
||||
// i:=pos('.',s2);if i<>0 then s2[i]:=',';
|
||||
|
||||
s:=AnsiUppercase(s);
|
||||
l:=length(s);
|
||||
SV_publie:=s[l];
|
||||
if Sv_publie in ['0'..'9'] then Sv_Publie:=' ' else begin s:=copy(s,1,l-1);Version_P:=s;end;
|
||||
|
||||
val(s,V_publie,erreur);
|
||||
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.Left:=10;
|
||||
FormVersion.show;
|
||||
s:='Vous utilisez la version '+version+SousVersion+' mais il existe la version '+Version_p+SV_publie;
|
||||
if nComm>0 then
|
||||
j:=pos('\r',description);
|
||||
if j<>0 then
|
||||
begin
|
||||
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 do aff(comm[i]);
|
||||
comm[i]:=copy(description,1,j-1);
|
||||
inc(i);
|
||||
delete(description,1,j+1);
|
||||
end;
|
||||
if MessageDlg(s+#13+'Voulez-vous la télécharger, l''installer et l''exécuter?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
||||
|
||||
j:=pos('\n',description);
|
||||
if j<>0 then
|
||||
begin
|
||||
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
||||
s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\'+Nomfichier;
|
||||
|
||||
essai:=false;
|
||||
|
||||
if not(essai) then
|
||||
begin
|
||||
Aff('Téléchargement de '+s3+' dans ');
|
||||
Aff(s);
|
||||
Affiche('Téléchargement de '+s3+' dans '+s,clLime);
|
||||
end;
|
||||
|
||||
if essai then
|
||||
begin
|
||||
Affiche('*** mode essai ***',clOrange);
|
||||
dezipe_copie(s);
|
||||
exit;
|
||||
end;
|
||||
|
||||
if DownloadURL_NOCache(s3,s,taille) then
|
||||
begin
|
||||
if taille>700000 then
|
||||
begin
|
||||
dezipe_copie(s);
|
||||
end
|
||||
else Aff('Echec 2 de téléchargement - taille invalide');
|
||||
end
|
||||
else Aff('Echec 1 de téléchargement');
|
||||
end
|
||||
else formVersion.close;
|
||||
end;
|
||||
result:=V_publie;
|
||||
end
|
||||
else
|
||||
begin
|
||||
result:=-1;
|
||||
affiche('Le dépôt ',clOrange);
|
||||
|
||||
formprinc.FenRich.SelStart:=length(formprinc.FenRich.Text);
|
||||
formprinc.FenRich.SelAttributes.Style:=[fsUnderline];
|
||||
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL/releases',clAqua);
|
||||
|
||||
Affiche('ne comprend aucune version diffusée.',clOrange);
|
||||
delete(description,j,2);
|
||||
end;
|
||||
until j=0;
|
||||
//
|
||||
ncomm:=i;
|
||||
comm[i]:=supprime_anti(description);
|
||||
end;
|
||||
end;
|
||||
closefile(fichier);
|
||||
|
||||
if trouve_version and trouve_zip then
|
||||
begin
|
||||
//----------------------------------------------------
|
||||
//isoler le nom du fichier
|
||||
i:=length(s3);
|
||||
repeat
|
||||
dec(i);
|
||||
locZip:=s3[i]='/';
|
||||
until (i=1) or LocZip;
|
||||
nomfichier:=copy(s3,i+1,length(s3)-i);
|
||||
//affiche(nombre_tel,cllime);
|
||||
//Affiche(s3,clLime);
|
||||
//Affiche(nomfichier,clred);
|
||||
// changer le . en ,
|
||||
s:=Version_p;
|
||||
// i:=pos('.',s);if i<>0 then s[i]:=',';
|
||||
s2:=version;
|
||||
// i:=pos('.',s2);if i<>0 then s2[i]:=',';
|
||||
|
||||
s:=AnsiUppercase(s);
|
||||
l:=length(s);
|
||||
SV_publie:=s[l];
|
||||
if Sv_publie in ['0'..'9'] then Sv_Publie:=' ' else begin s:=copy(s,1,l-1);Version_P:=s;end;
|
||||
val(s,V_publie,erreur);
|
||||
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.Left:=10;
|
||||
FormVersion.show;
|
||||
s:='Vous utilisez la version '+version+SousVersion+' mais il existe la version '+Version_p+SV_publie;
|
||||
if nComm>0 then
|
||||
begin
|
||||
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 do aff(comm[i]);
|
||||
end;
|
||||
if MessageDlg(s+#13+'Voulez-vous la télécharger, l''installer et l''exécuter?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
|
||||
begin
|
||||
// récupérer depuis la variable d'environnement windows USERPROFILE le repertoire de la session ouverte
|
||||
s:=GetCurrentProcessEnvVar('USERPROFILE')+'\Downloads\'+Nomfichier;
|
||||
|
||||
essai:=false;
|
||||
|
||||
// s3=url complete avecnom de fichier ex : 'https://github.com/f1iwq2/Signaux_complexes_GL/releases/download/V8.51/signaux_complexes_V8.51.zip'
|
||||
// s=répertoire+fichier de téléchargement ex : 'C:\Users\moi\Downloads\signaux_complexes_V8.51.zip'
|
||||
if not(essai) then
|
||||
begin
|
||||
Aff('Téléchargement de '+s3+' dans ');
|
||||
Aff(s);
|
||||
Affiche('Téléchargement de '+s3+' dans '+s,clLime);
|
||||
end;
|
||||
if essai then
|
||||
begin
|
||||
Affiche('*** mode essai ***',clOrange);
|
||||
dezipe_copie(s);
|
||||
exit;
|
||||
end;
|
||||
|
||||
// télécharge l'url (s3) dans le fichier s
|
||||
if DownloadURL_NOCache(s3,s,taille) then
|
||||
begin
|
||||
if taille>700000 then
|
||||
begin
|
||||
dezipe_copie(s); // dézipe et lance et termine le programme.
|
||||
end
|
||||
else Aff('Echec 2 de téléchargement - taille invalide');
|
||||
end
|
||||
else Aff('Echec 1 de téléchargement');
|
||||
end
|
||||
else formVersion.close;
|
||||
end;
|
||||
result:=V_publie;
|
||||
end
|
||||
else
|
||||
begin
|
||||
result:=0;
|
||||
Affiche('Pas d''accès au site github.com ou échec téléchargement',clorange);
|
||||
result:=-1;
|
||||
affiche('Le dépôt ',clOrange);
|
||||
formprinc.FenRich.SelStart:=length(formprinc.FenRich.Text);
|
||||
formprinc.FenRich.SelAttributes.Style:=[fsUnderline];
|
||||
Affiche('https://github.com/f1iwq2/Signaux_complexes_GL/releases',clAqua);
|
||||
Affiche('ne comprend aucune version diffusée.',clOrange);
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
result:=0;
|
||||
Affiche('Pas d''accès au site github.com ou échec téléchargement',clorange);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@@ -579,6 +538,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
// ne parche pas pour les répertoires non vides
|
||||
procedure DeleteDirectory(const DirName: string);
|
||||
var
|
||||
FileFolderOperation: TSHFileOpStruct;
|
||||
@@ -590,6 +550,19 @@ begin
|
||||
SHFileOperation(FileFolderOperation);
|
||||
end;
|
||||
|
||||
function DelDir(Dir: String): Boolean;
|
||||
var fos: TSHFileOpStruct;
|
||||
begin
|
||||
ZeroMemory(@fos,SizeOf(fos));
|
||||
with fos do
|
||||
begin
|
||||
wFunc:=FO_DELETE;
|
||||
fFlags:=FOF_SILENT or FOF_NOCONFIRMATION;
|
||||
pFrom:=PChar(Dir + #0);
|
||||
end;
|
||||
Result:=(0=ShFileOperation(fos));
|
||||
end;
|
||||
|
||||
function Unzip(zipfile : oleVariant): boolean;
|
||||
var
|
||||
shellobj,srcfldr, destfldr, shellfldritems,repertoire: Olevariant;
|
||||
@@ -604,27 +577,28 @@ begin
|
||||
filtre:=zipfile;
|
||||
delete(filtre,i,4);
|
||||
|
||||
if directoryExists(filtre) then DeleteDirectory(filtre);
|
||||
|
||||
{$I-}
|
||||
MkDir(filtre);
|
||||
erreur:=IoResult;
|
||||
{$I+}
|
||||
if erreur<>0 then
|
||||
// créer le répertoire destination du zip (obligatoire car la commande de dézippe ne le créée pas)
|
||||
if not(directoryExists(filtre)) then
|
||||
begin
|
||||
Affiche('Impossible de créer répertoire',clred);
|
||||
exit;
|
||||
{$I-}
|
||||
MkDir(filtre);
|
||||
erreur:=IoResult;
|
||||
{$I+}
|
||||
if erreur<>0 then
|
||||
begin
|
||||
log('Impossible de créer répertoire '+filtre+' erreur '+intToSTR(erreur),clred);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
repertoire:=filtre; // mettre dans olevariant
|
||||
|
||||
filtre:='';
|
||||
shellobj:=CreateOleObject('Shell.Application');
|
||||
|
||||
srcfldr:=ShellObj.NameSpace(Zipfile);
|
||||
if not ((VarType(srcfldr)=varDispatch) and Assigned(TVarData(srcfldr).VDispatch)) then
|
||||
if not((VarType(srcfldr)=varDispatch) and Assigned(TVarData(srcfldr).VDispatch)) then
|
||||
begin
|
||||
Affiche(zipfile+ ' invalide ou absent',clred);
|
||||
log('Fichier '+zipfile+ ' invalide ou absent',clred);
|
||||
result:=false;
|
||||
exit;
|
||||
end;
|
||||
@@ -632,7 +606,7 @@ begin
|
||||
destfldr:=ShellObj.NameSpace(repertoire);
|
||||
if not ((VarType(destfldr)=varDispatch) and Assigned(TVarData(destfldr).VDispatch)) then
|
||||
begin
|
||||
Affiche(' répertoire destination invalide : '+ repertoire,clred);
|
||||
log('Répertoire destination invalide : '+ repertoire,clred);
|
||||
result:=false;
|
||||
exit;
|
||||
end;
|
||||
|
||||
@@ -241,6 +241,12 @@ version 8.5 : Gestion de la centrale Z21 en mode autonome en Xpressnet.
|
||||
version 8.51 : Améliorations sur l'affichage des fenêtres aux démarrage.
|
||||
Création commandes des lignes DTR et RTS sur les périphériques COM/USB.
|
||||
Gestion des déconnexions matérielles des ports COM/USB.
|
||||
version 8.52 : Amélioration de l'installeur automatique.
|
||||
version 8.53 : Prise en compte des actionneurs dans le simulateur.
|
||||
Correction d'un bug sur l'affichage des TCO en mode exploitation.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user