On-line: PSP, Мирослав, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
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;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Новых ответов нет , стр: 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 пишет:

 цитата:
вывод ошибки на экран - обыкновенный текст на белом фоне


Понял
Тогда только вариант с собственным обработчиком

Спасибо: 0 
Профиль
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(). работает хоть

Спасибо: 0 
Профиль
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 и посмотри...

Я у себя сделал сохранения скрина экрана ошибки в папку ошибок - полезная штука для анализа ошибок.
У меня в проге один модуль работает с пятью таблицами.
И когда происходит ошибка, то я не могу понять где произошла ошибка.
Нет алиаса базы при ошибке, нет номера записи при ошибке.
Есть только номер строки ошибки и всё.
Скрин экрана ОЧЕНЬ помогает при анализе ошибки.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1692
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.21 17:18. Заголовок: Andrey пишет: Возьм..


Andrey пишет:

 цитата:
Возьми в новом исходнике ErrorSys.prg строка 242:


так уже старый вариант в исхоники перекомпилил
Andrey пишет:

 цитата:
Но ошибка на красном фоне приятней смотрится и юзер понятней что ошибка.

Ну тут на вкус и цвет все фломастеры разные. Мне наоборот кажется что от красных окон пользователи в обморок падать начнут. У меня есть проекты с очень бледным интерфейсом по цветам ( заказчик пожелал ) и красное окно точно ему не понравится.

Спасибо: 0 
Профиль
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()) )


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1693
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.21 18:00. Заголовок: Andrey пишет: У мен..


Andrey пишет:

 цитата:
У меня наоборот, юзер не сообщает об ошибке.


я Сам смотрю по логам, плюс прилетает на почту сообщение ( опционально ) и в Bitrix сообщением по некоторым проектам
считаю что пользователь и сообщать не должен, т.к. многие прочитать что написано не в состоянии.

Andrey пишет:

 цитата:
Можно поправить на свой ЛЮБОЙ цвет в строке 237:


вопрос не в цвете, как поправить знаю. Вопрос в тихом падении, пользователь даже понять не может куда все делось.

Andrey пишет:

 цитата:
В новом модуле ErrorSys.prg зашит поиск по трём фильтрам:


наверное это хорошо. иногда быстрее просто текстовым просмотром глянуть особенно с телефона . Мне не принципиально в каком виде лог ведется , главное там все есть.

Спасибо: 0 
Профиль
i3t4j6



Пост N: 141
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 09.06.21 08:01. Заголовок: Haz пишет: Ну тут н..


Haz пишет:

 цитата:
Ну тут на вкус и цвет все фломастеры разные.


Поэтому я и предложил предусмотреть возможность переключения между классическим вариантом и
мультиками.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1873
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.21 09:23. Заголовок: i3t4j6 пишет: я и п..


i3t4j6 пишет:

 цитата:
я и предложил предусмотреть возможность переключения между классическим вариантом и
мультиками.


Благодарю за подсказку
Я добавил во втором апдейте текущей сборки новую команду:

 цитата:
SET SHOWREDALERT [ON | OFF]


для возможности управлять видом этого окна.
Скоро выложу это обновление

Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1874
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.21 10:06. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Может вариант блока кода обработчика сделать для замены


Сергей!

Идея понятна, но для такой замены есть же стандартные средства со времен Клиппера

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 3755
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.06.21 10:12. Заголовок: gfilatov2002 пишет д..


gfilatov2002 пишет
 цитата:
для такой замены есть же стандартные средства со времен Клиппера


Что то я подзабыл, как это делать, так давно было
Для hmg подменяем ErrorSys.prg на свой вариант

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1875
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.21 10:28. Заголовок: SergKis пишет: подз..


SergKis пишет:

 цитата:
подзабыл, как это делать


См. примеры в папках:
- basic\MyErrorFunc;
- basic\Hmg_Error_2.


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1876
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.21 10:29. Заголовок: Выложил Update 2 для..


Выложил Update 2 для сборки 21.05 по адресу

http://hmgextended.com/files/CONTRIB/hmg-21.05-setup.exe

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 3756
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.06.21 10:46. Заголовок: gfilatov2002 пишет С..


gfilatov2002 пишет
 цитата:
См. примеры в папках:


Спасибо
Примеры видел, но не вдохновили. Заменой prg (полученный new obj), показалось удобнее в использовании.
Предложил блок кода для более гибких вариантов, подменой на лету, если кому надо комбинировать html\txt\...

Спасибо: 0 
Профиль
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
...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1877
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.06.21 13:03. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшая добавка


Принято.
Благодарю за помощь

Спасибо: 0 
Профиль
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
...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1878
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.06.21 15:10. Заголовок: SergKis пишет: Надо..


SergKis пишет:

 цитата:
Надо еще поправить


OK

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1879
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.06.21 10:21. Заголовок: Всем кому это интересно


Подготовил 3-й апдейт для сборки 25.05, который выйдет на этой неделе
Что нового:
Скрытый текст

Если у Вас есть полезные дополнения для библиотеки, то я с удовольствием их рассмотрю с целью включения в эту сборку...

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1699
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.06.21 21:03. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Если у Вас есть полезные дополнения для библиотеки, то я

Григорий, не знаю полезно ли? В одном из проектов делал замену errorsys на вывод лога не в html, а в json. Плюс встроенный вьювер ошибок по этому json. Достаточно компактно кажет всю информацию по ошибке. Потом идею бросил, но там так и работает. Если потребуется, могу в отдельный пример накидать. Так ради альтернативы, поскольку там по сути ничего нового, просто вывод в хтмл заменил на запись в json, и стандартные бровсы по массивам

Спасибо: 0 
Профиль
Новых ответов нет , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [см. все]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 215
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет