On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
модератор




Пост 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 
ПрофильЦитата Ответить
Ответов - 129 , стр: 1 2 3 4 5 6 7 All [только новые]


moderator




Пост N: 2514
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.10.25 19:23. Заголовок: SergKis пишет: все ..


SergKis пишет:

 цитата:
все в один голос говорили, что бы это не менял




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




Пост N: 4836
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.10.25 11:26. Заголовок: gfilatov2002 Andrey..


gfilatov2002
Andrey пишет (Пост N: 8052)
 цитата:
Григорий, как из своей программы изменить цвета Program error ?
Я задаю свои функции Alert*() на базе твоих...


gfilatov2002 пишет
 цитата:
Сейчас эти цвета задаются в ядре без возможности их изменения извне.


Предлагаю дать возможность разработчику делать свои окна вместо системных.
Для этого небольшая правка ErrorSys.prg
 
STATIC PROCEDURE ShowError( cErrorMessage, oError )
...
cMsg += iif( _lShowDetailError(), cErrorMessage, ErrorMessage( oError ) )

IF !Replicate(chr(9), 3) $ cMsg

IF ISLOGICAL( _HMG_lOnErrorStop ) .AND. _HMG_lOnErrorStop
...
ENDIF

ENDIF

ErrorLevel( 1 )

IF ISBLOCK( _HMG_bOnErrorExit )
Eval( _HMG_bOnErrorExit )
ENDIF
...
т.е. разработчик в своем модуле делает ~так (пример Tsb_2tsb\demo_e.prg)
...
Function Main()
...
LOCAL cTitl := " Mouse (Right, Left) click events"
cTitl += " - Version 0.2 (29.09.2025)"
cTitl += " Press key F1 for error"

...
ON KEY F1 ACTION iif( AlertYesNo("Make the program terminate with an error ?"), ;
This.Buff.SetFocus, )

