Автор | Сообщение |
gfilatov
|
| модератор
|
Пост N: 699
Зарегистрирован: 25.05.05
|
|
Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[см. все]
|
|
gfilatov2002
|
| moderator
|
Пост N: 1872
Зарегистрирован: 11.02.10
|
|
Отправлено: 08.06.21 12:28. Заголовок: i3t4j6 пишет: вывод..
i3t4j6 пишет: цитата: | вывод ошибки на экран - обыкновенный текст на белом фоне |
| Понял Тогда только вариант с собственным обработчиком
|
|
|
Haz
|
| |
Пост N: 1691
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.06.21 15:28. Заголовок: i3t4j6 пишет: Progr..
i3t4j6 пишет: цитата: | Program Error -вывод ошибки на экран - обыкновенный текст на белом фоне, а не желтое на красном и на весь экран ! |
| у меня вообще валится без всяких окон, ни красных ни белых , хорошо хоть лог пишет Time from start: 0 days 0 hours 0 mins 3 secs<BR> <span class="error">Error MGERROR/0 Control: Btn_01 Of oDlg Not defined. Program terminated.</span> </p> <details><summary> --------------------------------- Stack Trace --------------------------------- <br/></summary><span class="stacktrace"> Called from MSGMINIGUIERROR(0) <BR> Called from VERIFYCONTROLDEFINED(0) <BR> Called from SETPROPERTY(0) <BR> Called from FILLDLG(0) <BR> Called from HMG_ALERT(0) <BR> Called from _ALERT(0) <BR> Called from ALERTSTOP(0) <BR> Called from SHOWERROR(0) <BR> Called from DEFERROR(0) <BR> Called from (b)ERRORSYS(0) <BR> Called from K_BROWSE(35) in module: K_Browse.prg <BR> Called from OPENPRJ(194) in module: Module.prg <BR> Called from (b)MAIN(290) in module: Main.prg <BR> Called from DO_WINDOWEVENTPROCEDURE(0) <BR> Called from TWNDDATA:DOEVENT(0) <BR> Called from DO_ONWNDLAUNCH(0) <BR> Called from (b)INIT(0) <BR> Called from EVENTS(0) <BR> Called from DOMESSAGELOOP(0) <BR> Called from _ACTIVATEWINDOW(0) <BR> Called from MAIN(404) in module: Main.prg Саму ошибку сделал специально чтоб посмотреть на красное FUNCTION K_Browse(oWnd, nPage) LOCAl cSql := "" LOCAl cBrw, cBrw1 := "" LOCAl oBrw, oBrw1 LOCAl cAlias := "" LOCAl cAlias1 := "" LOCAL nRecCount := 0 LOCAL aFields := {} LOCAL cCol := "" ? a[1] // вот тут обращение к несуществующему массиву ЗЫ пока Пересобрал библиотеку со старой редакцией ShowError(). работает хоть
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6964
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.06.21 17:03. Заголовок: Haz пишет: у меня в..
Haz пишет: цитата: | у меня вообще валится без всяких окон, ни красных ни белых , хорошо хоть лог пишет |
| Возьми в новом исходнике ErrorSys.prg строка 242: AlertStop( cMsg, "Program Error", "ZZZ_B_STOP64", 64, { { 217, 67, 67 } }, .T., bInit ) Поставь так: MsgStop( cMsg, "Program Error") // обыкновенный текст на белом фоне Но ошибка на красном фоне приятней смотрится и юзер понятней что ошибка. Я писал об ошибке в HMG_ALERT(), что-то там надо докрутить. У меня тоже вылетает в FILLDLG(). Скорее всего ошибка здесь: bInit := {|| iif( GetControlType( "Say_01", "oDlg" ) == "EDIT",, ( ; SetProperty( "oDlg", "Say_01", "FontColor", YELLOW ), ; SetProperty( "oDlg", "Say_01", "Alignment", "CENTER" ), ; SetProperty( "oDlg", "Say_02", "FontColor", YELLOW ), ; SetProperty( "oDlg", "Say_02", "Alignment", "CENTER" ) ) ) } Не находит объект Say_02. Ради теста добавь к себе в проект ErrorSys.prg и посмотри... Я у себя сделал сохранения скрина экрана ошибки в папку ошибок - полезная штука для анализа ошибок. У меня в проге один модуль работает с пятью таблицами. И когда происходит ошибка, то я не могу понять где произошла ошибка. Нет алиаса базы при ошибке, нет номера записи при ошибке. Есть только номер строки ошибки и всё. Скрин экрана ОЧЕНЬ помогает при анализе ошибки.
|
|
|
Haz
|
| |
Пост N: 1692
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.06.21 17:18. Заголовок: Andrey пишет: Возьм..
Andrey пишет: цитата: | Возьми в новом исходнике ErrorSys.prg строка 242: |
| так уже старый вариант в исхоники перекомпилил Andrey пишет: цитата: | Но ошибка на красном фоне приятней смотрится и юзер понятней что ошибка. |
|
Ну тут на вкус и цвет все фломастеры разные. Мне наоборот кажется что от красных окон пользователи в обморок падать начнут. У меня есть проекты с очень бледным интерфейсом по цветам ( заказчик пожелал ) и красное окно точно ему не понравится.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6965
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.06.21 17:45. Заголовок: Haz пишет: Мне наоб..
Haz пишет: цитата: | Мне наоборот кажется что от красных окон пользователи в обморок падать начнут. |
| У меня наоборот, юзер не сообщает об ошибке. Можно поправить на свой ЛЮБОЙ цвет в строке 237: SET MSGALERT BACKCOLOR TO MAROON SET MSGALERT FONTCOLOR TO WHITE С новым модулем ErrorSys.prg легче стало править окно ошибки под себя. В старом модуле у меня при ошибке кнопки Ok иногда не было видно, уходило за границу экрана. Да и скопировать ошибку в буфер экрана - это уже давно у всех есть, а в МиниГуи не было до сих пор. В новом модуле ErrorSys.prg так же зашит поиск по трём фильтрам: Если прога стоит на сервере терминалов, то не понятно было какая станция свалилась по ошибке. Сейчас добавлена вот такая строка: Html_LineText( HtmArch, 'User: ' + NetName() + " / " + GetUserName() ) Я в своём обработчике ошибок (исправленном под себя) добавил ещё такие строки: Html_LineText( HtmArch, 'Application: ' + GetExeFileName() + " " + M->cPubVersProg ) Html_LineText( HtmArch, 'User: ' + NetName()+"/"+hb_UserName()+"/"+M->cOperator ) Html_LineText( HtmArch, 'DbInfo: Alias - '+ ALIAS() + ', Ord - ' + OrdSetFocus() + ; ', Recno - ' + HB_NtoS(RecNo()) + '/' + HB_NtoS(LastRec()) )
|
|
|
Haz
|
| |
Пост N: 1693
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.06.21 18:00. Заголовок: Andrey пишет: У мен..
Andrey пишет: цитата: | У меня наоборот, юзер не сообщает об ошибке. |
| я Сам смотрю по логам, плюс прилетает на почту сообщение ( опционально ) и в Bitrix сообщением по некоторым проектам считаю что пользователь и сообщать не должен, т.к. многие прочитать что написано не в состоянии. Andrey пишет: цитата: | Можно поправить на свой ЛЮБОЙ цвет в строке 237: |
| вопрос не в цвете, как поправить знаю. Вопрос в тихом падении, пользователь даже понять не может куда все делось. Andrey пишет: цитата: | В новом модуле ErrorSys.prg зашит поиск по трём фильтрам: |
| наверное это хорошо. иногда быстрее просто текстовым просмотром глянуть особенно с телефона . Мне не принципиально в каком виде лог ведется , главное там все есть.
|
|
|
i3t4j6
|
| |
Пост N: 141
Зарегистрирован: 12.06.06
|
|
Отправлено: 09.06.21 08:01. Заголовок: Haz пишет: Ну тут н..
Haz пишет: цитата: | Ну тут на вкус и цвет все фломастеры разные. |
| Поэтому я и предложил предусмотреть возможность переключения между классическим вариантом и мультиками.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1873
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.06.21 09:23. Заголовок: i3t4j6 пишет: я и п..
i3t4j6 пишет: цитата: | я и предложил предусмотреть возможность переключения между классическим вариантом и мультиками. |
| Благодарю за подсказку Я добавил во втором апдейте текущей сборки новую команду: цитата: | SET SHOWREDALERT [ON | OFF] |
| для возможности управлять видом этого окна. Скоро выложу это обновление
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3754
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.06.21 09:50. Заголовок: gfilatov2002 пишет Я..
gfilatov2002 пишет цитата: | Я добавил во втором апдейте текущей сборки новую команду: |
| Может вариант блока кода обработчика сделать для замены, что то такое STATIC bErrorSys FUNC _bErrorSys( bErr ) IF pCount() > 0 ; bErrorSys := bErr ENDIF RETURN bErrorSys *-----------------------------------------------------------------------------* PROCEDURE ErrorSys *-----------------------------------------------------------------------------* LOCAL bErr := _bErrorSys( bErr ) IF Valtype(bErr) != "B" ; bErr := { | oError | DefError( oError ) } ENDIF ErrorBlock( bErr ) #ifndef __XHARBOUR__ Set( _SET_HBOUTLOG, GetStartUpFolder() + "\error.log" ) Set( _SET_HBOUTLOGINFO, MiniGUIVersion() ) #endif RETURN
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1874
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.06.21 10:06. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может вариант блока кода обработчика сделать для замены |
| Сергей! Идея понятна, но для такой замены есть же стандартные средства со времен Клиппера
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3755
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.06.21 10:12. Заголовок: gfilatov2002 пишет д..
gfilatov2002 пишет цитата: | для такой замены есть же стандартные средства со времен Клиппера |
| Что то я подзабыл, как это делать, так давно было Для hmg подменяем ErrorSys.prg на свой вариант
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1875
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.06.21 10:28. Заголовок: SergKis пишет: подз..
SergKis пишет: См. примеры в папках: - basic\MyErrorFunc; - basic\Hmg_Error_2.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1876
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.06.21 10:29. Заголовок: Выложил Update 2 для..
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3756
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.06.21 10:46. Заголовок: gfilatov2002 пишет С..
gfilatov2002 пишет Спасибо Примеры видел, но не вдохновили. Заменой prg (полученный new obj), показалось удобнее в использовании. Предложил блок кода для более гибких вариантов, подменой на лету, если кому надо комбинировать html\txt\...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3760
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.06.21 12:05. Заголовок: gfilatov2002 Неболь..
gfilatov2002 Небольшая добавка METHOD SetArrayTo( aArray, uFontHF, aHead, aSizes, uFooter, aPicture, aAlign, aName ) CLASS TSBrowse ... FOR nI := 1 TO Len( ::aArray ) FOR nN := 1 TO nColumns If HB_ISCHAR( ::aArray[ nI, nN ] ) .and. CRLF $ ::aArray[ nI, nN ] cData := "" AEval(hb_aTokens(::aArray[ nI, nN ], CRLF), {|x| x := trim(x), cData := If( Len(x) > Len(cData), x, cData )}) Else cData := cValToChar( ::aArray[ nI, nN ] ) EndIf IF Len( cData ) > Len( aDefMaxVal[ nN ] ) IF aDefType[ nN ] == "C" aDefMaxVal[ nN ] := Trim( cData ) aDefMaxLen[ nN ] := Max( aDefMaxLen[ nN ], Len( aDefMaxVal[ nN ] ) ) ELSE aDefMaxVal[ nN ] := cData aDefMaxLen[ nN ] := Max( aDefMaxLen[ nN ], Len( cData ) ) ENDIF ENDIF NEXT NEXT ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1877
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.06.21 13:03. Заголовок: SergKis пишет: Небо..
SergKis пишет: Принято. Благодарю за помощь
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3761
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.06.21 14:45. Заголовок: gfilatov2002 Надо е..
gfilatov2002 Надо еще поправить, т.к. aDefMaxLen[ nI ] помешает расчету METHOD SetArrayTo( aArray, uFontHF, aHead, aSizes, uFooter, aPicture, aAlign, aName ) CLASS TSBrowse ... line 12950 FOR nI := 1 TO nColumns cType := ValType( ::aArray[ 1, nI ] ) aDefType[ nI ] := cType IF cType $ "CM" ::aDefValue[ nI ] := Space( Len( ::aArray[ 1, nI ] ) ) aDefMaxVal[ nI ] := Trim( ::aArray[ 1, nI ] ) aDefMaxLen[ nI ] := iif( CRLF $ aDefMaxVal[ nI ], 0, Len( aDefMaxVal[ nI ] ) ) aDefAlign[ nI ] := DT_LEFT ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1878
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.06.21 15:10. Заголовок: SergKis пишет: Надо..
SergKis пишет: OK
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1879
Зарегистрирован: 11.02.10
|
|
Отправлено: 14.06.21 10:21. Заголовок: Всем кому это интересно
Подготовил 3-й апдейт для сборки 25.05, который выйдет на этой неделе Что нового: Скрытый текст
* Modified: The some internal SetGet functions were defined as Static. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see h_controlmisc.prg in folder \Source). * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - minor correction in the method SetArrayTo in the TSBrowse class. Contributed by Sergej Kiselev (see demo in folder \samples\Advanced\Tsb_SetArrayTo) * Updated: HbSQLite3 library: - update for using SQLITE3 latest version 3.36.0dev. Contributed by Grigory Filatov <gfilatov@inbox.ru>. * Updated: 'GraphPlus library demo' sample. Based upon a contribution of S.Rathinagiri <srgiri@dataone.in> Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\GraphPlus) * Updated: 'Source Code Formatter' utility. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \Utils\ofmt)
| Если у Вас есть полезные дополнения для библиотеки, то я с удовольствием их рассмотрю с целью включения в эту сборку...
|
|
|
Haz
|
| |
Пост N: 1699
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.06.21 21:03. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Если у Вас есть полезные дополнения для библиотеки, то я |
|
Григорий, не знаю полезно ли? В одном из проектов делал замену errorsys на вывод лога не в html, а в json. Плюс встроенный вьювер ошибок по этому json. Достаточно компактно кажет всю информацию по ошибке. Потом идею бросил, но там так и работает. Если потребуется, могу в отдельный пример накидать. Так ради альтернативы, поскольку там по сути ничего нового, просто вывод в хтмл заменил на запись в json, и стандартные бровсы по массивам
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[см. все]
|
|