Здравствуйте ! Нужна ваша помощь !!! Не могу добиться вызова окна Open_Window() с учётом выполнения проверки или запускается постоянно или закрывается совсем ...
проблема в том что в таком варианте в отладчике работает на ура - а когда делаю .exe НЕ ХОЧЕТ !
Код работает когда :
If LOF1<>LOF2: ProcedureReturn Open_Window() ; здесь был ноль : EndIf
вот сам код - его поправьте пожалуйста !!!
Global Pfad1$, Pfad2$ Global FontID2 = LoadFont(2, "Arial", 16) Global FontID3 = LoadFont(3, "Arial", 10) Pfad1$ = "a.txt Pfad2$ = "b.txt Procedure PosWinInfo(Window) If IsWindow(Window)>0 TrayWnd = FindWindow_("Shell_TrayWnd", 0) TrayNofifyWnd = FindWindowEx_(TrayWnd, 0, "TrayNotifyWnd", 0) GetWindowRect_(TrayNofifyWnd,@win.RECT) Win_x=GetSystemMetrics_(#SM_CXSCREEN)-WindowWidth(Window)-8 Win_y=GetSystemMetrics_(#SM_CYSCREEN)-(win\bottom-win\top)-WindowHeight(Window)-4 ResizeWindow(Window, Win_x, Win_y, #PB_Ignore, #PB_Ignore) EndIf EndProcedure Procedure Open_Window() OpenWindow(1,0,0,240,100,"",#PB_Window_BorderLess|#PB_Window_Invisible) PosWinInfo(1) StickyWindow(1, 1) SetWindowColor(1,RGB(229, 0, 99) ) TextGadget(1, 0, 10, 240, 50, "В Файл были внесенны изменения", #PB_Text_Center) SetGadgetFont(1, FontID2) SetGadgetColor(1, #PB_Gadget_BackColor, RGB(229, 0, 99)) ButtonGadget(2,10,70,100,24,"Закрыть") SetGadgetFont(2, FontID3) AnimateWindow_(WindowID(1), 800, #SW_SHOWNA) Repeat Event=WaitWindowEvent() Gadget=EventGadget() If Event=#PB_Event_Gadget If Gadget=2 CloseWindow(1) Break EndIf EndIf ForEver EndProcedure Procedure FileCompare(Pfad1$,Pfad2$) ; Содержание Сравнение двух файлов ; Result<0 ошибка ; Result=0 Файлы неравные ; Result=1 одинаковы Protected LOF1, LOF2, Count, Result, KSize KSize=1024*32 LOF1=FileSize(Pfad1$): If LOF1<0: ProcedureReturn -1: EndIf LOF2=FileSize(Pfad2$): If LOF2<0: ProcedureReturn -1: EndIf If LOF1<>LOF2: ProcedureReturn Open_Window() : EndIf If ReadFile(101,Pfad1$)=0: Result=-1: Goto FileCompareEnd: EndIf If ReadFile(102,Pfad2$)=0: Result=-1: Goto FileCompareEnd: EndIf *Buffer1=AllocateMemory(KSize): If *Buffer1=0: Result=-1: Goto FileCompareEnd: EndIf *Buffer2=AllocateMemory(KSize): If *Buffer2=0: Result=-1: Goto FileCompareEnd: EndIf CopyMemory(*Buffer1,*Buffer2,KSize) Result=1 Count=0 While LOF1>Count If (LOF1-Count)>KSize FileSeek(101,Count): ReadData(101,*Buffer1,KSize) FileSeek(102,Count): ReadData(102,*Buffer2,KSize) Count+KSize Else FileSeek(101,Count): ReadData(101,*Buffer1,LOF1-Count) FileSeek(102,Count): ReadData(102,*Buffer2,LOF1-Count) Count=LOF1 EndIf If CompareMemory(*Buffer1,*Buffer2,KSize)=0 Result=0 Count=LOF1 EndIf Wend FileCompareEnd: CloseFile(101) : CloseFile(102) FreeMemory(*Buffer1): FreeMemory(*Buffer2) ProcedureReturn Result EndProcedure Repeat TimeNEW = TimeNEW + ElapsedMilliseconds() - TimeOLD TimeOLD = ElapsedMilliseconds() If TimeNEW > 21 For i = 1 To TimeNEW If Pfad1$ <> Pfad2$ Debug FileCompare(Pfad1$,Pfad2$) ;Break TimeClr = 1 EndIf Delay(1000) Next EndIf If TimeClr = 1: TimeNEW = TimeNEW % 22: TimeClr = 0: EndIf Until Event=#PB_Event_CloseWindow
куда или как правильно вставить Open_Window() - плиз
Заранее спасибо
Отредактировано kaaamid (09.01.2013 04:30:45)