powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка при выходе из программы
25 сообщений из 26, страница 1 из 2
Ошибка при выходе из программы
    #36741322
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При закрытии программы (формы) появляется ошибка: "tablerevert(.t.,alias) error: 1925 unknown member pageframe1 method: destroy line: 28". На форме имеется текст бокс, у которого в событие interactive change прописан код для поиска с использованием фильтра. Если поле поиска пуста, то программа завершается корректно, иначе при выходе появляется вышеприведенная ошибка
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741360
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GanjubasПри закрытии программы (формы) появляется ошибка: "tablerevert(.t.,alias) error: 1925 unknown member pageframe1 method: destroy line: 28". На форме имеется текст бокс, у которого в событие interactive change прописан код для поиска с использованием фильтра. Если поле поиска пуста, то программа завершается корректно, иначе при выходе появляется вышеприведенная ошибка


метод дестрой формы нам покажите.
и откуда Вы его взяли?
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741383
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, метода destroy в программе нет
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741400
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ganjubasпрошелмимо, метода destroy в программе нет

метод у формы,
он не у программы.

вот откройте эту форму,
найдите метод дестрой и посмотрите, что Вы унаследовали.

когда раскопаете код, - покажите нам - вместе посмеЁмся.
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741473
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимоGanjubasпрошелмимо, метода destroy в программе нет

метод у формы,
он не у программы.

вот откройте эту форму,
найдите метод дестрой и посмотрите, что Вы унаследовали.

когда раскопаете код, - покажите нам - вместе посмеЁмся.а по-моему, дестрой надо смотреть не у формы, а у пейджфрейма.
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741480
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, посмеемся над чем? Над кодом разработчиков foxpro? Не смешно будет
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741490
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ganjubasпрошелмимо, посмеемся над чем? Над кодом разработчиков foxpro? Не смешно будет

ну хотя-бы над тем,
что видя сообщение об ошибке,
Вы не можете понять причину.

ищите метод дестрой у формы или объектов формы
и показывайте нам,
либо разбирайтесь самостоятельно
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741499
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ganjubas Если поле поиска пуста, то программа завершается корректно, иначе при выходе появляется вышеприведенная ошибка

в форум зачем это постить?
чтобы мы догадались, что там есть код нечто:

Код: plaintext
1.
2.
3.
if !empt(this.value)
   .....
endif
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741527
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirпрошелмимоGanjubasпрошелмимо, метода destroy в программе нет

метод у формы,
он не у программы.

вот откройте эту форму,
найдите метод дестрой и посмотрите, что Вы унаследовали.

когда раскопаете код, - покажите нам - вместе посмеЁмся.а по-моему, дестрой надо смотреть не у формы, а у пейджфрейма.


PF как раз на форме нет.
а у объекта, который рушится
как раз и есть код обращения к несуществующему PF.

если нужен этот пронаслед.объект со своим кодом,
то можно поставить костыль
Код: plaintext
1.
2.
3.
if pemstatus(thisform,"PF", 5 ) and vartype(thisform.PF)="O"
   .....
endif

что будет лучше, чем писать тупо
Код: plaintext
1.
2.
3.
if type("thisform.PF")="O"
   .....
endif
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741564
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо,
прошелмимоGanjubas Если поле поиска пуста, то программа завершается корректно, иначе при выходе появляется вышеприведенная ошибка

в форум зачем это постить?
чтобы мы догадались, что там есть код нечто:

Код: plaintext
1.
2.
3.
if !empt(this.value)
   .....
endif

нет чтобы вы поняли из-за чего появляется ошибка, и код там вовсе не такой
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36741571
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, прошелмимоGanjubasпрошелмимо, посмеемся над чем? Над кодом разработчиков foxpro? Не смешно будет

ну хотя-бы над тем,
что видя сообщение об ошибке,
Вы не можете понять причину.

ищите метод дестрой у формы или объектов формы
и показывайте нам,
либо разбирайтесь самостоятельно

Если понимал бы причину не писал бы здесь
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36742649
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ganjubasпрошелмимо, прошелмимоGanjubasпрошелмимо, посмеемся над чем? Над кодом разработчиков foxpro? Не смешно будет

ну хотя-бы над тем,
что видя сообщение об ошибке,
Вы не можете понять причину.

ищите метод дестрой у формы или объектов формы
и показывайте нам,
либо разбирайтесь самостоятельно

Если понимал бы причину не писал бы здесь

теперь понял?
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36744392
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GanjubasЕсли понимал бы причину не писал бы здесь
Понимай буквально сообщение об ошибке:
Ganjubastablerevert(.t.,alias) error: 1925 unknown member pageframe1 method: destroy line: 28
Ошибка 1925 - неизвестный объект pageframe1, обращение к нему в методе destroy() строка 28
Откуда взялось в сообщении "tablerevert(.t.,alias)" - не могу объяснить. Такого в сообщениях об ошибках не бывает.