ON KEY TAB ACTION {||
...
FUNCTION my_ErrorExit(cMsg,oErr,cTxt,cErr)

IF pCount() > 0
AlertStop(cErr)
cTxt := oErr
ENDIF

RETURN cMsg + Replicate(chr(9), 3) // отказываемся от показа окон ошибки hmg

PS. Или вводить переменную среды hmg для анализа ситуации, возможно просто вертуть .F. и проверить возврат в ErrorSys.prg

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2515
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.10.25 21:25. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предлагаю дать возможность разработчику делать свои окна вместо системных.


Такая возможность есть в библиотеке изначально.

Базовые примеры находятся в папках
Basic\Hmg_Error
Basic\Hmg_Error_2


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




Пост N: 4837
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.10.25 21:58. Заголовок: gfilatov2002 пишет Т..


gfilatov2002 пишет
 цитата:
Такая возможность есть в библиотеке изначально


Подмена системы обработок ошибок (она существует давно с clipper времен), это несколько не то, что я предложил. Система обработок ошибок остается как есть, заменяем только окно вывода ошибки, которое часто вылазит за пределы экрана, искажается и хочется, как Андрею, покраску и фонты сменить в некоторых строках вывода, а может и не выдавать окно, просто вернув, например, .F.. Обработка ErrorLog.htm или тексты cErr можно отработать и в др. месте. Окно ошибки пугает user и вполне при сбое можно перезапустить модуль на прежнее окно работы, даже без сообщений, сморгнул экран для user и дальше работай

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2000
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.10.25 23:40. Заголовок: SergKis пишет: Пре..


SergKis пишет:

 цитата:

Предлагаю дать возможность разработчику делать свои окна вместо системных.
Для этого небольшая правка ErrorSys.prg


Стесняюсь спросить, а зачем?
Пользователю насрать на красоту сообщения об ошибке, если разраб их обрабатывает, то и юзер эту красоту не увидит.
Если нужно о чем то предупредитт юзера, то у разраба полно способов нарисовать свое окно любое.
Errorsys открыт полностью, делай что хочешь, объект ошибки не бином Ньютона, чес слово не понял смысла зачем изобретать велосипед. А то становится похоже на мем, программа, работает ху*во, но ошибки показывает красиво

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




Пост N: 8058
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.10.25 00:51. Заголовок: Haz пишет: Errorsys..


Haz пишет:

 цитата:
Errorsys открыт полностью, делай что хочешь,


Сделал правку его, прога у заказчика не всегда показывает ошибки, писал уже ранее - выдаёт ошибки, что нет фонта на окне и ошибка НЕ ТА, что привела к краху.
У меня работает без сбоев, у заказчика периодически вылетает.
Сам видел ошибку - на хорошем сервере - ошибка SELECT базы, хотя потом после перезапуска, прога работает без ошибок в этом месте программы.
Хрень получается...
Переключение между прогами 1С, Мозилой и Минигуи - непонятная штука,
особенно если у заказчика мало памяти.

Сейчас после замены на свой Alert*() вот такое окно:

Юзер будет в шоке. А если пришлет такую ошибку на телефон, то ни фига не видно !
Из-за этого и просил изменить цвета.

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




Пост N: 4838
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.10.25 06:48. Заголовок: Haz пишет Пользовате..


Haz пишет
 цитата:
Пользователю насрать на красоту сообщения об ошибке


Глубокое заблуждение, при приеме, вникают в каждую букву, не то что в окно, его вид, если заказчик серьезный.

 цитата:
Errorsys открыт полностью, делай что хочешь, объект ошибки не бином Ньютона, чес слово не понял смысла зачем изобретать велосипед


Сейчас так и есть, обработчик со времен Clipper5\VO, перенесенный в hb, таскается из проекта в проект. Зачем, если обработчик текущий в hmg устраивает ? Мешает, что нет возможности отключить окно конечное совсем или заменить его своим. Это и ограничивает свободу действий, именно, как разработчика систем. Предложение совсем копеечное, обработать спец. символы или .T.\.F. в имеющейся, готовой системе обработок ошибок, кому не нужно - даже не заметит этого

 цитата:
А то становится похоже на мем, программа, работает ху*во, но ошибки показывает красиво


А если наоборот ? Программа работает красиво, а ошибки криво и это заложено по умолчанию, в стандарт, т.к. сейчас часто Alert окно искажено, т.е. тексты уходят вправо за экран и вниз, а кнопка <OK> поверх текста

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2002
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.10.25 09:14. Заголовок: SergKis пишет: ошиб..


SergKis пишет:

 цитата:
ошибки криво и это заложено по умолчанию, в стандарт, т.к. сейчас часто Alert окно искажено, т.е. тексты уходят вправо за экран и вниз, а кнопка <OK> поверх текста


Так я о том, что все строится на объекте ошибки и инструментария создать свою обработку и тем более раскрасить ее по своему вкусу предостаточно.
На вкус и цвет все фломастеры разные и в некоторых интерфейсах Алерт выглядит как красная тряпка перед быком, тем более со стеком вызова процедур при виде которого пользователь не понимает ровным счётом ничего
Если не устраивает стандартная процедура обработки, делаем свою с подробным протоколом и автоматической отправкой разработчику, если нужно предупредить пользователя вывешиваем флаг с лозунгами что уже знаем и работаем. Тем более , что информация об ошибке стандартным обработчиком иногда ни о чем. К примеру при открытом через ole excel читается текстовой файл параметров и если файла нет выдаёт discspace(0) при сотнях гигов свободного места
Уже как то обсуждали , и мое мнение нужно не окно на пол экрана со стеком в цветах африканского авангарда,а удобный инструмент логирования ошибки, оправки лога разработчику и удобный вьюер этого лога. Пользователю достаточно обычного окна с уведомлениями о том что ситуация контролируется.

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




Пост N: 4839
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.10.25 10:15. Заголовок: Haz пишет Если не ус..


Haz пишет
 цитата:
Если не устраивает стандартная процедура обработки, делаем свою с подробным протоколом и автоматической отправкой разработчику


УСТРАИВАЕТ ! Кроме окна сообщения MsgStop() или Alert и ничего лишнего не надо, все есть в параметрах пользовательского блока кода, что и куда девать это совсем др. вопрос

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




Пост N: 8059
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.10.25 12:01. Заголовок: Haz пишет: Уже как ..


Haz пишет:

 цитата:
Уже как то обсуждали , и мое мнение нужно не окно на пол экрана со стеком в цветах африканского авангарда,а удобный инструмент логирования ошибки, оправки лога разработчику


Да это нужная вещь в программе.
Сделал с помощью Сергея, недавно похожее, в новой версии МиниГуи пример - \SAMPLES\Advanced\Tsb_EventLog
Запись ошибки и действий пользователя в dbf-файл.
 Журнал событий в программе - запись действий пользователей в программе. 
Статистика выполнения(события программы) по операторам за периоды времени - кнопка "F5 Отчёты".
События программы - справочник смотреть/добавлять: user2log.prg функция EVENTS_Dim().
Аварийная ошибка в программе - смотреть модуль: demo.prg
_HMG_bOnErrorInit := {|cMsg,oErr,cTxt,cErr| my_ErrorExit(cMsg,oErr,cTxt,cErr) }
_HMG_bOnErrorExit := {| | my_ErrorExit() }
Сама функция в demo_ErrorLog.prg


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2516
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.10.25 12:49. Заголовок: Andrey пишет: Из-за..


Andrey пишет:

 цитата:
Из-за этого и просил изменить цвета.


Проблема с цветами сообщения об ошибке уже решена.
Сейчас возможно настроить все цвета в этом сообщении.

SergKis пишет:

 цитата:
сейчас часто Alert окно искажено, т.е. тексты уходят вправо за экран и вниз, а кнопка <OK> поверх текста


Эту проблему тоже решил.

Благодарю всех за это полезное обсуждение

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




Пост N: 4840
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.10.25 16:58. Заголовок: gfilatov2002 пишет П..


gfilatov2002 пишет
 цитата:
Проблема с цветами сообщения об ошибке уже решена.
Сейчас возможно настроить все цвета в этом сообщении


Это хорошо
Но обработка ошибок, это одно, а вывод их на устройства (диск, console, gui), это другое, как и то куда девать данные об ошибке

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




Пост N: 4842
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.10.25 21:59. Заголовок: gfilatov2002 Правка..


gfilatov2002
Правка в :FilterFTS() небольшая
 
METHOD FilterFTS( cFind, lUpper, lBottom, lFocus, lAll ) CLASS TSBrowse
...
FOR EACH aLine IN ::aArray
...
IF nCol == 1 .AND. ::lSelector ; LOOP
ELSEIF !Empty(oCol:cName) .and. oCol:cName == "ARRAYNO" ; LOOP

ELSEIF ! oCol:lVisible ; LOOP
...
METHOD FilterFTS_Line( cFind, lUpper, lAll ) CLASS TSBrowse
...
IF nCol == 1 .AND. ::lSelector ; LOOP
ELSEIF !Empty(oCol:cName) .and. oCol:cName == "ORDKEYNO" ; LOOP

ELSEIF ! oCol:lVisible ; LOOP
ELSEIF oCol:lBitMap ; LOOP
ENDIF
...

стал работать, с наличием колонки oTsb:aNumber := ... в списке колонок

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2518
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.10.25 09:53. Заголовок: SergKis пишет: Прав..


SergKis пишет:

 цитата:
Правка в :FilterFTS()


OK.
Благодарю за помощь

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 187
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 18.10.25 11:10. Заголовок: Ups!


Перешел с версии 25.03 на 25.10 и споткнулся на ровном месте.
Изменилась работа команды

UNCOMPRESS cName EXTRACTPATH Path_Dbf BLOCK {|cFile,nPos| ShowProgress(cFile,nPos,cForm)}

Теперь существующие в Path_Dbf файлы не переписываются из архива, хотя раньше всё работало.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2520
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.10.25 13:47. Заголовок: alex_II пишет: Тепе..


alex_II пишет:

 цитата:
Теперь существующие в Path_Dbf файлы не переписываются из архива


Благодарю за сообщение!
Теперь при извлечении файлов используется флаг HB_FO_EXCL

 цитата:
create and open only if file doesn't exist


Если это критично для Вашей программы, то этот флаг можно убрать, и затем пересобрать библиотеку hbziparc.

P.S. Я уже сделал необходимые правки кода, чтобы восстановить предыдущий функционал команды UNCOMPRESS.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 188
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 18.10.25 19:16. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
P.S. Я уже сделал необходимые правки кода, чтобы восстановить предыдущий функционал команды UNCOMPRESS.


Спасибо за разъяснение, а пока подожду на версии 25.03

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




Пост N: 4843
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.10.25 20:18. Заголовок: gfilatov2002 Не бол..


gfilatov2002
Не большое предложение по :CalcTotal(...), использовать Picture колонки для вывода суммы итога в footer, если задан
 
METHOD CalcTotal( cTotal, cNoTotal, lDraw, lPicture ) CLASS TSBrowse
...
FOR nK := 1 TO nCols
oCol := ::aColumns[nK]
IF !aTot[nK] ; LOOP
ENDIF
IF Empty( aSum[nK] )
xVal := ""
ELSEIF !Empty( lPicture ) .and. !Empty( oCol:cPicture )
xVal := AllTrim( Transform( aSum[nK], oCol:cPicture ) )
ELSE
xVal := hb_ntos( aSum[nK] )
ENDIF

oCol:cFooting := xVal
NEXT
...

при lPicture := .T. в параметре
Может быть, надо сделать, Default lPicture := .T. , но не уверен в этом, т.е. можно без этого параметра делать
 
ELSEIF !Empty( lPicture ) .and. !Empty( oCol:cPicture )
xVal := AllTrim( Transform( aSum[nK], oCol:cPicture ) )

но остается вопрос, если колонка узкая и с oCol:cPicture не помещается, а без него (hb_ntos...) все ok!, а :cPicture задан ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2521
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.10.25 10:21. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо сделать, Default lPicture := .T.


Принято с использованием этого параметра, как наиболее универсальный вариант.
Если задано oCol:cPicture, то эта установка в приоритете, с возможностью включить ее использование с помощью параметра lPicture := .T., который по умолчанию задан, как lPicture := .F.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2524
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.11.25 15:56. Заголовок: Всем кому это интересно


Подготовил первый релиз-кандидат для ПРО-версии сборки 25.11

Кратко, что нового:
Скрытый текст

Пока я НЕ знаю, когда будет опубликован этот релиз...
Все зависит от интереса к этой работе у пользователей библиотеки.

Желаю всем хороших выходных.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 129 , стр: 1 2 3 4 5 6 7 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 25
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет