Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите! Как отладить программу / 13 сообщений из 13, страница 1 из 1
23.04.2007, 09:59
    #34479417
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Написал программу, стал проверять. Дома работает как runtime, так и из оболочки FoxPro. На работе из оболочки работает, в runtime работает только, если форму вызывать сразу из main.prg в виде DO FROM work, а если из меню ON SELECTION то вываливается с ошибкой (см. ниже), причем это происходит из-за грида у которого переопределен класс Column. Т.е. если в режиме дизайнера заказать кол-во колонок, то программа падает, а если это делать программно, то почему-то нет 8((( Но нужен дизайнер, т.к. наглядно. Вопрос, как оттрейсить и локализовать ошибку. Делал путем отсечения лишних частей, но форма падает до загрузки 8( и куда копать не знаю.

-------------------------------------------------------------------------
Серьезная ошибка: Код исключения=C0000005 @ 23.04.2007 08:27:54. Файл журнала ошибок: C:\Program Files\Common Files\Microsoft Shared\VFP\VFP9rerr.log
Вызов из - ON... line 117 {d:\mo19\vfp9_app\prg\main.prg d:\mo19\vfp9_app\project.exe}
-------------------------------------------------------------------------
...
Рейтинг: 0 / 0
23.04.2007, 10:08
    #34479433
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Точнее метод Load формы исполняется, но Init уже нет
...
Рейтинг: 0 / 0
23.04.2007, 10:10
    #34479437
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
код покажи

классс Column

и строчку 117 из d:\mo19\vfp9_app\prg\main.prg
...
Рейтинг: 0 / 0
23.04.2007, 10:11
    #34479439
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
а еще лучше

маленький примерчик

прг + формочка
...
Рейтинг: 0 / 0
23.04.2007, 10:15
    #34479460
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
В том-то и дело, где я эту строчку возьму 8( тем более 117. Примерчик маленький попробую навалять, но скорее он у вас будет работать. Может это из-за переопределения класса колонки?
...
Рейтинг: 0 / 0
23.04.2007, 10:23
    #34479480
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
покажите код

иначе, сказать что-то определенно невозможно

да, скорее всего в классе что-то не так

нужно смотреть Ваш код
что в лоаде формы написсано, что в ините

Ваши контролы взлетают до старта метода инит формы
(инит контролов идет раньше инита формы)
вот и нужно смотреть, что у Вас валит фокс
...
Рейтинг: 0 / 0
23.04.2007, 10:34
    #34479518
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Pr0teusТочнее метод Load формы исполняется, но Init уже нет
Поставь в Load() set step on и дальше отладчиком пошагово.
...
Рейтинг: 0 / 0
23.04.2007, 10:40
    #34479537
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
последовательность взлета формы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DATAENVIRONMENT.OPENTABLES
DATAENVIRONMENT.BEFOREOPENTABLES
FORM.LOAD
INIT for each cursor in the DataEnvironment
DATAENVIRONMENT.INIT
INIT for each control in the form
FORM.INIT
FORM.SHOW
FORM.ACTIVATE
FORM.REFRESH
WHEN for 1st control in TabOrder
GOTFOCUS for 1st Control in TabOrder (if it has one)
...
Рейтинг: 0 / 0
23.04.2007, 10:53
    #34479582
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Ошибка возникает на Windows 2000, говорит память не может быть read. На XP нормально, и на других компах тоже с 2000. На моем такая фигня.
...
Рейтинг: 0 / 0
23.04.2007, 11:29
    #34479693
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Ошибка возникает в следующем случае. А именно
1. Создаю файл sgrdclass.prg

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DEFINE CLASS SHEADER AS HEADER
  Name = "SHEADER"
ENDDEFINE

DEFINE CLASS SCOLUMN AS COLUMN
  Name = "SCOLUMN"
  HeaderClass = "SHEADER"
  HeaderClassLibrary = "sgrdclass.prg"
ENDDEFINE


2. Создаю форму, на которую кладу стандарный грид. В нем переопределяю MemberClassLibrary на sgrdclass.prg. Свойство ColumnCount выставляю в 1 ( Если оставить -1, то ошибки не будет )

3. Создаю main.prg

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SET PATH TO frm, prg
SET PROCEDURE TO sgrdclass

DEFINE PAD m_Test OF _MSYSMENU PROMPT "Тест" COLOR SCHEME  3 
ON PAD m_Test    OF _MSYSMENU ACTIVATE POPUP p_Test
DEFINE POPUP p_Test MARGIN RELATIVE SHADOW COLOR SCHEME  4 
DEFINE BAR  1  OF p_Test PROMPT "Тестовая форма"

ON SELECTION BAR  1  OF p_Test DO FORM Main

READ EVENTS

4. В итоге вылетает, когда выбираю соответствующий пункт меню (

5. Если main.prg написать сл. образом, то работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
SET PATH TO frm, prg
SET PROCEDURE TO sgrdclass

DO FORM Main
READ EVENTS


Где грабли хз? И почему мне такие ошибки попадаются 8(
...
Рейтинг: 0 / 0
23.04.2007, 11:38
    #34479725
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
ну вы же сами и увидели ошибку

ColumnCount определять не нужно
ColumnCount присвоится само при добавлении колонки

controlcount = 0
на взлете он сам вставит текстбокс
и сам присвоит количество контролов
...
Рейтинг: 0 / 0
23.04.2007, 11:52
    #34479771
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Хорошо, но как тогда в дизайнере высветить нужные мне колонки???? Чтобы легче было их свойства задать, или же все делать программно в коде перед загрузкой данных.
...
Рейтинг: 0 / 0
23.04.2007, 13:26
    #34480136
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите! Как отладить программу
Удалось побороть следующим способом. В ON SELECTION вызываю не DO FORM, а процедуру, которая в свою очередь вызывает DO FORM. Тогда можно спокойно устанавливать колонки в дизайнере.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SET PATH TO frm, prg
SET PROCEDURE TO sgrdclass

DEFINE PAD m_Test OF _MSYSMENU PROMPT "Тест" COLOR SCHEME  3 
ON PAD m_Test    OF _MSYSMENU ACTIVATE POPUP p_Test
DEFINE POPUP p_Test MARGIN RELATIVE SHADOW COLOR SCHEME  4 
DEFINE BAR  1  OF p_Test PROMPT "Тестовая форма"

ON SELECTION BAR  1  OF p_Test ShowForm()
READ EVENTS


PROCEDURE ShowForm
   DO FORM Main
ENDPROC

...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите! Как отладить программу / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]