BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Серая форма из синего окна. Не работают модальные кнопки.

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Серая форма из синего окна. Не работают модальные кнопки.
 
Добрый день.

Такая проблема.
Вызываю форму из синих окон. Метод Form_create отрабатывается, форма отображается, ComboBox отрабатывается, даты из календаря выбираются.
А вот события по кнопкам не отрабатываются. Более того, форма не закрывается даже системным "крестиком" и БЭСТ на этом месте повисает.
Modalresult назначен, имена все проверил. Более того, запустил из синих окон форму, которая отлично работает при вызове через userbdll.txt. Она висит так же.

Сможет кто-то мне помочь?
С уважением, Новиков Алексей.
 
вызываете с помощью RunGrayFromBlue ?
 
Нет, просто RunForm
Сейчас попробую RunGrayFromBlue
С уважением, Новиков Алексей.
 
примеры запуска можно посмотреть в плагинах по аптеке.
 
Воспользовался RunGrayBlueForm
Но вот Вопрос - как с формами данными обмениваться?
Я так понимаю, в плагинах по аптеке Вы это делаете через дисковый файл. Сложновато как-то, на мой вкус.
С уважением, Новиков Алексей.
 
Через ::ReturnValue никак не получается?
С уважением, Новиков Алексей.
 
что-то мне подсказывает, что это самый простой путь.
 
Да, думаю, что опыт подсказывает.
Сделаю аналогично.
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
Я так понимаю, в плагинах по аптеке Вы это делаете через дисковый файл. Сложновато как-то, на мой вкус.
Это как то действительно сложновато.
Мы работаем и с переменными памяти. Алексей там все доступно - просто форма другого вида.
Для управления самой формой надо владеть ее SELF
 
Посмотрел трассу общения с Титовым, вот его ответ.
Вроде как все понятно.

[Forward note from Александр Титов -- 12.08.11 15:36:08]
Можно через строковую переменную, можно через межпотоковое взаимодействие:
Пример:
//Вызываем форму
RunGrayFromBlue(1,'sclad\frmExportTmc', cc, GetVirtualMashine() )
VMSHAREDDATALOCK() //блокируем область межпотокового взаимодействия
TRY
s:=VMSHAREDDATAGET(0, "ExportImportTmc") //читаем из области ID="ExportImportTmc"
END
IF VALTYPE(s)=="C"
aa:= s2a(s) //преобразование в массив
ELSE
aa:={}
ENDIF
VMSHAREDDATAFREE(0, "ExportImportTmc") //освобождаем область
VMSHAREDDATAUNLOCK() //разблокировка
........
А в самой форме записываем в область
METHOD btnOK_Click() CLASS frmExportTmc
LOCAL a,s
a:={::lblPath:Text,SaveRazd(ALLTRIM(::bLabelEdit1:text)),::cmbExportType:ItemIndex,::bLabelCombo1:ItemIndex,::bLabelCombo2:ItemIndex}
a2s(a,@s) //массив в строку
VMSHAREDDATALOCK()
VMSHAREDDATASET(0, "ExportImportTmc",s) //пишем
VMSHAREDDATAUNLOCK()
::Close()
ENDIF
RETURN .T.
 
Ну да, через файл может даже покороче будет...

// в форме
local nFile:=fcreate(::cFile)
fwrite(nFile, str(::bDatePeriodicity:itemindex,1,0)+::bDateDelivery:text+::bDateService:text)
fclose(nFile)

// в синих окнах
if !file(cFile) .or. (nFile:=fopen(cFile))<=0 .or. (HB_FReadLine(nFile, @cTmp), empty(cTmp))
break
endif
fclose(nFile)

cPeriodicity:=left(cTmp,1)
dDelivery:=ctod(substr(cTmp, 2,10))
dService:=ctod(substr(cTmp,12,10))
С уважением, Новиков Алексей.
 
ИМХО через потоки быстрее и удобнее.
Положил в трубу все что тебе надо и взял оттуда когда надо
Если инфа мизерная. то значения не имеет
Страницы: 1
Читают тему (гостей: 1)