EIP

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Здравствуйте, уважаемые коллеги!

Продолжаю борьбу с EIP в АВС. Хочу сделать следующее: при активации EIP в
поле появляется кнопочка, вызывается Lookup, значение переносится в
EntryField и редактирование продолжается.
Пишу:

Код: Выделить всё

EIPManager.TakeAction:
 LOC:EDITCONTROL=SELECTED()
 CREATE( 2000,CREATE:Button)
 2000{PROP:XPOS}=LOC:EDITCONTROL{PROP:XPOS}+LOC:EDITCONTROL{PROP:WIDTH}+6
 2000{PROP:YPOS}=LOC:EDITCONTROL{PROP:YPOS}+?List{PROP:YPOS}+1
 2000{PROP:WIDTH}=LOC:EDITCONTROL{PROP:HEIGHT}
 2000{PROP:HEIGHT}=LOC:EDITCONTROL{PROP:HEIGHT}
 2000{PROP:ICON}=?LIST{PROP:ICONLIST,1}
 UNHIDE( 2000)
Отлавливаю щелчок на второй колонке Browse:

Код: Выделить всё

EIPManager.TakeEvent
 IF ?List{PROP:Column}=2 THEN
  ?List{PROP:Column}=1
  REQ#=SELF.Request
  GlobalRequest = SelectRecord                   ! Set Action for Lookup
  P_I_Select                                     ! Call the Lookup Procedure
  SELF.Request=REQ#
  LOC:EDITCONTROL{PROP:USE}=ISP:FAM
  LOC:EDITCONTROL{PROP:TEXT}=P_I:NAME
  ISP:FAM=P_I:NAME
 .
В EIPManager.TakeCloseEvent пишу:

Код: Выделить всё

 
 HIDE( 2000)
 DESTROY( 2000)
Результат: все работает, вызывается и переносится в Entry Control, но при
попытке нажать Enter или Tab, т.е. закончить редактирование, получаю полный
GPF (Unable to create control. (System is modal)).

Что делаю не так и чем лечить?

Спасибо,
К.Р.
Написал: ClaList(2)
Гость

Сообщение Гость »

Hi
CREATE(2000,CREATE:Button)
А почему не проверенное временем

#ButtonControl = CREATE(0,CREATE:Button)

?
REQ#=SELF.Request
Имхо лишнее. SELF.Request не д.б. виден в P_I_Select
GlobalRequest = SelectRecord ! Set Action for Lookup
P_I_Select ! Call the
Lookup Procedure
А проверить результат? Может юзер отказался от выбора.
Что делаю не так и чем лечить?
ХЗ. Я бы отнаследовал от EditClass EditLookupClass. А написать можно по
аналогии с EditColorClass, EditFontClass или EditFileClass

WBR, Nick Tsigouro Mailto:N.Tsigouro@mtu-net.ru
Написал: ClaList(2)
Ответить