Причина ошибки проста: на момент вызова метода Destroy() некоторых объектов может уже не быть, т.к. они уже уничтожены, и при попытки обратиться к этим объектам происходит эта ошибка.
Ищи у себя в коде формы и ее элементов метод Destroy() где прописано в 28-й строке обращение к pageframe1, когда этот код выполняется pageframe1 уже не существует. Возможно ошибка в коде родительского класса, если используется наследование.

Чтобы избежать эту ошибку перед обращением к объекту надо проверять его существование, о чем тебе писал прошелмимо.

Чтобы точнее понимать место возникновения ошибки - при формировании сообщения об ошибке сохраняй цепочку вызова через ASTACKINFO()
Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
on error do sayerror with error(),program(),message(),message( 1 ),lineno()
...

proc sayerror
LPARAMETERS tnError, tcMethod, tcMessage, tcMessage2, tnLine

local Array laStek[ 2 ]
lcStek = ''
for i =  1  to ASTACKINFO(laStek)
	if laStek[i,  3 ] != 'ON...'
		lcStek = lcStek + '->' + laStek[i,  3 ] + '(' + astr(laStek[i,  5 ]) + ')'
	endif
endfor
lcStek = substr(lcStek,  3 )

lcErrMessage = 'Error No.'+alltrim(str(tnError)) + ' line ' + alltrim(str(tnLine)) + ' in ' + tcMethod + ' ' + lcStek + '  ' + tcMessage
...
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #36745618
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
афтар топега по ходу похоже не понимает что у формы есть методы, которые срабатывают по определенным событиям, например: Destroy один из тех, что срабатывают при закрытии формы...

2Ganjubas
В методе Destroy твоей формы написан код, который пытается апдейтить таблицу: "tablerevert(.t.,alias)", но при этом, видимо, пытается использовать какие-то данные из какого-то PageFrame-а: "unknown member pageframe1". А почему ошибка? Потому что когда срабатывает Destroy формы, объекта pageframe1 уже может и не существовать, потому что он был уничтожен (Destroy) раньше формы, как оно и должно быть.
Почему после поиска ашипко есть, а без поиска - нет? Возможно в ходе поиска уничтожается тот самый pageframe1...

Еще раз:
почитай хелп про формы и ее методы.
Тебе все правильно здесь ответили - см. в метод Destroy формы, на которой лежит тот самый текстбокс "у которого в событие interactive change прописан код для поиска с использованием фильтра". Как его найти, этот метод? вот в чем вопрос! ответ: в дизайнере этой самой формы или ее класса и при помощи F1.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ошибка при выходе из программы
    #37846084
ValeoBrother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Error: 1925 unknown member COMBO1, не могу понять из-за чего ошибка:авторoFrm = CREATEOBJECT('MyForm')
oFrm.Show()

DEFINE CLASS MyForm AS Form
Height = 768
Width = 1024
AutoCenter = .T.
BorderStyle = 1
Caption = 'Âûãðóçêà ðååñòðà ëèñòêîâ íåòðóäîñïîñîáíîñòè b1.0'
MinButton = .F.

PROCEDURE Load
DODEFAULT()
ThisForm.AddProperty('aShipping[1]')
SELECT cShipping.SHIPPING FROM cShipping WHERE cShipping.ANK_RN = cAnk.ANK_RN INTO ARRAY ThisForm.aShipping
ENDPROC

ADD OBJECT Grid1 AS Grid WITH;
Left = 5,;
Top = 45,;
Height = 683,;
Width = 1019,;
Anchor = 15,;
Visible = .T.,;
RecordSource = 'cAnk',;
ColumnCount = 3,;
ScrollBars = 2,;
DeleteMark = .F.,;
RecordMark = .F.

PROCEDURE Grid1.Init
ThisForm.Grid1.FontSize = 8
ThisForm.Grid1.RowHeight = 23
WITH ThisForm.Grid1.Column1
.Width = 25
.Header1.Caption = ''
.Header1.Alignment = 2
.ControlSource = 'PADL(ALLTRIM(cAnk.REC), 3, " ")'
ENDWITH

WITH ThisForm.Grid1.Column2
.Width = 275
.Header1.Caption = 'Ñîòðóäíèê'
.Header1.Alignment = 2
.ControlSource = 'ALLTRIM(cAnk.SURNAME) + " " + ALLTRIM(cAnk.FIRSTNAME)+ " " + ALLTRIM(cAnk.SECONDNAME)'
ENDWITH

