powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ошибка при открытии класса(формы)
19 сообщений из 19, страница 1 из 1
Ошибка при открытии класса(формы)
    #34970358
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет !
подскажите в чем может быть причина того что один и тот же код в одном случае работает а в другом выдает ошибку
вот кусок кода
Код: plaintext
1.
2.
3.
4.
5.
  n frm
  s frm=##class(JokerMessage).%New($lb())
  d frm.Form.ShowModal()
  d frm.Form.Close()
  q  1 

... показыывает форму

при выполнении этого кода в методе класса "X" код отрабатывает нармально при выполнении из класса "Y" получаю ошибку см. скрин

классы "X" и "Y" - %Library.RegisteredObject

в чем причина ошибки никак не разберусь....
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34970492
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каше какой версии?
Если 5.2 и выше, скомпилите классы с ключем "k" и посмотрите на ошибку еще раз. Там будет сказано, что же "undefined".
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34970495
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без кода классов сказать что-то наверно тяжело.
В вашем случае возможно нужно смотреть на метод OnNew
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34970616
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При компеляции ошибок нет, версия каше 5.02

код OnNew
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 n result
 i initvalue="" q $$$OK
 s %SMWOrefs(+%this)=%this
 d %this.Initialization(initvalue)
 s result=%this.OnCreate(initvalue)
 i result'=$$$OK  d
 . d %this.Form.%Close()
 . k %SMWOrefs(+%this)
 e  d %this.Form.SetContainer(+%this)
 q result

код Initialization
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 s MApplication.ClientState="Loading"
 s %this.Form=##class(%Library.TMForm).%New(initvalue)
 s %this.Memo1=##class(%TMMemo).%New($lb(%this.Form.Address, 0 ))
 s %this.Button1=##class(%TMButton).%New($lb(%this.Form.Address, 0 ))
 s MApplication.ClientState="NoWait"
 d %this.Form.SetMultiProperty($lb("Left","Top","BorderStyle","Caption","ClientHeight","ClientWidth","Color","OldCreateOrder","Position","PixelsPerInch"),$lb( 0 , 0 ,"bsDialog","Èíôîðìàöèÿ", 186 , 319 ,$$$clBtnFace,"False","poDesktopCenter", 96 ))
 d %this.Form.Font.SetMultiProperty($lb("Charset","Color","Height","Name","Style"),$lb($$$RUSSIANCHARSET,$$$clWindowText,- 13 ,"Courier New",$lb()))
 d %this.Memo1.SetMultiProperty($lb("Left","Top","Width","Height","Align"),$lb( 0 , 0 , 319 , 145 ,"alTop"))
 d %this.Memo1.Lines.SetMultiProperty($lb("Strings"),$lb(""))
 d %this.Memo1.SetMultiProperty($lb("ReadOnly","TabOrder"),$lb("True", 0 ))
 d %this.Button1.SetMultiProperty($lb("Left","Top","Width","Height","Caption","TabOrder","OnClick"),$lb( 109 , 153 , 113 , 25 ,"Çàêðûòü", 1 ,$lb(%this,"Button1Click")))
 s MApplication.ClientState="Wait"
 q
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34970972
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое у меня случалось если передавать В параметре %New пустой список $Lb().
Я передаю $Lb(..Address,) - адрес вызывающего класса и пока все работает.
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971527
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь СойниковТакое у меня случалось если передавать В параметре %New пустой список $Lb().
Я передаю $Lb(..Address,) - адрес вызывающего класса и пока все работает.

щас попробую...
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971590
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь СойниковТакое у меня случалось если передавать В параметре %New пустой список $Lb().
Я передаю $Lb(..Address,) - адрес вызывающего класса и пока все работает.

тот же результат... - ошибка
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971646
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант:
Судя по сообщению, ошибка в первой строке
Код: plaintext
s MApplication.ClientState="Loading"
То есть не определена переменная MApplication.
Тут два варианта
1)если у Initialization есть параметр MApplication, то нужно смотреть на место вызова, что там передаётся;
2)Если параметра такого нет, может быть, в том классе в котором код работает ProcedureBlock выключен, а где не работает -- включен
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971667
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр КобловКак вариант:
Судя по сообщению, ошибка в первой строке
Код: plaintext
s MApplication.ClientState="Loading"
То есть не определена переменная MApplication.
Тут два варианта
1)если у Initialization есть параметр MApplication, то нужно смотреть на место вызова, что там передаётся;
2)Если параметра такого нет, может быть, в том классе в котором код работает ProcedureBlock выключен, а где не работает -- включен
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST

ProcedureBlock выключен в обеих классах

у Initialization esnm входной параметр initvalue:%String

а как посмотреть что передаеться в этом параметре ?
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971686
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я write'ом в терминале смотрю :-). Можно в глобал какой-нибудь писать.
Если ProcedureBlock выключен, то нужно смотреть, почему MApplication не определена к тому времени как вызывается Initialization
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971723
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр КобловНу я write'ом в терминале смотрю :-). Можно в глобал какой-нибудь писать.
Если ProcedureBlock выключен, то нужно смотреть, почему MApplication не определена к тому времени как вызывается Initialization
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST

Mapplication я так понял это глобальная переменная как она может быть не определенна для первого класса и определенна для второго ?
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34971772
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глобальные переменные начинаются с ^ и Oref в них, кажется, не хранятся.
А MApplication -- локальная переменная и определяется во время выполнения программы и хранится максимум пока существует процесс
Дока: http://127.0.0.1:8972/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_variables
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34973792
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Попробуйте добавить к вызову имя пакета.

Код: plaintext
1.
  s frm=##class(your.package.JokerMessage).%New($lb())

Любви.
logist (Сергей Шутов)
ООО Димас, Хабаровск
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34974120
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logistПривет!

Попробуйте добавить к вызову имя пакета.

Код: plaintext
1.
  s frm=##class(your.package.JokerMessage).%New($lb())

Любви.
logist (Сергей Шутов)
ООО Димас, Хабаровск


нет .... тож не помогло
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34974186
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил вот такую строчку....
i '$g(MApplication) s MApplication=##class(%Library.TMApplication).%New($lb(""""))

получаю ошибку при вызове метода Cannot create more then 1 object of TMApplication.

значит переменная существует, а почему к ней обратиться нельзя из текущего метода не понятно
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34974836
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это класс, наследованный от классов приложения SMWrap в терминале работать никогда не будет.
т.к. по аналогии с Delphi MApplication - аналог Application и формируется средой выполнения т.е. SWWrap(run-time) smwrt.exe
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34975908
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как же тогда быть .. вопрос остается открытым... почему один и тот же метот из при выхове из разных класов работает по разному в первом случае работает во втором выдает ошибку UNDEFINED
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34977726
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что ты написал Это метод инициализации формы и работает только в SMWRAP , если класс унаследован от классов %TM* , то такие классы работать в другой среде не будут.
Зачем запускать форму из приложения не пригодного для этого???
...
Рейтинг: 0 / 0
Ошибка при открытии класса(формы)
    #34979913
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот метод запускается из одного проекта просто выполняется под разными кнопками.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ошибка при открытии класса(формы)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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