Clarion 11-12

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

Дед Пахом писал(а): 12 Сентябрь 2021, 15:20
talgat55 писал(а): 12 Сентябрь 2021, 5:33 Exception code C0000005: Access Violation
Эта ошибка обычно говорит о том, что не та dll вызывается.
Прикольно. Вроде хотел без dll собрать, с одним exe-шником.
We are hard at work… for you. :)
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

про вызовы w1 w2 ( см.выше ) Запускаю main в w2 через start ( main,2400 ) - тишина. Вызываю просто main - запускается, но в диспетчере как будто 2 раза запущенный exe ( приложение.exe(2) ) ??
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

2400 наверно маловато. Нужно 25000 или 35000. Да и вообще непонятно зачем запускать через start. Start для запуска внутри фрейма.
We are hard at work… for you. :)
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

а как запускать в указанном случае ?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

talgat55 писал(а): 12 Сентябрь 2021, 17:43 а как запускать в указанном случае ?
Мне непонятно как у Вас организована программа. Вызывать фрейм надо без start'а. У меня программа может быть устроена похоже как у Вас. Сначала в source процедуре считываются настройки коннекта к серверу, коннектится к нему, вызывается диалоговое окно с приглашением пользователя и выбором модуля ("Бухгалтерия", "Торговля", ...). И вызывается конкретный фрейм, без start'а. Вот так, банально:

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

   case GLO:ProgramName
     of 'Торговля'
                           MainTrade
     of 'Бухгалтерия'
                           MainAcc
     of 'Производство'
                           MainProd
     of 'Зарплата и Кадры'
                           MainStaff
     ...                      
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

A не проще будет запустить Main (AppFrame) и в нём сделать вызов процедур для получения настроек ?
Например до OpenFiles. Без всяких Start() - здесь не нужны потоки.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

Да, есть вот такой вариант. Во фрейме, до "Open Files":

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

if PAROL(2)
  return Level:Cancel
end 
We are hard at work… for you. :)
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

я расписарил выше - w1 вызывает w2 вызывает main - все это прекрасно работает в с63 (abc mssql) уже с десяток лет
в с11 эта схема не будет работать получается ?
И еще в main у меня уже объявлены в схеме таблиц несколько MSSQL таблиц. Где эта embed перед open files - чтоб я мог впихнуть пути к этим таблицам ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

talgat55 писал(а): 13 Сентябрь 2021, 6:18 эта схема не будет работать получается
Абсолютно точно могу Вам сказать, что C11 - это не C63.
Нет смысла жаловаться, что там работало, а тут не работает.
Тем более, что Вы пропустили развитие и изменения в С7-С10.

Ну и в любой схеме работы должен быть некий здравый смысл, наверное ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

А чего "нездравого" в схеме - w1 - connect для sql server - вызывает w2 со списком пользователей (mssql tabl ) - затем запускается main с sql tabl у которого перед openwindow hide- ятся те или иные пункты меню в menubar и buton-ы в toolbar-е в зависимости от прав каждого пользователя
?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

talgat55 писал(а): 13 Сентябрь 2021, 7:08 А чего "нездравого" в схеме
Всё предельно круто. 8) Но зачем в этих запусках используется запуск потока Start() ?
Если позволите, я процитирую кусочек описания из справки:
Выполнение кода в последовательности запуска немедленно продлевается следующим за START выражением и длится, пока выражение ACCEPT не будет выполнено.
Т.е. грубо говоря: Вы даёте команду на запуск потока и сразу завершаете работу приложения.
Здесь начинается игра "кто быстрей". В C63 быстрей запускался поток и блокировал завершение приложения.
Видимо в C11 поток инициализируется дольше и на момент его запуска приложение уже успело завершиться. :(
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

убрал я start в w1 и w2 запускаю просто w2 и main . Проблемы остаются
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

talgat55 писал(а): 13 Сентябрь 2021, 8:50 запускаю просто w2 и main
Поставьте какой-нибудь Message('Сейчас запустим MAIN !') перед запуском MAIN.
И Message('Запустили MAIN !') внутри MAIN, что бы понять где именно у Вас происходит несчастье.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

talgat55 писал(а): 13 Сентябрь 2021, 6:18 Где эта embed перед open files - чтоб я мог впихнуть пути к этим таблицам ?
Если что, то это метод Init WindowManager'а. На самом деле проблема может быть в другом. Может приведёте код, который не работает? Я, например, не понимаю как всё организовано.
We are hard at work… for you. :)
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

Clarion 11-12

Сообщение talgat55 »

Приложение запускается без проблем. Но в процессах как будто дублируется - загружено Имя.exe(3) Окна w1 w2 не закрываются - не срабатывает команда close(window) - из-за них похоже exe(3) В открывшемся приложении при закрытии некоторых окон - зависает все
Ответить