WITH ThisForm.Grid1.Column3
.Width = 1700
.Header1.Caption = 'Âèä ïåðåâîäà'
.Header1.Alignment = 2
.ControlSource = 'cAnk.SHIPPING'
.RemoveObject('Text1')
.AddObject('Combo1', 'ComboBox')
.Combo1.Visible = .T.
.Combo1.FontSize = 8
.Combo1.Style = 2
.Combo1.RowSource = 'ThisForm.aShipping'
.Combo1.RowSourceType = 5
ENDWITH
ENDPROC

PROCEDURE Grid1.Column3.Combo1.When()
SELECT cShipping.SHIPPING FROM cShipping WHERE cShipping.ANK_RN = cAnk.ANK_RN INTO ARRAY ThisForm.aShipping
ThisForm.Grid1.Column3.Combo1.Requery()
ENDPROC
ENDDEFINE
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846117
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeoBrotherError: 1925 unknown member COMBO1, не могу понять из-за чего ошибка:А где у вас добавляется объект COMBO1 ?
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846272
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeoBrotherЗдравствуйте! Error: 1925 unknown member COMBO1, не могу понять из-за чего ошибка:автор WITH ThisForm.Grid1.Column3
.Width = 1700
.Header1.Caption = 'Âèä ïåðåâîäà'
.Header1.Alignment = 2
.ControlSource = 'cAnk.SHIPPING'
.RemoveObject('Text1')
.AddObject('Combo1', 'ComboBox')

.CurrentControl = "Combo1"

.Combo1.Visible = .T.
.Combo1.FontSize = 8
.Combo1.Style = 2
.Combo1.RowSource = 'ThisForm.aShipping'
.Combo1.RowSourceType = 5
ENDWITH
ENDPROC

PROCEDURE Grid1.Column3.Combo1.When()
SELECT cShipping.SHIPPING FROM cShipping WHERE cShipping.ANK_RN = cAnk.ANK_RN INTO ARRAY ThisForm.aShipping
ThisForm.Grid1.Column3.Combo1.Requery()
ENDPROC
ENDDEFINE
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846672
ValeoBrother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Но проблема не решена, ругается "Unknown member COMBO1" по прежнему на PROCEDURE Grid1.Column3.Combo1.When()
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846721
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeoBrotherСпасибо! Но проблема не решена, ругается "Unknown member COMBO1" по прежнему на PROCEDURE Grid1.Column3.Combo1.When()Ну так добавьте этот объект в GRId-> Column3. В чем проблема?
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846746
ValeoBrother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В коде я это сделалавторThisForm.Grid1.Column3.RemoveObject('Text1')
ThisForm.Grid1.Column3.AddObject('Combo1', 'ComboBox') или я что-то не догоняю?
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846754
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: ValeoBrother
> Спасибо! Но проблема не решена ...

Сделай там не Requery(), а переназнач RowSource у Combo1

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846789
ValeoBrother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846845
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: ValeoBrother

Понятно, сделай класс Combo и добавляй его в Column вместо стандартного. И в этом классе сделай обработку When.
или при помощи BindEvent подпишись на получение событий от Combo1 в нужный метод.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37846940
ValeoBrother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос> Автор: ValeoBrother

Понятно, сделай класс Combo и добавляй его в Column вместо стандартного. И в этом классе сделай обработку When.
или при помощи BindEvent подпишись на получение событий от Combo1 в нужный метод.


Спасибо Вам и всем кто откликнулся! Получилось! Не сочтите за трудность, объяснить вкратце, почему была ошибка?
Непонятным для меня осталось так же, если при добавлении Grid1 прописать FontSize = 8, то FontSize как был 9 так и остался.
Приходиться в Grid1.Init добавлять Grid1.FontSize = 8
...
Рейтинг: 0 / 0
Ошибка при выходе из программы
    #37847040
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: ValeoBrother
> объяснить вкратце, почему была ошибка?
> Непонятным для меня осталось так же,

В общем случае потому, что при указывании RecordSource в гриде или ColumnCount в гриде создаются объекты Column'ов из
стандартного класса фокспро и в них добавляются контролы, как правило TextBox, для отображения информации. Так вот эти
создаваемые объекты ничего не знают о ваших установках и поэтому нужно делать эти установки уже при заполненном гриде.
Тогда грид, как контейнер, передает "своим" объектам новые значения свойств.

А сама ошибка была в том, что Вы пытались указать обработчик для комбобокса который был в гриде, а фокспро не
поддерживает такой формат указания метода-обработчика. Поэтому здесь это делается или через свой класс с обработчиком
нужных событий или через перенаправление событий при помощи BindEvents в свой метод.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка при выходе из программы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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