Haz: mshep пишет: Это в смысле Dt = CTOD(Space(8)) типа? да примерно так , только я использовал CTOD("")
SergKis: mshep пишет назначение цвета фона, Bold'а и проч для ячейки в таблице Word по-новому? Посмотрите пример Advanced\Tsb_Export, там 2а пункта меню "Export" для Wordа
mshep: Haz пишет: да примерно так , только я использовал CTOD("") В те старые времена, когда я увидел Clipper, было принято писать так. И не думать лишнего...
Haz: mshep пишет: В те старые времена, когда я увидел Clipper Вот с тех времен так и пишу
mshep: Мы в разных котелках варились..... ((( У меня персоналки и клиппер - последняя лебединная песня после М33М,М32 (не путать категорически с предыдущим - абс разн система команд!!), АСВТ, ЕС, PDP, СМ1420(?), снова ЕС, персоналки+ЕС и потом своб поиск. В определенном возрасте какой-то штамп забивается в голову и потом его уже не выкурить... ((( А Tsb_Export из примеров у меня не пошел - что-то типа переполнения, отгуляю Благовещение и посмотрю.... Ох, доживете вы, ребята, до той поры, когда лень и в падлу что-то рассматривать и думать, у меня уже с десяток лет такое... (((
mshep: P.S.. Минск 22М конечно, клешни уже не попадают по фишкам... (((
Andrey: mshep пишет: Какой-нибудь добрый человек бросит еще дедешке назначение цвета фона, Bold'а и проч для ячейки в таблице Word по-новому? Вот ссылки по Ворду и Экселю http://hmgextended.com/applications.html
rvu: Dima пишет: Собственно идея взята тут C:\MiniGUI\SAMPLES\Advanced\IsExeRunning\demo.prg Вторую копию проги не запустить. Примера с таким названием уже нет, но неважно, я, наверное, нечто подобное использую, тоже из какого-то примера взял: hWnd := FindWindowEx( ,,, cAppTitle ) if hWnd # 0 iif( IsIconic( hWnd ), _Restore( hWnd ), SetForeGroundWindow( hWnd ) ) ExitProcess( 0 ) endif Но запустить много раз программу удается, обнаружилось это случайно. Таким путем: программу запускают из FARа, он активен, курсор стоит на программе. От компьютера отошли надолго. Его диск по неактивности отключился, потом пришли и нажали Enter много раз пока диск раскручивался. Получили много запущенных копий программ. Как я понял, они параллельно запускаются практически одновременно и обработка за этим не поспевает, при запуске у всех этих программ hWnd=0. Кто-нибудь с этим сталкивался, боролся? Готовые решения есть? Запускать процедуру, которая через пару секунд будет анализировать эти окна? Но этих процедур тогда тоже будет запущено столько же, сколько и окон. Я впал в задумчивость. На форуме проблема закрытия окон поднималась много раз, может быть, кто-то уже об этом думал?
Andrey: rvu пишет: Примера с таким названием уже нет, Есть, Григорий делал - C:\MiniGUI\SAMPLES\BASIC\SPLASHDEMO_3 В этом примере если есть такое окно, то оно поднимается на экран, а запускаемая новая прога завершается. Попробуй ещё вот такое в программе: [pre2] _HMG_MESSAGE[4] := "Попытка запуска второй копии программы:" + CRLF + ; App.ExeName + CRLF + ; "Отказано в запуске." + CRLF + _HMG_MESSAGE[4] SET MULTIPLE OFF WARNING [/pre2] Ставить сражу же после объявления переменных в MAIN, до вызова всех функций и открытия файлов !!!
rvu: Andrey пишет: В этом примере если есть такое окно, то оно поднимается на экран, а запускаемая новая прога завершается. Так и у меня то же самое. И я написал как это обойти. Сейчас посмотрю, как его программа отрабатывает этот момент.
Andrey: rvu пишет: Так и у меня то же самое. И я написал как это обойти. Я не смог это обойти. Попробуй пример Григория у себя. Я тоже много времени убил на это. Порядок вызовов функций очень важен ! Может у тебя в программе не так сделано.
SergKis: rvu пишет Примера с таким названием уже нет Есть SAMPLES\Applications\Reservation Но запустить много раз программу удается Надо получить ответ - можно ли запускать программу с разных каталогов (разные базы) ? - можно ли запускать программу с параметрами для выполнения ветки, к примеру ActiveX или еще какой режим (выполняя ShellExecute того же exe) Если все это надо, то хорошо исп. мутексы ( в примере вышеуказанном есть)/ К примеру берем полный ExeName, меняем в нем спец сиволы на "_", добавляем ключевые слова (к примеру имя ini или команда\режим) и делаем mutex как в примере. Что бы не засорятся сообщениями повторный запуск без сообщений, просто выход без анализов и поднятий окон (мне так нравится)
SergKis: PS Пример лога с мутексомб выделено цветом[pre2] 16.01.19 16:35:00. LetoStart has been started. C__BK8_LETODB_LETO2011_04_21_BIN_LETO2011 16.01.19 16:35:00: Leto DB Server has been started. 22.01.2019 08:48:16: Leto DB Server has been closed. 22.01.19 08:48:17. LetoStart has been closed. 23.01.19 08:34:15. LetoStart has been started. C__BK8_LETODB_LETO2011_04_21_BIN_LETO2011 23.01.19 08:34:15: Leto DB Server has been started. 05.02.19 09:47:00. LetoStart has been started. C__BK8_LETODB_LETO2011_04_21_BIN_LETO2011 05.02.19 09:47:00: Leto DB Server has been started. 12.02.2019 21:31:23: Leto DB Server has been closed. 12.02.19 21:31:24. LetoStart has been closed. 04.03.19 15:26:54. LetoStart has been started. C__BK8_LETODB_LETO2011_04_21_BIN_LETO2011 04.03.19 15:26:54: Leto DB Server has been started. 13.03.2019 18:21:35: Leto DB Server has been closed. 13.03.19 18:21:37. LetoStart has been closed. 03.04.19 12:57:59. LetoStart has been started. C__BK8_LETODB_LETO2011_04_21_BIN_LETO2011 03.04.19 12:57:59: Leto DB Server has been started. [/pre2]
rvu: Andrey пишет: _HMG_MESSAGE[4] := "Попытка запуска второй копии программы:" + CRLF + ; App.ExeName + CRLF + ; "Отказано в запуске." + CRLF + _HMG_MESSAGE[4] SET MULTIPLE OFF WARNING Вот это, похоже, помогло сразу. SergKis пишет: - можно ли запускать программу с разных каталогов (разные базы) ? - можно ли запускать программу с параметрами для выполнения ветки, к примеру ActiveX или еще какой режим (выполняя ShellExecute того же exe) Ни того, ни другого не надо.
rvu: Andrey пишет: _HMG_MESSAGE А вот, кстати, в разных информационных сообщения английский язык. Я могу, конечно, изменить h_init.prg, но в нем же предусмотрена и русская страница. REQUEST HB_LANG_RUWIN я в программу вписал, не помогло.
SergKis: rvu пишет А вот, кстати, в разных информационных сообщения английский язык Вроде рус. язык сообщения устанавливаются, сообщения из массивов на русском [pre2] PROCEDURE Main LOCAL y, x, w, s _LogFile(.T., 1, hb_UserLang()) // 1 ru-RU SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN _LogFile(.T., 1, hb_UserLang()) // 1 ru-RU For s := 1 To len(_HMG_MESSAGE) _LogFile(.T., s, _HMG_MESSAGE[ s ]) Next For s := 1 To len(_HMG_BRWLangButton) _LogFile(.T., s, _HMG_BRWLangButton[ s ]) Next For s := 1 To len(_HMG_BRWLangError) _LogFile(.T., s, _HMG_BRWLangError[ s ]) Next _LogFile(.T., '_HMG_BRWLangMessage') For s := 1 To len(_HMG_BRWLangMessage) _LogFile(.T., s, _HMG_BRWLangMessage[ s ]) Next _LogFile(.T., '_HMG_aABMLangUser') For s := 1 To len(_HMG_aABMLangUser) _LogFile(.T., s, _HMG_aABMLangUser[ s ]) Next _LogFile(.T., '_HMG_aABMLangLabel') For s := 1 To len(_HMG_aABMLangLabel) _LogFile(.T., s, _HMG_aABMLangLabel[ s ]) Next _LogFile(.T., '_HMG_aABMLangButton') For s := 1 To len(_HMG_aABMLangButton) _LogFile(.T., s, _HMG_aABMLangButton[ s ]) Next ... и т.д. [/pre2]
rvu: SergKis пишет: SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN Это уже помогло.
SergKis: rvu пишет Это уже помогло Если не помогло, то SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN Init()
rvu: Andrey пишет: _HMG_MESSAGE[4] := "Попытка запуска второй копии программы:" + CRLF + ; App.ExeName + CRLF + ; "Отказано в запуске." + CRLF + _HMG_MESSAGE[4] Русский язык в сообщениях появился, но здесь title "Stop". Как здесь вызвать MsgStop со своими параметрами? Передать ему не только сообщение, но и title. Или, если возможно, вообще установить ему свой title по умолчанию. В файле h_msgbox.prg я этот title заменил, это несложно. Но просто интересно, может можно это сделать другим способом.
SergKis: rvu пишет может можно это сделать другим способом. По идее, надо бы добавить в языковый массив _HMG_MESSAGE [10] := 'Attention' _HMG_MESSAGE [11] := 'Information' _HMG_MESSAGE [12] := 'Stop' и применить в Msg...(), Hmg_Alert() или добавлять в своей проге, к примеру в Init2() тексты в массив, используя в своих же функциях, к примеру, MyMsg...(), как комплект на базе Msg...() и исп. их со значениями Default Title := ... из массива