purebasic.info

PureBasic forum
Текущее время: Вт дек 11, 2018 5:38 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Работа с отладчиком
СообщениеДобавлено: Чт янв 17, 2008 2:40 pm 
Не в сети
док

Зарегистрирован: Вт сен 18, 2007 9:16 am
Сообщений: 162
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Все прЮвет! Отсутствовал, дел по горло, выходит сразу три наших игры, я везде задействован... Всех с прошедщим, кстати =)

Итак.. В КодАрхиве есть пара примеров для работы с окном вывода отладчика, но по некоторым причинам они не будут работать. Выкладываю свои фиксы...

Очистка содержимого окна Debug Output
Код:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
; English forum: http://www.purebasic.fr/english/viewtopic.php?t=8562&highlight=
; Author: Danilo
; Date: 14. December 2003
; OS: Windows
; Demo: No
 
;
; by Danilo, 14.12.2003 - english forum
;
; fixed by SofT MANiAC, 14.01.2008 - russian forum
;
Procedure DebugClear_Callback(hWnd,Value)
  result = 1
  ClassName$ = Space(100)
  GetClassName_(hWnd,@ClassName$,100)
  If ClassName$ = "ListBox"
     Count = SendMessage_(hWnd,#LB_GETCOUNT,0,0)
     If Count > 0
       SendMessage_(hWnd,#WM_SETREDRAW,0,0)
       For a = 0 To Count - 1
         SendMessage_(hWnd,#LB_DELETESTRING,0,0)
       Next a
       SendMessage_(hWnd,#WM_SETREDRAW,1,0)
       InvalidateRect_(hWnd,0,1)
     EndIf
     result = 0
  EndIf
  ProcedureReturn result
EndProcedure
 
Procedure DebugClear()
  hDebug = FindWindow_(0,"Debug Output - " + #PB_Compiler_File)
  If hDebug
    EnumChildWindows_(hDebug, @DebugClear_Callback(),0)
;  Else
;    MessageRequester("DEBUG CLEAR","Debugger Disabled!",#MB_ICONERROR)
  EndIf
EndProcedure
 
 
For a = 1 To 100
  Debug Str(a)
Next a
 
Delay(1000)
 
DebugClear()
 
Debug 12



Сохранение Debug Output в файл:
Код:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=2851&highlight=
; Author: Danilo (posted by Rings)
; Date: 18. November 2003
; OS: Windows
; Demo: No
;
; fixed by SofT MANiAC, 14.01.2008 - russian forum
;
 
Procedure SaveDebugTextCallback(hWnd,Value)
  ClassName$ = Space(100)
  GetClassName_(hWnd,@ClassName$,100)
  If ClassName$ = "ListBox"
     Count = SendMessage_(hWnd,#LB_GETCOUNT,0,0)
     If Count = 0
        MessageRequester("DEBUG SAVE","No Data in Debug Output",#MB_ICONINFORMATION)
     Else
        If OpenFile(1,PeekS(Value))
           FileSeek(1,Lof(1))
           WriteStringN(1,";---[ New Entry ]-------")
           GetLocalTime_(time.SYSTEMTIME)
           WriteStringN(1,"; - Date: "+StrU(time\wDay,1)+"."+StrU(time\wMonth,1)+"."+StrU(time\wYear,1))
           WriteStringN(1,"; - Time: "+StrU(time\wHour,1)+":"+StrU(time\wMinute,1))
            For a = 0 To Count - 1
                Length = SendMessage_(hWnd,#LB_GETTEXTLEN,a,0)
                Text$   = Space(Length)
                SendMessage_(hWnd,#LB_GETTEXT,a,@Text$)
                WriteStringN(1,"  | "+Text$)
            Next a
           WriteStringN(1,";---[ End Entry ]-------")
           WriteStringN(1,"")
           CloseFile(1)
           MessageRequester("DEBUG SAVE","Saved Debugger Output to:"+Chr(13)+PeekS(Value),#MB_ICONINFORMATION)
        Else
           MessageRequester("DEBUG SAVE","Couldnt save Debug Output",#MB_ICONERROR)
        EndIf
     EndIf
  EndIf
ProcedureReturn 1
EndProcedure
 
 
Procedure SaveDebugOutput(File$)
hDebug = FindWindow_(0, "Debug Output - " + #PB_Compiler_File)
If hDebug
   EnumChildWindows_(hDebug,@SaveDebugTextCallback(),@File$)
Else
   MessageRequester("DEBUG SAVE","Debugger Disabled or different Window name!",#MB_ICONERROR)
EndIf
EndProcedure
 
 
; Code Start
 
;SaveDebugOutput("c:\PB_DEBUG.TXT")
Debug "TEST"
Debug Str(12)+" PureBasic Debug"
Debug "testing..."
Debug 123456
Delay (1000)
SaveDebugOutput("c:\PB_DEBUG.TXT")


_________________
Люди!! Уважайте друг друга!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB