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




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть V) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

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

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Andrey
постоянный участник




Пост N: 4612
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.15 16:47. Заголовок: Haz пишет: В качест..


Haz пишет:

 цитата:
В качестве подтверждения - твой свежий вопрос по TSBrowse :
- "Как поменять картинку в уже сформированной таблице ?"
Ответ есть и в исходниках и даже в примерах .....



Я так и не нашёл... Сделал по другому... Если не сложно - ткни где это ?

Haz пишет:

 цитата:
PS Притом мараторий же временный


Но если временный, то тогда ладно...

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




Пост N: 720
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.12.15 16:51. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если не сложно - ткни где это ?


в примере 3.5к размером
Tsb_Cursor.prg
в зависимости от условия If( oBrw:lDrawSelect ..... или рисуется или не рисуется . Вместо НЕ рисуется можно рисовать другую и по другому условию

oBrw:GetColumn( 'DATE' ):uBmpCell := {|| If( oBrw:lDrawSelect, LoadImage( "Calendar.BMP" ), NIL ) }

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




Пост N: 4613
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.15 17:34. Заголовок: Haz пишет: в пример..


Haz пишет:

 цитата:
в примере 3.5к размером


Спасибо БОЛЬШОЕ !

Смотрел же это пример.

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




Пост N: 865
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.12.15 11:25. Заголовок: Выпустил очередной р..


Выпустил очередной релиз библиотеки. При этом изменена схема нумерации сборок на "Год.Месяц"

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-15.12-setup.zip

Также доступна сборка для компилятора MinGW по адресу:

http://hmgextended.com/files/CONTRIB/hmg1512-mingw.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1512_xhb10138.zip

Обновление к этой версии рекомендуется для всех предыдущих сборок...

Благодарю за внимание

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




Пост N: 4614
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.12.15 14:51. Заголовок: Пересобрал свой боль..


Пересобрал свой большой проект ! Полёт нормальный !

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




Пост N: 866
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.12.15 15:29. Заголовок: Andrey пишет: Полёт..


Andrey пишет:

 цитата:
Полёт нормальный


Благодарю за подтверждение

Для справки: основные изменения в новой сборке были связаны с перелопачиванием всего Си-кода для 64-битной совместимости и исправлением небольших неточностей в PRG-коде ядра библиотеки.
Ожидаю отчета о переходе на новую версию и от других пользователей...

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




Пост N: 728
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.12.15 16:34. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Ожидаю отчета о переходе на новую версию и от других пользователей...


Пересобрал пару проектов , собираются без замечаний.
Запускаются , работают. Все не тестировал, т.к. много , основное нормально пашет

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




Пост N: 869
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.01.16 13:04. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня RC для очередной сборки библиотеки, которая выйдет на следующей неделе...
Полный список изменений см. ниже
Скрытый текст

Также убрал статус beta у 64-битной сборки (вроде, нареканий не было либо никто не пробовал )

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




Пост N: 870
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.01.16 11:19. Заголовок: Выпустил очередной р..


Выпустил очередной релиз библиотеки с исправлением обнаруженных неточностей кода.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.01-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1601-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1601.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1601_xhb10138.zip

Благодарю за внимание


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




Пост N: 751
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.01.16 12:33. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Благодарю за внимание


Григорий , спасибо!
Постоянно , слежу и пробую "на вкус" все новое в твоем проекте.

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




Пост N: 4660
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.16 20:23. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
* Updated: Modified the application manifest for compatibility with Windows 10.
A manifest file is common now for 32- and 64-bit builds.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see Windows7.Manifest in folder \Resources)



Теперь программы собираются сразу для Windows7 и выше ?

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




Пост N: 871
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.01.16 11:17. Заголовок: Andrey пишет: Тепер..


Andrey пишет:

 цитата:
Теперь программы собираются сразу для Windows7 и выше ?


Нет, это определяется не манифестом, а использованным Си-компилятором:

- для ВСС 5.5 - от Win98 и выше;
- для MinGW - от WinXP и выше;
- для PellesC - от Win7 и выше.


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




Пост N: 4662
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.01.16 11:26. Заголовок: Некорректно спросил...


Некорректно спросил.
Имел в виду, что размеры форм, шрифта будет правильно отображаться в Win7 по Win10 и не наезжать друг на друга под разными системами.
Я уже протестировал - всё классно получается ! Спасибо !

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




Пост N: 4665
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.01.16 22:38. Заголовок: Читаю в MiniGUI.chm ..


Читаю в MiniGUI.chm "MiniGui 16 Extend"
функции GetMyDocumentsFolder() и GetModuleFilename()
Ставлю к себе в программу, не собирается:
Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland
Error: Unresolved external '_HB_FUN_GETMODULEFILENAME' referenced from ...
Error: Unresolved external '_HB_FUN_GETMYDOKUMENTSFOLDER' referenced from ...
hbmk2[IEntrepreneur]: Error: Running linker. 2


Поиск по всей папке MiniGUI не дал ничего !
Где эти функции ?


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





Пост N: 20
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 28.01.16 12:38. Заголовок: Уважаемый Григорий, ..


Уважаемый Григорий, наткнулся в примерах ... сбой в программах
на фукции MsgMiniGuiError() ...

Например -
Application: C:\MiniGUI\SAMPLES\BASIC\Histogram\demo.exe
Date: 01/28/16 Time: 13:25:41
Time from start: 0 days 0 hours 0 mins 11 secs
Error MGERROR/0 Control: Graph_Title Of Veamos Not defined. Program terminated.

Called from MSGMINIGUIERROR(94)
Called from SETPROPERTY(3661)
Called from ELGRAFICO(139)
Called from (b)PRESENTA(4)
Called from _PROCESSINITPROCEDURE(1511)
Called from _ACTIVATEWINDOW(1363)
Called from PRESENTA(52)
Called from (b)MAIN(699)
Called from _DOCONTROLEVENTPROCEDURE(1670)
Called from EVENTS(1583)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1388)
Called from MAIN(24)


Описание этой фукции MsgMiniGuiError() выдачи наименования ошибки нигде не нашел ...

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




Пост N: 763
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.01.16 12:42. Заголовок: Alex_Cher пишет: Оп..


Alex_Cher пишет:

 цитата:
Описание этой фукции MsgMiniGuiError() выдачи наименования ошибки нигде не нашел ...


Плохо искал
MiniGui\Source\h_error.prg
 
*-----------------------------------------------------------------------------*
*-Date Created: 01-01-2003
*-Author: Antonio Novo <antonionovo@gmail.com>
*-Modified by Grigory Filatov at 24-08-2014
*-----------------------------------------------------------------------------*
FUNCTION MsgMiniGuiError( cMessage, lAddText )
*-----------------------------------------------------------------------------*

cMessage += iif( hb_defaultValue( lAddText, .T. ), " Program terminated.", "" )

RETURN Eval( ErrorBlock(), _HMG_GenError( cMessage ) )



А в примере MiniGUI\SAMPLES\BASIC\Histogram\demo.exe ошибка происходит потому, что гистограмма пытается вывести заголовок (Title), который был удален руками из поля редактирования.


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





Пост N: 21
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 02.02.16 13:02. Заголовок: ВНИМАНИЕ ВСЕМ кто пе..


ВНИМАНИЕ ВСЕМ кто перегнал свои проекты под последнюю сборку 16.01

Функция конвертации текстового файла в DBF работает не корректно -

append from _FailName.txt delimited with ","

Файл DBF получается с совершенной измененным записями не соответсвующими исходнику.
Срочно перегнал проект под сборку 15.12 - работает нормально.

Уважаемый Григорий прошу обратить вниманине ...



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




Пост N: 872
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.02.16 16:10. Заголовок: Alex_Cher пишет: пр..


Alex_Cher пишет:

 цитата:
прошу обратить вниманине


Эта проблема уже решена Пржемеком в последней версии Харбора на сервере GitHub

 цитата:
Last ChangeLog entry: 2016-02-01 14:55 UTC+0100 Przemyslaw Czerpak


Исправленная версия Харбора будет включена в следующую сборку минигуи 16.02

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




Пост N: 4682
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.02.16 17:12. Заголовок: А проблемы с индекса..


А проблемы с индексами CDX нет случайно тоже ?
А то второй день борюсь с кодом... Индекс ломается при закрытии...

Ну точно, откатился на старую версию, работает...


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




Пост N: 846
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.02.16 20:20. Заголовок: gfilatov2002 У себя..


gfilatov2002
У себя с TsBrowse сделел правку:
METHOD DrawHeaders( lFooters )
... 
было
If lOrder //V90
Default lDescend := .F., ::aSortBmp := { StockBmp( 4 ), StockBmp( 5 ) }
hBitMap := ::aSortBmp[ If( lDescend, 2, 1 ) ]
nAlign := nMakeLong( DT_LEFT, DT_RIGHT )
...
стало
nAlign := nMakeLong( nAlign, DT_RIGHT )



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




Пост N: 847
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.02.16 20:31. Заголовок: gfilatov2002 еще вв..


gfilatov2002
еще ввел в TSColumn.prg
DATA lNoDescend AS LOGICAL INIT .F. // No descending order flag ( dbf )

и в TsBrowse для работы с ордером
METHOD SetOrder( nColumn, cPrefix, lDescend )
... 
было
If ::lIsDbf .and. ! Empty( oColumn:cOrder ) //V90

If nColumn == ::nColOrder .or. oColumn:lDescend == Nil //V90
If lDescend == Nil
lDescend := If( Empty( ::nColOrder ) .or. oColumn:lDescend == Nil, .F., ! oColumn:lDescend )
EndIf

( ::cAlias )->( OrdDescend( ,, lDescend ) )
oColumn:lDescend := lDescend
...
стало
EndIf
If oColumn:lNoDescend
lDescend := .F.
Else
( ::cAlias )->( OrdDescend( ,, lDescend ) )
EndIf
oColumn:lDescend := lDescend
...

не всегда мне descend нужет на dbf

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




Пост N: 768
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.02.16 10:36. Заголовок: Маленькое дополнение в TSBrowse


Григорий, добавил в метод SetBtnGet() поддержку символьного имени колонки.
Если можно - включите это в сборку.

 
METHOD SetBtnGet( nColumn, cResName, bAction, nBmpWidth ) CLASS TSBrowse

Default nBmpWidth := 16

nColumn := if( ValType( nColumn ) == "C", ::nColumn( nColumn ), nColumn )

If nColumn == Nil .or. nColumn > Len( ::aColumns ) .or. nColumn <= 0
Return Self
EndIf

::aColumns[ nColumn ]:cResName := cResName
::aColumns[ nColumn ]:bAction := bAction
::aColumns[ nColumn ]:nBmpWidth := nBmpWidth
::aColumns[ nColumn ]:lBtnGet := .t.

Return Self


Теперь можно вместо
oBrw:SetBtnGet( oBrw:nColumn("TEST"), "", { |oEdit, xVar| ....... } , 32 )
так
oBrw:SetBtnGet( "TEST", "", { |oEdit, xVar| ....... } , 32 ) , что гораздо читабельнее

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




Пост N: 875
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.02.16 12:01. Заголовок: Haz пишет: включите..


Haz пишет:

 цитата:
включите это в сборку


Не вопрос - уже сделал

SergKis
Для отключения сортировки колонок есть переменная lNoChangeOrd в классе TSBrowse

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




Пост N: 848
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.02.16 13:16. Заголовок: gfilatov2002 Как я ..


gfilatov2002
Как я понял, флаг lNoChangeOrd - отменяет переключение ордеров при .T. вообще, а при .F. SetOrder(...) работает с переключением lDescend := .F.\.T. и если на теге dbf ключ по возрастанию, то обратную сортировку не отключить (в тек. версии), у меня не получилось.
А что с постом 846 предыдущего листа. Там, на мой взгляд, ошибка, т.е. центрованный текст в шапке прыгает влево при SetOrder(...) на колонку, а nAlign определяется выше по тексту

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




Пост N: 876
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.02.16 13:45. Заголовок: SergKis пишет: на м..


SergKis пишет:

 цитата:
на мой взгляд, ошибка, т.е. центрованный текст в шапке прыгает влево


Благодарю за разъяснение! Действительно, при переключении сортировки игнорируется текущее выравнивание колонки (так - у автора библиотеки). Поправил для новой сборки

SergKis пишет:

 цитата:
обратную сортировку не отключить (в тек. версии)


Да, все верно! Но, если обратная сортировка колонки пользователем не нужна, то тогда просто можно отменить сортировку, ведь остается только прямая сортировка Или я что-то упустил...

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




Пост N: 849
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.02.16 14:07. Заголовок: gfilatov2002 пишет:т..


gfilatov2002 пишет:
 цитата:
тогда просто можно отменить сортировку


 
METHOD LDblClick( nRowPix, nColPix, nKeyFlags )
...
ElseIf nClickRow == 0 .and. ::lDrawHeaders .and. ! ::lNoChangeOrd // GF 1.71
If ::bLDblClick != Nil .and. ::aActions == Nil
Eval( ::bLDblClick, uPar1, uPar2, nKeyFlags, Self )
Else
::SetOrder( ::nAtCol( nColPix, ! ::lSelector ) ) //V90
EndIf
...

колонок со связанными тегами может быть от 2-х и больше, т.е. управление\переключение ими затруднено

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




Пост N: 850
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.02.16 14:33. Заголовок: PS. поставив oCol:cO..


PS.
поставив oCol:cOrder := <тег наме> нескольким колонкам, далее по переключению все делает TsBrowse, без внешнего управления

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




Пост N: 877
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.02.16 15:05. Заголовок: SergKis пишет: пост..


SergKis пишет:

 цитата:
поставив oCol:cOrder := <тег наме> нескольким колонкам


Понял, добавлю переменную lNoDescend, как было предложено выше

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




Пост N: 769
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.02.16 12:21. Заголовок: Григорий , еще попра..


Григорий , еще поправочка в TSBrowse
Описание проблемки:
Установку фильтра на базу обычно делаю так :
(oBrw:cAlias)->dbSetFilter()  
(oBrw:cAlias)->dbGoTop()
oBrw:Reset()

Если фильтр возвращает 0 записей , то в методе ::Reset() по ::GoTop() или ::GoBottom() игнорируется выполнение блока bChange.
т.к. в исходниках при ::nLen < 1 сразу идет Return Self
Но по сути ведь произошло перепозиционирование записи с какой то до фильтра, на Bof() или Eof() и по логике bChange должен сработать.
У меня по bChange висит вывод комментария по текущей записи в окно и получаю что записей нет, а коммент остался.
Мне не сложно после Reset выполнить Eval( oBrw:bChange ) , но есть ощущение что это не наш метод
Решение
Можно подправить методы ::GoTop() или ::GoBottom() чтобы перед Return Self вызывался bChange, но думаю проще это один раз сделать в ::Reset(). Тем более эта ситуация возникает только в случае когда явно этот ::Reset() требуется
Предлагаю такую концовку метода ::Reset()
 
::Refresh( .T., .T. )

If ::nLen <1 .and. ::bChange != Nil
Eval( ::bChange, Self, 0 )
EndIf


Return Self




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




Пост N: 878
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.02.16 12:45. Заголовок: Haz пишет: еще попр..


Haz пишет:

 цитата:
еще поправочка в TSBrowse


Принято с благодарностью

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




Пост N: 879
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.02.16 12:49. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня RC для очередной сборки библиотеки, которая выйдет на следующей неделе...
Полный список изменений см. ниже
Скрытый текст

Кстати, мои результаты тестирования скорости текущей версии Харбора см. ниже
Скрытый текст


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





Пост N: 22
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 12.02.16 13:39. Заголовок: Уважаемый Григорий, ..


Уважаемый Григорий,

C:\MiniGUI\SAMPLES\BASIC\ActiveX\Demo.prg
жалуется на устаревшую версию браузера -
click here

возможно ли сделать обновление ..?





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




Пост N: 770
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.02.16 14:01. Заголовок: Alex_Cher пишет: во..


Alex_Cher пишет:

 цитата:
возможно ли сделать обновление ..?


Скорее всего обновление требуется антивирусу на компе. ActiveX тут не причем, к сожалению похоже на браузерный вирус

PS. Хотя может и сам IE7 уже пора на пенсию , ему больше 10 лет )))

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




Пост N: 880
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.16 14:18. Заголовок: Alex_Cher пишет: жа..


Alex_Cher пишет:

 цитата:
жалуется на устаревшую версию браузера


Просто надо обновить Internet Explorer, который используется компонентом ActiveX.
Если установленная система позволяет, то - до версии 11 (иначе 9).

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




Пост N: 855
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.02.16 22:31. Заголовок: gfilatov2002 еще пр..


gfilatov2002
еще правочка, выделенным цветом добавка
 
METHOD LButtonUp( nRowPix, nColPix, nFlags ) CLASS TSBrowse
...
If nClickRow == 0 .or. nClickRow == -2
if nColPix > ::nLeft .and. ::nDragCol != nDestCol

If ::lMoveCols
::MoveColumn( ::nDragCol, nDestCol )
Else
::Exchange( ::nDragCol, nDestCol )
EndIf
elseif ::nDragCol = nDestCol
If ::aColumns[ nDestCol ]:bHLClicked != Nil
::DrawHeaders()
Eval( ::aColumns[ nDestCol ]:bHLClicked, nRowPix, nColPix, ::nAt, Self )
::DrawHeaders()
EndIf
Endif
EndIf
...

METHOD RButtonDown( nRowPix, nColPix, nFlags ) CLASS TSBrowse
...
If ::aColumns[ nCol ]:bHRClicked != Nil
Eval( ::aColumns[ nCol ]:bHRClicked, uPar1, uPar2, ::nAt, Self )
EndIf
ElseIf lSpecHd
If ::aColumns[ nCol ]:bSRClicked != Nil
Eval( ::aColumns[ nCol ]:bSRClicked, uPar1, uPar2, ::nAt, Self )
EndIf
ElseIf lFooter
If ::aColumns[ nCol ]:bFRClicked != Nil
Eval( ::aColumns[ nCol ]:bFRClicked, uPar1, uPar2, ::nAt, Self )
EndIf
EndIf
...


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




Пост N: 881
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.02.16 22:37. Заголовок: SergKis пишет: еще ..


SergKis пишет:

 цитата:
еще правочка


Принимается с благодарностью

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




Пост N: 882
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.02.16 11:24. Заголовок: Сегодня выпущен очер..


Сегодня выпущен очередной релиз библиотеки MiniguiEx.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.02-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1602-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1602.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1602_xhb10138.zip

Благодарю за Ваше внимание и поддержку данного проекта


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




Пост N: 4715
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.02.16 20:30. Заголовок: Перешёл на новую вер..


Перешёл на новую версию 16.02 и сразу же вопрос.

SergKis пишет:

 цитата:

на мой взгляд, ошибка, т.е. центрованный текст в шапке прыгает влево



gfilatov2002 пишет:

 цитата:

Благодарю за разъяснение! Действительно, при переключении сортировки игнорируется текущее выравнивание колонки (так - у автора библиотеки). Поправил для новой сборки



А как сделать по старому ?
Чтобы текст шапки при переключении - прыгал влево !
Мне это больше нравится, т.к. значок стрелки вниз/вверх затирается текстом шапки.

Вот картинка:


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




Пост N: 883
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.02.16 21:18. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как сделать по старому ?


Попробуй библиотеку по ссылке

http://hmgextended.com/files/MISC/tsbrowse-lib.zip


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




Пост N: 857
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.02.16 21:29. Заголовок: Андрей пишет:А как с..


Андрей пишет:
 цитата:
А как сделать по старому ?
Чтобы текст шапки при переключении - прыгал влево !
Мне это больше нравится, т.к. значок стрелки вниз/вверх затирается текстом шапки.


Пощелкай на колонке FullPath и слово прыгнет влево, т.к. колонка широкая - выглядит такое мелькание ужасно, не проще подправить для узкой колонки сразу текст влево, не в центр, можно добавить к тексту слева пару пробелов.

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




Пост N: 4716
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.02.16 00:32. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй библиотеку по ссылке


Спасибо ! Но это времянка...
Нужен ключ какой то сделать. Одним нравиться без прыганья, другим наоборот.

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




Пост N: 858
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.02.16 02:26. Заголовок: Andrey пишет:Нужен к..


Andrey пишет:
 цитата:
Нужен ключ какой то сделать. Одним нравиться без прыганья, другим наоборот.


для прыганья можно ставить на колонку:
oBrw5:aColumns[2]:nHAlign := {|nCol,oBrw| If( nCol == oBrw:nColOrder, DT_LEFT, oBrw:aColumns[nCol]:nHAlign ) }
или
oBrw5:aColumns[2]:nHAlign := {|nCol,oBrw| If( nCol == oBrw:nColOrder, DT_LEFT, DT_CENTER ) }


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




Пост N: 4717
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.02.16 03:12. Заголовок: SergKis пишет: для ..


SergKis пишет:

 цитата:
для прыганья можно ставить на колонку:


То что надо ! Спасибо !

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




Пост N: 859
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.02.16 13:53. Заголовок: gfilatov2002 Для уп..


gfilatov2002
Для управления сортировкой колонок при ::lIsArr == .T. (включить\выключить) более простым способом (без bSetOrder) предлагаю использовать переменную колонки (TsColumn) lIndexCol, при работе с массивом она не используется, т.е. oCol:lIndexCol := .T.\.F. - сортируется\нет колонка. Изменения следующие:
 
METHOD SetOrder( nColumn, cPrefix, lDescend ) CLASS TSBrowse
...
ElseIf ::lIsArr
If nColumn <= Len( ::aArray[ 1 ] ) .and. oColumn:lIndexCol
::cOrderType := ValType( ::aArray[ ::nAt, nColumn ] )
...

METHOD New( cHeading, bData, cPicture, aColors, aAlign, nWidth, ;
lBitMap, lEdit, bValid, lNoLite, cOrder, cFooting, ;
bPrevEdit, bPostEdit, nEditMove, lFixLite, a3DLook, ;
bWhen, oBrw, cData, cWhen, cValid, cPrevEdit, cPostEdit, cMsg, cToolTip, lTotal, ;
lSpinner, bUp, bDown, bMin, bMax, cError, cSpcHeading,;
cDefData, cName , lIndexCol ) CLASS TSColumn
...
Default cHeading := "" , ;
...
cName := ""


If ! empty(oBrw) .and. oBrw:lIsArr // для работы по старому алгоритму - все колонки сортируются
lIndexCol := .T.
EndIf

..

выделенным добавки
тогда в программе можно колонкам без сортировки (массив) поставить oCol:lInexCol := .F.
попробовал на своей версии - сработало. Может что не учел ?


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




Пост N: 860
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.02.16 13:59. Заголовок: PS поравочка в после..


PS
поправочка в последнем добавлении If ...

::lIndexCol := .T.



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




Пост N: 884
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.02.16 15:56. Заголовок: SergKis пишет: пред..


SergKis пишет:

 цитата:
предлагаю использовать переменную колонки (TsColumn) lIndexCol


Принимается


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




Пост N: 863
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.02.16 19:51. Заголовок: gfilatov2002 пишет:П..


gfilatov2002 пишет:
 цитата:
Принимается


тогда можно добавить обработку lNoDescend (для одинаковости с ::lIsDbf == .T.)
 
ElseIf ::lIsArr
If nColumn <= Len( ::aArray[ 1 ] ) .and. oColumn:lIndexCol
::cOrderType := ValType( ::aArray[ ::nAt, nColumn ] )
//V90
If nColumn == ::nColOrder .or. Empty( oColumn:cOrder ) .or. oColumn:lDescend == Nil
If lDescend == Nil
lDescend := If( Empty( oColumn:cOrder ) .or. oColumn:lDescend == Nil, .F., ! oColumn:lDescend )
EndIf

If oColumn:lNoDescend
lDescend := .F.
EndIf

oColumn:lDescend := lDescend
::nColOrder := nColumn
...


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




Пост N: 885
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.02.16 21:10. Заголовок: SergKis пишет: можн..


SergKis пишет:

 цитата:
можно добавить обработку lNoDescend


OK

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




Пост N: 865
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.02.16 11:58. Заголовок: gfilatov2002 Правка..


gfilatov2002
Правка
 
METHOD DrawLine( xRow ) CLASS TSBrowse
...
было
( line 2913 )
If nJ == ::nColSel .and. ::uBmpSel != Nil .and. lSelected
uBmpCell := ::uBmpSel
nAlign := nMakeLong( LoWord( nAlign ), ::nAligBmp )
ElseIf oColumn:lBitMap .and. Valtype( uData ) == "N" .and. ! Empty( ::aBitMaps )
If uData > 0 .and. uData <= Len(::aBitMaps)
uBmpCell := ::aBitMaps[ uData ]
EndIf
nAlign := nMakeLong( oColumn:nAlign, oColumn:nAlign )
uData := ""
ElseIf Empty( cPicture )
uData := If( Valtype( uData ) != "C", cValToChar( uData ), uData )
Else
uData := If( uData == NIL, "", Transform( uData, cPicture ) )
EndIf
...
( line 2969 )
If lCheck
Default ::aCheck := { StockBmp( 6 ), StockBmp( 7 )}
hBitMap := ::aCheck[ If( Upper( uData ) == "T", 1, 2 ) ]
nAlign := nMakeLong( DT_CENTER, DT_CENTER )
uData := ""
ElseIf oColumn:lEmptyValToChar .and. empty(uData)
uData := ""

EndIf
...
стало
If nJ == ::nColSel .and. ::uBmpSel != Nil .and. lSelected
uBmpCell := ::uBmpSel
nAlign := nMakeLong( LoWord( nAlign ), ::nAligBmp )
ElseIf oColumn:lBitMap .and. Valtype( uData ) == "N" .and. ! Empty( ::aBitMaps )
If uData > 0 .and. uData <= Len(::aBitMaps)
uBmpCell := ::aBitMaps[ uData ]
EndIf
nAlign := nMakeLong( oColumn:nAlign, oColumn:nAlign )
uData := ""
ElseIf ! lCheck .and. oColumn:lEmptyValToChar .and. empty(uData)
uData := ""

ElseIf Empty( cPicture )
uData := If( Valtype( uData ) != "C", cValToChar( uData ), uData )
Else
uData := If( uData == NIL, "", Transform( uData, cPicture ) )
EndIf
...
If lCheck
Default ::aCheck := { StockBmp( 6 ), StockBmp( 7 )}
hBitMap := ::aCheck[ If( Upper( uData ) == "T", 1, 2 ) ]
nAlign := nMakeLong( DT_CENTER, DT_CENTER )
uData := ""
EndIf
...

METHOD DrawSelect( xRow ) CLASS TSBrowse
...
было
( line 3227 )
If nJ == ::nColSel .and. ::uBmpSel != Nil .and. lSelected
uBmpCell := ::uBmpSel
nAlign := nMakeLong( LoWord( nAlign ), ::nAligBmp )
ElseIf oColumn:lBitMap .and. Valtype( uData ) == "N" .and. ! Empty( ::aBitMaps )
If uData > 0 .and. uData <= Len(::aBitMaps)
uBmpCell := ::aBitMaps[ uData ]
nAlign := nMakeLong( LoWord( nAlign ), nAlign )
uData := ""
EndIf
ElseIf Empty( cPicture )
uData := If( Valtype( uData ) != "C", cValToChar( uData ), uData )
Else
uData := If( uData == NIL, "", Transform( uData, cPicture ) )
EndIf
...
стало
If nJ == ::nColSel .and. ::uBmpSel != Nil .and. lSelected
uBmpCell := ::uBmpSel
nAlign := nMakeLong( LoWord( nAlign ), ::nAligBmp )
ElseIf oColumn:lBitMap .and. Valtype( uData ) == "N" .and. ! Empty( ::aBitMaps )
If uData > 0 .and. uData <= Len(::aBitMaps)
uBmpCell := ::aBitMaps[ uData ]
nAlign := nMakeLong( LoWord( nAlign ), nAlign )
uData := ""
EndIf
ElseIf ! lCheck .and. oColumn:lEmptyValToChar .and. empty(uData)
uData := ""

ElseIf Empty( cPicture )
uData := If( Valtype( uData ) != "C", cValToChar( uData ), uData )
Else
uData := If( uData == NIL, "", Transform( uData, cPicture ) )
EndIf


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




Пост N: 888
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.02.16 13:29. Заголовок: SergKis Благодарю з..


SergKis
Благодарю за поправки, уже сделал эти исправления
Но хотелось бы получить также небольшое пояснение по этому поводу

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




Пост N: 866
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.02.16 14:55. Заголовок: gfilatov2002 пишет:п..


gfilatov2002 пишет:
 цитата:
пояснение по этому поводу


начал делать реальную задачу, получилось nValToChar отрабатывала раньше по тексту и для числа пустого уже uData =='0.00', т.е алгоритм не работал, потому перенес выше по тексту (исключив lCheck==.T.), а в DrawSelect обработка пропущена и в строке с курсором lEmptyValToChar совсем не работал

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




Пост N: 889
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.02.16 15:09. Заголовок: SergKis пишет: нача..


SergKis пишет:

 цитата:
начал делать реальную задачу


Благодарю за разъяснение, желаю успеха в Ваших делах

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



Пост N: 12
Зарегистрирован: 22.09.13
ссылка на сообщение  Отправлено: 29.02.16 16:39. Заголовок: Всем доброго здравия..


Всем доброго здравия!
Скажите, а IDE никак не прикручивается к 64 разрядной версии?
Или здесь он не катит, нужен другой?

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




Пост N: 892
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.03.16 13:10. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня очередную бета-версию для новой сборки библиотеки.
Полный список изменений см. ниже
Скрытый текст

Поздравляю всех женщин (-программистов) на форуме с наступающим


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




Пост N: 885
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.16 15:34. Заголовок: gfilatov2002 доделе..


gfilatov2002
доделел ToolTip на TsBrowse.
1. Работает на всех колонках, строках с индикацией смены nRow, nCol мышой
2. убрал STATIC nToolTip, lToolTip, hToolTip, перенеся их в класс TSB
3. можно задавать ToolTiip так:
oBrw:cToolTip := {|oBr,nCol,nRow| "My TBrowse tooltip. Col ="+str(nCol,3)+" Row ="+str(oBr:nRow,3) }
aEval(oBrw:aColumns, {|oCol| oCol:cToolTip := {|oBr,nCol,nRow| "My column tooltip. Col ="+str(nCol,3)+" Row ="+str(oBr:nRow,3) } })
Изменения: Скрытый текст


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




Пост N: 4762
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.16 18:27. Заголовок: SergKis пишет: доде..


SergKis пишет:

 цитата:
доделел ToolTip на TsBrowse.


Классно !
Григорий, добавляй в новую версию !

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




Пост N: 893
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.03.16 18:30. Заголовок: Andrey пишет: добав..


Andrey пишет:

 цитата:
добавляй в новую версию


Уже добавил, обработка кодовых блоков в подсказках работает!
Благодарю за помощь

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




Пост N: 886
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.16 18:50. Заголовок: gfilatov2002 Еще к ..


gfilatov2002
Еще к ToolTip
 
c_controlmisc.c
HB_FUNC( SETTOOLTIP )
...
было
ti.lpszText = Text;
SendMessage( hWnd_ToolTip, ( UINT ) TTM_ADDTOOL, ( WPARAM ) 0, ( LPARAM ) &ti );

hb_retni( 0 );

стало
ti.lpszText = Text;
SendMessage( hWnd_ToolTip, ( UINT ) TTM_ADDTOOL, ( WPARAM ) 0, ( LPARAM ) &ti );

// Много строчно // (LPARAM)0xFFFFFF); Максимальная ширина очень большая
SendMessage( hWnd_ToolTip, ( UINT ) TTM_SETMAXTIPWIDTH, ( WPARAM ) 0, ( LPARAM ) 0x00FFFFFF );
hb_retni( 0 );



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




Пост N: 894
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.03.16 21:03. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще к ToolTip


Посмотрите команду

 цитата:
SET TOOLTIP MAXWIDTH TO <w> OF <form>



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




Пост N: 887
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.16 21:36. Заголовок: gfilatov2002 пишет:П..


gfilatov2002 пишет:
 цитата:
Посмотрите команду


команды в ch файле упустил из вида

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




Пост N: 888
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.16 11:38. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение такое, снимает\упрощает некоторые решения, в том числе и обработка колонки с .T.\.F.\NIL
Скрытый текст


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




Пост N: 889
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.16 11:41. Заголовок: PS добавка в TSCOLUM..


PS
добавка в TSCOLUMN
DATA aBitMaps
DATA aCheck

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




Пост N: 895
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.03.16 12:59. Заголовок: SergKis пишет: обра..


SergKis пишет:

 цитата:
обработка колонки с .T.\.F.\NIL


Выполнил эти изменения, теперь нужен небольшой пример для проверки правильности их работы

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




Пост N: 890
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.16 21:11. Заголовок: gfilatov2002 Сделал..


gfilatov2002
Сделал: click here

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




Пост N: 896
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.03.16 22:04. Заголовок: SergKis Благодарю з..


SergKis
Благодарю за помощь!
Пример работает нормально

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




Пост N: 891
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.03.16 12:44. Заголовок: gfilatov2002 малень..


gfilatov2002
маленькая правка выделенным
 
METHOD HiliteCell( nCol, nColPix ) CLASS TSBrowse
...
nOldPos := ::nCell

If ::nFreeze > 0 .and. nOldPos < nNowPos .and. ::lLockFreeze // frozen col and going right
nNowPos := nAbsCell
lMove := ( nOldPos > ::nFreeze )
EndIf

If nOldPos < nNowPos // going right
...

сейчас при ::nFreeze := 7, ::nCell := 1, левый клик мыши на колонку < ::nFreze переключает фокус на колонку ::nFreeze, повторный клик ставит фокус на нужную колонку и так повторяется все время, добавка исправляет ситуацию

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




Пост N: 897
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.03.16 13:34. Заголовок: SergKis пишет: мале..


SergKis пишет:

 цитата:
маленькая правка


Благодарю за поправку - сделана

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




Пост N: 892
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.16 09:10. Заголовок: gfilatov2002 еще ме..


gfilatov2002
еще мелочь
 
было
METHOD DrawPressed( nCell, lPressed ) CLASS TSBrowse
...
Local hDC := GetDC( ::hWnd ), ;
...
If Empty( nCell ) .or. nCell > Len( ::aColumns ) .or. ! ::lDrawHeaders
Return Self
ElseIf ! lPressed .and. ! ::aColumns[ nCell ]:l3DLookHead
::DrawHeaders()
Return Self
EndIf

nLeft := 0
...
ReleaseDC( ::hWnd, hDC )
...
стало
Local hDC, ;
...
If Empty( nCell ) .or. nCell > Len( ::aColumns ) .or. ! ::lDrawHeaders
Return Self
ElseIf ! lPressed .and. ! ::aColumns[ nCell ]:l3DLookHead
::DrawHeaders()
Return Self
EndIf

hDC := GetDC( ::hWnd )

nLeft := 0
...
ReleaseDC( ::hWnd, hDC )
...



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




Пост N: 898
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.03.16 11:17. Заголовок: SergKis пишет: еще ..


SergKis пишет:

 цитата:
еще мелочь


OK
Это исправляет возможную утечку памяти, и так - в коде у оригинального автора библиотеки

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




Пост N: 893
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.16 12:43. Заголовок: gfilatov2002 еще дл..


gfilatov2002
еще для чистоты объекта
 
Static nLapsus, hPrvWnd, hWndParent можно убрать после изменений

CLASS TSBrowse FROM TControl
...
DATA nLapsus INIT 0

...
METHOD Default() CLASS TSBrowse
...
::nOldCell := ::nCell
::nLapsus := Seconds()

If ::nLen == 0 //V90
::nLen := If( ::bLogicLen == Nil, Eval( ::bLogicLen := {||( cAlias )->( LastRec() ) } ), Eval( ::bLogicLen ) )
EndIf //end

Return Self
...
METHOD Seek( nKey ) CLASS TSBrowse
...
If ( Seconds() - ::nLapsus ) > 3 .or. ( Seconds() - ::nLapsus ) < 0
::cSeek := cSeek := ""
EndIf

::nLapsus := Seconds()
cPrefix := If( ::cPrefix == Nil, "", If( ValType( ::cPrefix ) == "B", Eval( ::cPrefix, Self ), ::cPrefix ) )
...
METHOD VertLine( nColPixPos, nColInit, nGapp ) CLASS TSBrowse
...
If nColInit != Nil
nsCol := nColInit
nsWidth := nColPixPos
nGap := If( ! Empty( nGapp ), nGapp, 0 )
nsOldPixPos := 0
// hWndParent := 0 //V90
// hPrvWnd := 0 //V90

_InvertRect( ::hDC, { 0, nsWidth - ::aColSizes[ nsCol ] - 2, aRect[4], nsWidth - ::aColSizes[ nsCol ] + 2 } )
EndIf
...


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




Пост N: 899
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.03.16 13:35. Заголовок: SergKis пишет: для ..


SergKis пишет:

 цитата:
для чистоты объекта


Благодарю за помощь!
Неиспользуемые переменные hPrvWnd и hWndParent убрал, а nLapsus оставил как статическую переменную (так - у автора )

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




Пост N: 894
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.16 13:42. Заголовок: gfilatov2002 пишет:n..


gfilatov2002 пишет:
 цитата:
nLapsus оставил как статическую переменную (так - у автора )


но тогда нельзя наследовать класс - суть класса теряется

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




Пост N: 895
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.03.16 13:58. Заголовок: PS имея на окне 4-е ..


PS
имея на окне 4-е TSB METHOD Seek( nKey ) в каждом будет портить значение для другого, можно сказать, что значение не важное и каждые 3 сек. обновляется, но по сути ...

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




Пост N: 900
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.03.16 11:01. Заголовок: SergKis пишет: METH..


SergKis пишет:

 цитата:
METHOD Seek( nKey ) в каждом будет портить значение для другого


Благодарю за разъяснение
Убрал эту статическую переменную и определил ее как переменную класса

 цитата:
VAR nLapsus AS NUMERIC INIT 0 PROTECTED



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




Пост N: 896
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.03.16 21:16. Заголовок: gfilatov2002 Обнару..


gfilatov2002
Обнаружил, что в MDI не работает WM_MOUSEWHEEL, у себя поборол так :
 
METHOD DrawHeaders( lFooters ) CLASS TSBrowse
...
SetFocus(hWnd)

Return Self

METHOD DrawIcons() CLASS TSBrowse
...
SetFocus(::hWnd)

Return Nil

METHOD DrawLine( xRow ) CLASS TSBrowse
...
SetFocus(hWnd)

Return Self

METHOD DrawPressed( nCell, lPressed ) CLASS TSBrowse
...
SetFocus(::hWnd)

Return Self

METHOD DrawSelect( xRow ) CLASS TSBrowse
...
SetFocus(hWnd)

Return Self

METHOD DrawSuper() CLASS TSBrowse
...
SetFocus(hWnd)

Return Nil

проверить TsB_Mdi.prg из Advanced\TsBrowse, установив, например
Brw_1:nWheelLines := 10


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




Пост N: 897
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.03.16 13:46. Заголовок: gfilatov2002 правка..


gfilatov2002
правка, снимающая некоторые вопросы высоты строк
было 
METHOD New( cControlName, nRow, nCol, nWidth, nHeight, bLine, aHeaders, aColSizes, cParentWnd,;
...
If Valtype( ::oWnd:hWnd ) != 'U'
::Create(::cControlName)
// т.к. ::hFont всегда NIL, то расчет высот происходит от 0, потом надо переустанавливать высоты.
// ::hFont уст. в _DefineTsBrowse() после создания объекта

If ::hFont != Nil
::SetFont( ::hFont )
EndIf
::nHeightFoot := 0 //JP
::nHeightCell := ::nHeightHead := SBGetHeight( ::hWnd, If( ::hFont != Nil, ::hFont, 0 ), 0 ) //JP
::nHeightSpecHd := IF(::lEditableHd,SBGetHeight( ::hWnd, If( ::hFont != Nil, ::hFont, 0 )),0)
...

стало
METHOD New( cControlName, nRow, nCol, nWidth, nHeight, bLine, aHeaders, aColSizes, cParentWnd, ;
...
Local hFont
...
If Valtype( ::oWnd:hWnd ) != 'U'
::Create(::cControlName)

If ::hFont != Nil
::SetFont( ::hFont )
::nHeightCell := ::nHeightHead := SBGetHeight( ::hWnd, If( ::hFont != Nil, ::hFont, 0 ) , 0 ) //JP
Else
hFont := InitFont(::cFont, ::nFontSize)
::nHeightCell := ::nHeightHead := GetTextHeight( 0, "B", hFont) + 5
DeleteObject ( hFont )
EndIf
::nHeightFoot := 0 //JP
::nHeightSpecHd := IF(::lEditableHd, ::nHeightCell, 0 )
...



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




Пост N: 901
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.03.16 15:28. Заголовок: SergKis пишет: прав..


SergKis пишет:

 цитата:
правка, снимающая некоторые вопросы высоты строк


Благодарю за помощь!
Это очень нужная поправка для учета высоты (и типа) шрифта, заданного при определении TBROWSE
Для совместимости со старым кодом, чтобы не увеличивать высоту ячейки по умолчанию, сделал так:

      If ::hFont != Nil 
::SetFont( ::hFont )
::nHeightCell := ::nHeightHead := SBGetHeight( ::hWnd, ::hFont, 0 )
Else
hFont := InitFont( ::cFont, ::nFontSize ) // SergKis addition
::nHeightCell := ::nHeightHead := GetTextHeight( 0, "B", hFont )
DeleteObject( hFont )
EndIf
::nHeightFoot := 0
::nHeightSpecHd := If( ::lEditableHd, ::nHeightHead, 0 )


SergKis пишет:

 цитата:
в MDI не работает WM_MOUSEWHEEL


Подтверждаю эту проблему, но предложенное решение создает другие проблемы с перерисовкой строк TBROWSE
Поэтому лучше обойтись без прокрутки строк в MDI, чем создавать новые проблемы (вплоть до GPF)
Либо надо искать другое решение для MDI


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




Пост N: 898
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.03.16 19:02. Заголовок: gfilatov2002 пишет:н..


gfilatov2002 пишет:
 цитата:
но предложенное решение создает другие проблемы с перерисовкой строк TBROWSE


Согласен, поэксперементировал и оставил только в DrawSelect (тоже не хорошо, но пока не находится место перекл.фокус с TSB на окно)
If GetFocus() != hWnd
SetFocus(hWnd)
EndIf
как следствие убрал из h_windowsMdi.prg, выделено цветом - вся обработка в Events(...). Мне надо несколько TSB на окне
 
FUNCTION MdiEvents ( hWnd, nMsg, wParam, lParam )
*-----------------------------------------------------------------------------*
LOCAL i, x, ControlCount
#ifdef _TSBROWSE_
LOCAL oGet
#endif

DO CASE

#ifdef _TSBROWSE_
//**********************************************************************
CASE nMsg == WM_KEYDOWN .OR. nMsg == WM_KEYUP
//**********************************************************************

// IF Type( '_TSB_aControlhWnd' ) == 'A' .AND. Len( _TSB_aControlhWnd ) > 0
// oGet := GetObjectByClientMDI( hWnd )
// IF ValType( oGet ) == 'O'
// oGet:HandleEvent ( nMsg, wParam, lParam )
// ENDIF
// ENDIF

#endif
//**********************************************************************
CASE nMsg == WM_MDIACTIVATE

т.к. oGet := GetObjectByClientMDI( hWnd ) работает только для одного TSB на окне (hWnd - handle child mdi окна)

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




Пост N: 899
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.03.16 09:06. Заголовок: SergKis пишет:Мне на..


SergKis пишет:
 цитата:
Мне надо несколько TSB на окне


Без решения главной проблемы - фокуса, несколько TSB на окне реализовать не получается. Убрал из DrawSelect вставку
WM_MOUSEWHEL сделал так h_windowsMdi.prg
 
Function MdiEvents(...)
...
#ifdef _TSBROWSE_
***********************************************************************
case nMsg == WM_KEYDOWN .OR. nMsg == WM_KEYUP

IF Type('_TSB_aControlhWnd') == 'A' .and. Len(_TSB_aControlhWnd) > 0
oGet := GetObjectByClientMDI(hWnd)
IF ValType(oGet) == 'O'
oGet:HandleEvent ( nMsg, wParam, lParam )
ENDIF
ENDIF

case nMsg == WM_MOUSEWHEEL

IF Type('_TSB_aControlhWnd') == 'A' .and. Len(_TSB_aControlhWnd) > 0
oGet := GetObjectByClientMDI(hWnd)
IF ValType(oGet) == 'O'
x := oGet:HandleEvent ( nMsg, wParam, lParam )
if ValType(x) == 'N'
IF x != 0
RETURN x
ENDIF
endif
ENDIF
ENDIF

#endif
***********************************************************************
case nMsg == WM_MDIACTIVATE
...


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




Пост N: 902
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.03.16 11:46. Заголовок: SergKis пишет: WM_M..


SergKis пишет:

 цитата:
WM_MOUSEWHEL сделал так


Благодарю за помощь - прокрутка строк TBROWSE в MDI дочерних окнах работает
Планирую выпустить финальную сборку 16.03 на следующей неделе

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




Пост N: 830
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.03.16 14:19. Заголовок: Григорий Есть еще п..


Григорий
Есть еще предложение ...
Как неоднократно тут вопрошал Андрей, при переключении между программами в Windows, если в программе на MiniGui последним активным было модальное окно , вызванное из дочернего, то такое модальное окно не получает фокус и программа уходит в вечное ожидание когда его закроют.
Схематически вызовы такие MAIN->CHILD->MODAL , переключаем задачи и попадаем в CHILD ( MODAL не видно и на него не переключиться ).

Предлагаю очень простое решение:
в модуле h_events.prg в обработку событий в функцию Events() , в событие WM_SETFOCUS добавить условие
 
Было:
_DoWindowEventProcedure ( _HMG_aFormGotFocusProcedure , i , 'WINDOW_GOTFOCUS' )
iif ( _HMG_aFormFocusedControl != 0 , setfocus ( _HMG_aFormFocusedControl ) , Nil )

Стало:
IF _HMG_IsModalActive
BringWindowToTop(_HMG_ActiveModalHandle)
ELSE

iif ( _HMG_aFormFocusedControl != 0 , setfocus ( _HMG_aFormFocusedControl ) , Nil )
END


Таким образом , при любой попытке дать фокус любому окну, если есть модальное , то фокус и топ на экране получит оно
PS. После получения фокуса , к модальному можно еще и Flash добавить .... будет моргать совсем как по настоящему )

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




Пост N: 904
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.03.16 15:35. Заголовок: Haz пишет: при любо..


Haz пишет:

 цитата:
при любой попытке дать фокус любому окну, если есть модальное , то фокус и топ на экране получит оно


Неплохое предложение, хотя особого эффекта функция BringWindowToTop() у меня не дает (но и ничего не портит, похоже).
Лучше работает другая функция WinAPI

 цитата:
DECLARE DLL_TYPE_BOOL SwitchToThisWindow( DLL_TYPE_LONG hWnd, DLL_TYPE_BOOL lRestore ) ;
IN USER32.DLL

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

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




Пост N: 4795
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.16 17:58. Заголовок: Haz пишет: к модаль..


Haz пишет:

 цитата:
к модальному можно еще и Flash добавить .... будет моргать совсем как по настоящему )



Григорий - добавь пожалуйста ! Очень нужно...

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




Пост N: 831
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.03.16 18:36. Заголовок: Andrey пишет: Григо..


Andrey пишет:

 цитата:
Григорий - добавь пожалуйста ! Очень нужно...


тогда так
 
if _HMG_IsModalActive
BringWindowToTop(_HMG_ActiveModalHandle)
if _HMG_aFormFocusedControl <> _HMG_ActiveModalHandle .and. _HMG_aFormType [ i ] <> "M"
FlashWindowEx( _HMG_ActiveModalHandle , 1, 5, 100 )
end

else
iif ( _HMG_aFormFocusedControl != 0 , setfocus ( _HMG_aFormFocusedControl ) , Nil )
end




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




Пост N: 900
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.03.16 19:54. Заголовок: gfilatov2002 В свое..


gfilatov2002
В своей версии подправил:
 
METHOD GoToRec( nRec ) CLASS TSBrowse
...
( ::cAlias )->( DbGoto( nRec ) )

// If nRecNo != ( ::cAlias )->( RecNo() ) .and. ::nLen > nLines было


If ::nLen > nLines


nRecNo := ( ::cAlias )->( RecNo() )
( ::cAlias )->( DbSkip( nLines - ::nRowPos ) )

If ( ::cAlias )->( EoF() )
...
Else
( ::cAlias )->( DbGoTo( nRecNo ) )
::nLastPos := nRecNo
::nAt := ::nLogicPos()
EndIf
...

без этих изменений, не удерживался ::nRowPos (перепрыгивал на 1) и бывало не так, как надо перепоказ происходил
Пример (на базе Tsb_addrecord): Скрытый текст


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




Пост N: 905
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.03.16 23:59. Заголовок: SergKis пишет: без ..


SergKis пишет:

 цитата:
без этих изменений, не удерживался ::nRowPos


Благодарю за помощь, сделал эти изменения в коде TSBrowse

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




Пост N: 906
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.03.16 00:01. Заголовок: Andrey пишет: добав..


Andrey пишет:

 цитата:
добавь пожалуйста ! Очень нужно


Не вопрос, уже добавил моргание (6 раз с интервалом в 50 миллисекунд)

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




Пост N: 907
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.03.16 11:59. Заголовок: Сегодня выпущен очер..


Сегодня выпущен очередной релиз библиотеки MiniguiEx.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.03-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1603-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1603.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1603_xhb10146.zip

Благодарю за Ваше внимание и поддержку данного проекта

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




Пост N: 833
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.03.16 15:12. Заголовок: Григорий , все же сл..


Григорий , все же следующий вариант работает более корректно ( у себя заменил на него )
 
//H_EVENTS.PRG
_DoWindowEventProcedure ( _HMG_aFormGotFocusProcedure , i , 'WINDOW_GOTFOCUS' )

IF _HMG_IsModalActive
BringWindowToTop(_HMG_ActiveModalHandle)
if _HMG_aFormFocusedControl <> _HMG_ActiveModalHandle .and. _HMG_aFormType [ i ] <> "M" // Это нужно чтоб при вызове из модального окна - другого
FlashWindowEx( _HMG_ActiveModalHandle , 1, 6, 50 ) // модального , старое не мограло
end
ELSE
iif ( _HMG_aFormFocusedControl != 0 , setfocus ( _HMG_aFormFocusedControl ) , Nil )
END


Проверял работу новой версии вот на примере ниже , если после запуска теста на панели задач выбрать мышью другое приложение , а потом опять тест - НЕ ВСЕГДА попадаем в модал да и моргает не то окно ( в титле окон видно ). А если переключать не мышом, а альт+таб , то вроде нормик
 
#include "minigui.ch"

Function Main

DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'MiniGUI Main' ;
MAIN ;
ON INIT Child()


END WINDOW

Form_1.Activate

Return Nil


Func Child()
Form_1.Hide
DEFINE WINDOW Form_2 ;
AT 100,100 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'MiniGUI Standard' ;
WINDOWTYPE STANDARD ;
ON INIT Modal()

END WINDOW

Form_2.Activate
Form_1.Show

return nil


Func Modal()
DEFINE WINDOW Form_3 ;
AT 200,200 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'MiniGUI Modal' ;
MODAL

END WINDOW
Form_3.Activate
return nil



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




Пост N: 908
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.03.16 23:01. Заголовок: Haz пишет: следующ..


Haz пишет:

 цитата:
следующий вариант работает более корректно


Благодарю за пример!

Предлагаю доработанный вариант кода с учетом Ваших замечаний:
... 
IF _HMG_IsModalActive
BringWindowToTop ( _HMG_ActiveModalHandle )
IF iswinnt() .AND. ( _HMG_aFormType != 'M' .OR. ;
_HMG_aFormFocused == .T. .AND. _HMG_aFormType [ AScan ( _HMG_aFormHandles, _HMG_aFormParentHandle ) ] == 'M' )
// Form's caption blinking
FlashWindowEx ( _HMG_ActiveModalHandle , 1 , 5 , 60 )
ELSE
_HMG_aFormFocused := .T.
ENDIF
ENDIF

IF _HMG_aFormFocusedControl != 0
setfocus ( _HMG_aFormFocusedControl )
ENDIF


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




Пост N: 909
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.03.16 11:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
доработанный вариант кода


Сделал "тихий" апдейт сборки 16.03 с учетом этих поправок
Для кого это критично, могут обновить у себя инсталяцию BCC по ссылке выше

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




Пост N: 834
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.03.16 12:13. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Сделал "тихий" апдейт сборки 16.03 с учетом этих поправок


Спасибо, в таком варианте все работает.



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



Пост N: 288
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.03.16 15:01. Заголовок: Заметил небольшой ба..


Заметил небольшой баг .
WINDOWS XP . Тема - "XP стандартная голубая"
Контрол из MiniGui :FRAME
Неправильно отображает цвета , указанные в FONTCOLOR ......
Пишу - WHITE - выводит вроде как зелёный :(

WINDOWS -7 . Тема "Классическая" -отображение правильное .


На других темах не проверял



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




Пост N: 910
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.03.16 15:08. Заголовок: Softlog86 пишет: Те..


Softlog86 пишет:

 цитата:
Тема "Классическая" -отображение правильное


Это не ошибка. В классической теме под WinXP будет также отображение правильное
Выводы о поведении Винды в разных темах делайте самостоятельно...

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



Пост N: 289
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.03.16 22:45. Заголовок: просто другие контро..


просто другие контролы вырисовываются заданным цветом , а frame - почему-то по-своему . Чтоб ему еще прикрутить свойство NOXPSTYLE :)
Посоветуйте как решить-то ? или тупо не использовать раскраску вовсе ? ругаются клиенты что ничего не видно . А предлагать им "сменить тему" ...... не так поймут .

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




Пост N: 911
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.03.16 23:30. Заголовок: Softlog86 пишет: По..


Softlog86 пишет:

 цитата:
Посоветуйте как решить


Используйте в таком случае OwnerDraw frame как в примере из папки samples\Basic\LABEL_3
Вызов функции

 цитата:
MyFrame(300,300,175,50,"20","My Frame",BLUE,LGREEN)



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



Пост N: 290
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 24.03.16 10:54. Заголовок: Спасибо за наводку ...


Спасибо за наводку .... Приму к сведению .....

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




Пост N: 174
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 24.03.16 11:29. Заголовок: У меня все Разморгалось в новой


У меня все Разморгалось с новой сборкой 16.03 :) Видимо потому что я пользуюсь только Модальными окнами .
Причем в версии под MINGW имею Модальное окно которое моргает после того когда възвал и закрыл функцию MsgInfo() например.
а в BCC наоборот сначало моргает MsgInfo() при показе а потом и основное Модальное окно из кторого функция бъла вызвана

Григорий есть способ ето откльчить ?

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




Пост N: 835
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.03.16 14:58. Заголовок: sashaBG пишет: У ме..


sashaBG пишет:

 цитата:
У меня все Разморгалось с новой сборкой 16.03 :


Есть такое. При нескольких модальный они перемигиваются
Скорее всего дело в условии
 
IF iswinnt() .AND. ( _HMG_aFormType != 'M' .OR. ;
_HMG_aFormFocused == .T. .AND. _HMG_aFormType [ AScan ( _HMG_aFormHandles, _HMG_aFormParentHandle ) ] == 'M' )


поменял у себя на
 
if iswinnt() .AND. _HMG_aFormFocusedControl <> _HMG_ActiveModalHandle .and. _HMG_aFormType [ i ] <> "M"


т.е. мигает только если пытается получить фокус не то окно которое является последним открытым модальным, а какое то другое.
При этом окно которое хочет получить фокус не является модальным.
После этой правки вроде полегчало и моргает только по делу.
Для отключения, можно флаг организовать в исходнике типа lModalBlink и моргать только если он выставлен в .T.

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




Пост N: 912
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.03.16 15:40. Заголовок: sashaBG пишет: Григ..


sashaBG пишет:

 цитата:
Григорий есть способ ето откльчить ?


Да, надо в исходнике h_events.prg изменить обработку события WM_SETFOCUS
таким образом:
... 
_DoWindowEventProcedure ( _HMG_aFormGotFocusProcedure [ i ] , i , 'WINDOW_GOTFOCUS' )

IF _HMG_IsModalActive .AND. Empty ( _HMG_InplaceParentHandle )
BringWindowToTop ( _HMG_ActiveModalHandle )
IF iswinnt() .AND. _HMG_aFormType [ i ] != 'M'
// Form's caption blinking
FlashWindowEx ( _HMG_ActiveModalHandle , 1 , 5 , 60 )
ENDIF
ENDIF
...
и пересобрать библиотеку

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




Пост N: 913
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.03.16 16:21. Заголовок: sashaBG Обновил сб..


sashaBG

Обновил сборку для компилятора BCC с учетом данного обсуждения на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.03-setup.zip
Ваши комментарии приветствуются

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




Пост N: 836
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.03.16 16:46. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Ваши комментарии приветствуются


Работает как надо

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




Пост N: 175
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 25.03.16 09:18. Заголовок: Да теперь все хорошо !


Да теперь все хорошо !

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




Пост N: 4807
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.16 11:20. Заголовок: Что-то у меня в Tsbr..


Что-то у меня в Tsbrowse все размеры поехали...
Но я сам размеры фонта устанавливал.
Как считается размер фонта под разные расширения экрана ?

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




Пост N: 913
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.03.16 11:53. Заголовок: Andrey пишет:Что-то ..


Andrey пишет:
 цитата:
Что-то у меня в Tsbrowse все размеры поехали...


сейчас высота строки считается от фонта, раньше не считалась и была для всех фонтов 16
 
hFont := InitFont( ::cFont, ::nFontSize ) // SergKis addition
::nHeightCell := ::nHeightHead := GetTextHeight( 0, "B", hFont ) + 1
DeleteObject( hFont )


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



Пост N: 132
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 13.04.16 12:47. Заголовок: Проблема с HBPrinter


Перепрыгнул с версии 15.12 сразу на 16.03 и обнаружил проблему:
в окне предварительного просмотра печати перестали работать оба
(горизонтальный и вертикальный) бегунка.
При масштабировании можно просматривать только верхнюю левую
часть листа.

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




Пост N: 925
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.04.16 13:07. Заголовок: alex_II пишет: в ок..


alex_II пишет:

 цитата:
в окне предварительного просмотра печати перестали работать оба
(горизонтальный и вертикальный) бегунка.


Да, я подтверждаю эту проблему. Она уже исправлена в новой сборке 16.04, которая готовится сейчас к выпуску.

Но поскольку надо работать без ошибок уже "вчера", я сделал "тихое" обновление текущей версии по старому адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.03-setup.zip

Скачайте его, пожалуйста, и отпишитесь о результате здесь, на форуме

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



Пост N: 133
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 13.04.16 13:34. Заголовок: HBPrinter


Проверил - всё работает!
Большое спасибо за оперативную помощь

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




Пост N: 926
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.04.16 11:18. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня RC для новой сборки библиотеки.

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

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



Пост N: 2
Зарегистрирован: 13.04.16
ссылка на сообщение  Отправлено: 14.04.16 12:16. Заголовок: У меня давно уже про..


У меня давно уже проблема с Hotkey: при некоторых стечениях обстоятельств окно программы не активно (на "заднем плане" ), но получает WM_HOTKEY вместо активного окна.

Мне кажется, в h_events.prg на CASE WM_HOTKEY вместо

_HMG_aControlParentHandles == GetActiveWindow()
должно быть
_HMG_aControlParentHandles == GetForegroundWindow()

и в случае _HMG_aControlParentHandles != GetForegroundWindow() надо WM_HOTKEY отправлять "наверх"


Или я где-то капитально ошибаюсь?


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




Пост N: 927
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.04.16 13:03. Заголовок: sergeyd пишет: Или ..


sergeyd пишет:

 цитата:
Или я где-то капитально ошибаюсь?


Просто добавьте следующую команду в основной модуль

 цитата:
SET GLOBAL HOTKEYS ON


для Вашего случая

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



Пост N: 3
Зарегистрирован: 13.04.16
ссылка на сообщение  Отправлено: 14.04.16 14:27. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Просто добавьте следующую команду в основной модуль

SET GLOBAL HOTKEYS ON

для Вашего случая



Не помогает... Да и не мой случай, вроде.
У меня неактивная (на взгляд юзера неактивная, так как она НЕ ForegroundWindow) MinGUI-программа "хватает" hotkey.

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




Пост N: 4845
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.04.16 16:44. Заголовок: Классный синтаксис (..


Классный синтаксис (просто и изящно):
@ 20, 60 BUTTONEX Button_1x1 WIDTH 90 HEIGHT 100 ;
CAPTION "Santa.png" PICTURE "Santa" IMAGESIZE 64,64 ;
.....

Спасибо БОЛЬШОЕ !

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




Пост N: 4846
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.04.16 19:49. Заголовок: А иконки тоже будут ..


А иконки тоже будут уменьшаться ?

CAPTION "Santa.ico" ICON "Santa.ico" IMAGESIZE 64,64 ....

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




Пост N: 929
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.04.16 20:03. Заголовок: Andrey пишет: А ико..


Andrey пишет:

 цитата:
А иконки тоже будут уменьшаться ?


Нет, только JPG, GIF, TIF и PNG картинки

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




Пост N: 4848
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.04.16 21:49. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Нет, только JPG, GIF, TIF и PNG картинки


А сделать нельзя ?
Очень бы уменьшился труд по созданию кучи иконок....
Достало это рисование, вместо программирования, сидишь и эти иконки/картинки рисуешь под разные разрешения экрана.

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



Пост N: 299
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 15.04.16 13:13. Заголовок: А какая проблема авт..


А какая проблема автоматом переделать ICO в JPG ? :)

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




Пост N: 4851
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.04.16 18:02. Заголовок: Softlog86 пишет: А ..


Softlog86 пишет:

 цитата:
А какая проблема автоматом переделать ICO в JPG ? :)


В JPG нет прозрачности. Соответсвенно JPG на кнопке будут выглядеть ужасно.
Попробуй посмотреть иконку с кругом на кнопке и потом преобразуй иконку в JPG.
Смотри пример - https://cloud.mail.ru/public/DtiA/D2ZSqB3ue
И попробуй туда JPG сделать.


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



Пост N: 4
Зарегистрирован: 13.04.16
ссылка на сообщение  Отправлено: 15.04.16 20:16. Заголовок: Вот попробовал прост..


Вот попробовал простой пример с Hotkey сделать. Не на тему "неактивная MinGUI-программа хватает hotkey".

Если запустить программу один раз без параметра и параллельно с параметром 2,
а затем понажимать несколько раз F2 то в одном окне, то в другом, то под Windows 10 Pro и Windows 7 Pro результат зависит от того, переключаем ли между окнами по а)ALT+TAB или мышкой в таскбаре или б)щелкаем мышкой по окнам. Под XP Home вроде работает нормально, под W 7/10 б) глючит

Скрытый текст




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




Пост N: 933
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.04.16 10:23. Заголовок: Сегодня выпущен очер..


Сегодня выпущен очередной релиз библиотеки Minigui Ex.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.04-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1604-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1604.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1604_xhb10146.zip

Благодарю за Ваше внимание и поддержку данного проекта

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




Пост N: 947
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.05.16 10:39. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня pre-release для новой сборки библиотеки.
Финальная версмя запланирована к выходу на следуюшей неделе
Благодарю за Ваше внимание и поддержку данного проекта

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




Пост N: 4925
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.05.16 10:19. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Просто к сведению. Выпустил сегодня pre-release для новой сборки библиотеки.



Григорий, а почему в библиотеке нет примеров по LetoDB ?
Отличное средство для переводы программ в современную технологию.
Многие об этом не знают. Глядишь и захотят попробовать и перейдут на него.
Тем более есть ссылки на него в Вики и примеры для МиниГуи я высылал.

Через твою библиотеку многие увидят LetoDB !!!

У тебя же в библиотеке разные базы есть: MySQL, PostgreSQL, SQLite.



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


Пост N: 568
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 15.05.16 11:09. Заголовок: Поддерживаю !..


Поддерживаю !

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




Пост N: 967
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.05.16 15:30. Заголовок: Andrey пишет: Григо..


Andrey пишет:

 цитата:
Григорий, а почему в библиотеке нет примеров по LetoDB ?


Так в чем проблема ? Кто работает с LETO, выкладывайте примеры и Григорий с удовольствием их включит в ближайшую сборку.
 /* при этом все вопросы  к автору примера */

Andrey пишет:

 цитата:
примеры для МиниГуи я высылал.


мож потерялось где ...

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




Пост N: 4926
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.05.16 18:02. Заголовок: Вот ряд примеров - h..


Вот ряд примеров - https://cloud.mail.ru/public/KuUK/7e4ixTzsg
Что там добавить/исправить - пишите.

Единственно что не сделал ещё один пример, распаковки zip-файла на сервере.
Может кто поможет сделать ?
Создание и копирование Zip-файла есть в примерах.


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




Пост N: 948
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.05.16 10:15. Заголовок: Дню Пионерии 19 мая посвящается...


Сегодня выпущен очередной релиз библиотеки Minigui Ex.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.05-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1605-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1605.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1605_xhb10151.zip

Благодарю за Ваше внимание и поддержку данного проекта

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


Пост N: 1199
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.05.16 18:47. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Дню Пионерии 19 мая посвящается...



Оффтоп: машину времени, к сожалению, еще не придумали и вернуться в детство, более или менее счастливое, - увы, не получится.

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




Пост N: 952
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.06.16 11:55. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня первый RC для новой сборки библиотеки.

Полный список изменений см. ниже
Скрытый текст
Благодарю за Ваше внимание , а также за финансовую поддержку данного проекта


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


Пост N: 583
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 07.06.16 08:09. Заголовок: DBG_TEST c:\Mini..


DBG_TEST
c:\MiniGUI\SAMPLES\Advanced\DBG_TEST\
Не собирается

 цитата:

Harbour 3.2.0dev (r1605041350)
Copyright (c) 1999-2016, http://harbour-project.org/
C:/MiniGUI/lib/debugger.lib: file not recognized: File format not recognized
collect2: ld returned 1 exit status
hbmk2[dbg_test]: Error: Running linker. 1




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




Пост N: 1003
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.06.16 11:47. Заголовок: Vlad04 пишет: C:/Mi..


Vlad04 пишет:

 цитата:
C:/MiniGUI/lib/debugger.lib: file not recognized: File format not recognized


скорее всего пытаешься собрать в Mingw и кормишь ему борландовскую библиотеку
В среде BCC55 собирается без единого замечания

Строка "File format not recognized" это строка MInGw, ВСС ее не использует
Это "collect2:" - тоже из Mingw
А это debugger.lib файл в формате библиотеки Borland C

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


Пост N: 584
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 08.06.16 07:07. Заголовок: Haz Запустил build...


Haz
Запустил build.bat , который был в директории и получил сообщение.

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




Пост N: 1004
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.16 08:57. Заголовок: Vlad04 пишет: Пиш..


Vlad04 пишет:

 цитата:
запустил build


Пишу с мобилки, поэтому коротео.
Это называется "горе от ума".hbmk2 который собирает приложение - слишком умный.
Когда в системе установлены несколько компиляторов которые он понимает.
И когда пользователь не позаботился явно указать чем собирать, hbmk2 ищет сам.
В данном случае по псвоим алгоритмам он раньше нахоит Mingw.
Укажи явно что собирать надо борландом. У hbmk2 есть ключик, посмотреть можно hbmk2.exe - help.

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




Пост N: 5699
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 09:04. Заголовок: Vlad04 пишет: Запус..


Vlad04 пишет:

 цитата:
Запустил build.bat , который был в директории и получил сообщение.


Пути поправь в buildapp.bat
Проверил , нормально собирается и под BCC и под MINGW

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




Пост N: 1005
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.16 09:09. Заголовок: На счет пути в build..


На счет пути в buildapp не скажу. Т.к. не помню его содержимое. Возможно там путей и нет, а может Дима прав.
Как вариант можно в пути поиска PATH раньше указать папку с борландом.


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




Пост N: 5700
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 09:17. Заголовок: Haz пишет: Возможно..


Haz пишет:

 цитата:
Возможно там путей и нет


Есть пути Игорь
Например в начале (я сам правил , под себя)
 
SET HMGPATH=c:\minigui_mg\hmg

SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw32\bin;%PATH%

SET HMGRPATH=c:\minigui_mg\minigui



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




Пост N: 1006
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.16 11:10. Заголовок: Dima пишет: Есть пу..


Dima пишет:

 цитата:
Есть пути


Приехал на работу, пишу с компа )))

не факт что пути есть - вот содержимое build.bat из поставки Minigui - всего одна строка
call ..\..\..\batch\hbmk2.bat %* -b -trace dbg_test.hbp dbg_test.hbc
видимо надо добавить



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




Пост N: 5701
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 11:28. Заголовок: Haz я не про тот ба..


Haz
я не про тот батник (а тот что на пикче ниже) ))
и потом под Mingw там чуть иная структура каталогов


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




Пост N: 1007
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.06.16 11:30. Заголовок: Dima пишет: не про..


Dima пишет:

 цитата:
не про тот батник


так бы сразу и сказал

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




Пост N: 4961
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.16 16:03. Заголовок: Haz пишет: и потом ..


Haz пишет:

 цитата:
и потом под Mingw там чуть иная структура каталогов


Можно ли разместить МиниГуи под Mingw и BCC на одном диске ?
Хочется собирать проекты под разными компиляторами и посмотреть разницу.

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




Пост N: 5702
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 16:04. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли разместить МиниГуи под Mingw и BCC на одном диске ?


А что мешает то ?
Они живут по разным путям , у меня например.

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




Пост N: 4963
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.16 16:26. Заголовок: Dima пишет: А что м..


Dima пишет:

 цитата:
А что мешает то ?


Да по умолчанию ставятся в одни и теже папки...

Dima пишет:

 цитата:
Они живут по разным путям , у меня например.


Как сделано - напиши...

Можно ли сделать 2 разных *.hbp файла в одной папки для сборки 2-х разных ехе-ников ?

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




Пост N: 5703
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 16:48. Заголовок: Andrey пишет: Да по..


Andrey пишет:

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


Правда что ли ?
Минигуи под MiGW это архив а не инсталяха и куда распакуешь его туда и встанет.

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




Пост N: 5704
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.16 17:17. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли сделать 2 разных *.hbp файла в одной папки для сборки 2-х разных ехе-ников ?


Можно , но надо править дороги в батниках.

PS
Все дело в дорогах и батниках если кратко.

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





Пост N: 27
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 14.06.16 12:39. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Сегодня выпущен очередной релиз библиотеки Minigui Ex. Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу: http://hmgextended.com/files/CONTRIB/hmg-16.05-setup.zip



После обновления 16.05 при вызове GRID поверх стали появляться
lable главного окна ...

Было

стало


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




Пост N: 1010
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.06.16 13:49. Заголовок: Alex_Cher пишет: пр..


Alex_Cher пишет:

 цитата:
при вызове GRID поверх стали появляться
lable главного окна ...


Возможно проблему решит SetFocus на Grid или Hide на Label и Button
и зачем создавать себе трудности выводя контролы с пересекающимися координатами
если на форме в одном месте должно выводиться несколько контролов, у меня к примеру в зависимости от условий это GetBox, Combo, CheckBox и др. то видимый всегда один, остальные прячу


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





Пост N: 28
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 14.06.16 14:50. Заголовок: Haz пишет: Возможно..


Haz пишет:

 цитата:
Возможно проблему решит SetFocus на Grid или Hide на Label и Button



В общем согласен ..., но на предыдущих сборках Enabled на Label и Button (как видно на фото)
решал все подобные проблемы.


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



Пост N: 304
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 14.06.16 17:23. Заголовок: SHOW/HIDE и VISIBLE..


SHOW/HIDE и VISIBLE для Label работают не так как ENABLE .... :)

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




Пост N: 954
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.06.16 10:21. Заголовок: Сегодня выпущен очер..


Сегодня выпущен очередной релиз библиотеки Minigui Ex.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.06-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1606-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1606.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1606_xhb10151.zip

Обратите внимание, что для mingw-сборок использована fork-версия Харбора от Виктора Закатса без всяких изменений с моей стороны

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




Пост N: 5730
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.06.16 21:34. Заголовок: gfilatov2002 Исполь..


gfilatov2002
Использование CUEBANNER для BTNTEXTBOX возможна ?

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




Пост N: 956
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.06.16 22:06. Заголовок: Dima пишет: Использ..


Dima пишет:

 цитата:
Использование CUEBANNER для BTNTEXTBOX


Да, это возможно. Благодарю за предложение

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




Пост N: 5845
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.16 15:55. Заголовок: gfilatov2002 А возм..


gfilatov2002
А возможно ли сделать что бы в BUTTONEX , IMAGESIZE срабатывал и для иконок и bmp зашитых в ресурс EXE
файла ?
Объясню для чего надо.
Есть икона в ресурсе 32x32 и ее можно будет прицепить на любую кнопку уменьшив/увеличив ее размеры.
А так пока приходится держать пару - тройку одинаковых икон с разными размерами.

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




Пост N: 960
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.07.16 18:29. Заголовок: Dima пишет: Есть ик..


Dima пишет:

 цитата:
Есть икона в ресурсе 32x32 и ее можно будет прицепить на любую кнопку уменьшив/увеличив ее размеры.


Не получится, поскольку функция HMG_LoadPicture(), которая используется для масштабирования, не дружит с иконками

Dima пишет:

 цитата:
приходится держать пару - тройку одинаковых икон с разными размерами.


Попробуй конвертировать самую большую иконку в PNG формат
Возможно, тогда проблема с избыточными ресурсами будет решена

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




Пост N: 4995
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.07.16 18:51. Заголовок: Dima пишет: А так п..


Dima пишет:

 цитата:
А так пока приходится держать пару - тройку одинаковых икон с разными размерами.


Давно так мучаюсь... Куча дублей одной иконки...

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




Пост N: 5847
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.16 21:35. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй конвертировать самую большую иконку в PNG формат


Идея отличная
Так и сделал , поигрался....
Личные наблюдения:
 
1. ICO и BMP идеально ложатся на кнопку без искажений (играл с размером 32x32)
2. Тот же PNG такого же размера (говорю примерно о такой пикче но 32x32 http://www.icons101.com/icon_png/size_512/id_73282/Excel.png
лечь то она легла , но края "обгрызаны" будто хомячки погрызли.
В редакторе (вьювере) картинок , ICO и такой же PNG с таким же размером выглядят идентично
Попробовал ее масштабировать средствами BUTTONEX до 24x24 , та же песня , края "погрызаны"

Куда копать пока не понял. Остался на варианте 1 , там все идеально.

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




Пост N: 4996
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.07.16 23:01. Заголовок: Dima пишет: Куда ко..


Dima пишет:

 цитата:
Куда копать пока не понял.


Нужно менять (допиливать) функцию.
За вывод PNG на форму и кнопки в минигуи отвечают две функции:
HBITMAP HMG_LoadImage( char * FileName );
HBITMAP HMG_LoadPicture( char * FileName, int New_Width, int New_Height, HWND hWnd, int ScaleStretch, int Transparent, long BackgroundColor, int AdjustImage );

Вот есть подсказки как нужно делать:
https://msdn.microsoft.com/en-us/library/ee719902(v=VS.85).aspx
https://code.logos.com/blog/2008/09/displaying_a_splash_screen_with_c_part_i.html

Григорий написал:
"Теперь дело за "МАЛЫМ" - найти сишника, который согласится конвертировать эту "радость" в среду Харбора."

Я пока не смог найти Сишника, лето... пора отпусков... Жду сентября...

Вот пример для ICO - https://cloud.mail.ru/public/85DF/VqQteEoJp
Вот пример для PNG - https://cloud.mail.ru/public/DMSe/n43rPEZnk
А вот так выглядит PNG на C# - https://cloud.mail.ru/public/HuNC/xaHcVzLLz

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




Пост N: 5849
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.07.16 08:25. Заголовок: Andrey пишет: А вот..


Andrey пишет:

 цитата:
А вот так выглядит PNG на C#


Выглядит отлично

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




Пост N: 963
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.07.16 10:45. Заголовок: Завершена подготовка..


Завершена подготовка новой (возможно, последней с моим участием) сборки библиотеки, которая будет опубликована завтра.

Полный список изменений см. ниже
Скрытый текст

Благодарю за Ваше внимание, а также за финансовую поддержку данного проекта

P.S. Отдельный респект Андрею Верченко и Владимиру Рудоманову за посильную материальную помощь разработки этой библиотеки

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




Пост N: 964
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.07.16 09:44. Заголовок: Как и обещал, выложи..


Как и обещал, выложил очередную сборку на оф.сайте библиотеки.

Ссылки на дистрибутивы есть на этой странице
http://hmgextended.com/download.html

Желаю успеха в нелегком труде программиста

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




Пост N: 5931
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 09:12. Заголовок: gfilatov2002 Есть п..


gfilatov2002
Есть проблема. Окно + бровс.
В винде жму свернуть все окна и так раз 5 подряд , после очередного восстановления окна , бровс куда то исчез :)
Похожий пример из FW , отработал нормально.

К примеру вот на этом примере глючит C:\MiniGUI\SAMPLES\Advanced\Tsb_LoadFields\

ЗЫ
Вынь 7

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




Пост N: 1035
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.07.16 11:07. Заголовок: Dima пишет: ЗЫ Вын..


Dima пишет:

 цитата:
ЗЫ
Вынь 7


В этом ЗЫ у минигуи наблюдаются проблемы с передачей фокуса. Как исправлять - не представляю, т.к. ты сам пишешь не на каждый раз глючит и ловить причину не ясно где.
На 8/10 устал нажимать на свернуть окна - все работает штатно.

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




Пост N: 5932
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:17. Заголовок: Haz пишет: В этом З..


Haz пишет:

 цитата:
В этом ЗЫ у минигуи наблюдаются проблемы с передачей фокуса


А дедько Линарес в FW как то решил эту проблему однако
Но я не хочу FW , мне нравится Минигуи !

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


Пост N: 1214
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 12:28. Заголовок: Dima пишет: К приме..


Dima пишет:

 цитата:
К примеру вот на этом примере глючит C:\MiniGUI\SAMPLES\Advanced\Tsb_LoadFields\

ЗЫ
Вынь 7



А у меня не заглючило, Win7 тоже

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




Пост N: 5933
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:35. Заголовок: Петр Пару раз клацн..


Петр
Пару раз клацнул наверное.
У меня получилось на 4-ом разе.
Глючат исключительно приложения на минигуи со всем остальным все идеально.

Еще одно ЗЫ :)
Mingw у меня в приложениях (так же глючит)
А примерчик собран в BCC55

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




Пост N: 5934
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 12:50. Заголовок: Петр А вот кино ht..


Петр
А вот кино
Скрытый текст


В примере происходит тоже , кино снимать не стал.

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


Пост N: 1215
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 12:59. Заголовок: Dima пишет: Пару ра..


Dima пишет:

 цитата:
Пару раз клацнул наверное.
У меня получилось на 4-ом разе.



Да нет, вроде. Клацал пока не надоело.
MiniGUI свежий, компилятор BCC55, Win7 со всеми доступными обновлениями, AVG.


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




Пост N: 5935
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 13:26. Заголовок: Петр пишет: MiniGUI..


Петр пишет:

 цитата:
MiniGUI свежий


+1
Петр пишет:

 цитата:
компилятор BCC55


+1
Петр пишет:

 цитата:
Win7 со всеми доступными обновлениями


на момент установки 15.05.2015 все стояло самое свежее + KB
Петр пишет:

 цитата:
AVG


Drweb

ХЗ что делать , не за себя душа болит а за юзеров а у них только XP и 7 , начнут вот так вот
клацать и начнутся вопросы а ответить то и не чего


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


Пост N: 1216
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.07.16 13:42. Заголовок: Понятно, что собака ..


Понятно, что собака зарыта здесь: FUNCTION Events ( hWnd, nMsg, wParam, lParam )

Понятно, что код там (и не только там) нужно оптимизировать в любом случае, даже если бы не было артефактов.
Посмотрю, что можно сделать и отпишусь. Но нужно время, и отдельная тема, например "Обработка событий в MiniGUI", что бы ветку не зас..ть окончательно, причем из лучших побуждений.



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




Пост N: 5936
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.07.16 15:16. Заголовок: Петр пишет: Посмотр..


Петр пишет:

 цитата:
Посмотрю, что можно сделать и отпишусь. Но нужно время, и отдельная тема, например "Обработка событий в MiniGUI"


Петр я готов тестить в любое время суток если что.

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




Пост N: 1114
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.08.16 22:26. Заголовок: Поковырял команды ОО..


Поковырял команды ООП This... :
i_this.ch Скрытый текст


Для команд выделенных цветом использовал доп. функции ( назвал так, что бы не пересечься с похожими )
 
FUNCTION GetCliWidth ( nHandle )
LOCAL aRect := {0,0,0,0}
GetClientRect( nHandle, aRect )
RETURN ( aRect[3] - aRect[1] )

FUNCTION GetCliHeight( nHandle )
LOCAL aRect := {0,0,0,0}
GetClientRect( nHandle, aRect )
RETURN ( aRect[4] - aRect[2] )

Если ф-ии лишнии, то надо убрать выделенные цветом команды. Использовать как обычно
This.Width , This.Height , This.Handle , This.Index
This.Btn.Width, This.Btn.Height, This.Btn.Handle , This.Btn.Index
This.ClientWidth, This.ClientHeight
This.Btn.ClientWidth, This.Btn.ClientHeight

Все варианты написания не проверял (может совместными усилиями ?)



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




Пост N: 969
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.08.16 11:31. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для команд выделенных цветом использовал доп. функции


Благодарю за дополнение команды This

P.S. Заменил доп. функции на одну уже существующую в коде библиотеки функцию _GetClientRect()

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




Пост N: 1123
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.08.16 12:53. Заголовок: gfilatov2002 Еще к ..


gfilatov2002
Еще к командам ООП Скрытый текст


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




Пост N: 5032
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.08.16 13:48. Заголовок: SergKis пишет: Испо..


SergKis пишет:

 цитата:
Использовать как обычно
This.Width , This.Height , This.Handle , This.Index



Т.е. вместо
nFWidth := GetClientWidth( GetFormHandle( _HMG_ThisFormName ) )
nFHeight := GetClientHeight( GetFormHandle( _HMG_ThisFormName ) )
можно будет писать так:
nFWidth := This.Width
nFHeight := This.Height



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




Пост N: 5938
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.08.16 13:58. Заголовок: Andrey пишет: This...


Andrey пишет:

 цитата:
This.Width


This.ClientWidth

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




Пост N: 970
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.08.16 14:41. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще к командам ООП


Благодарю
Добавил эти модификации также...

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




Пост N: 1124
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.08.16 23:07. Заголовок: Andrey пишет можно б..


Andrey пишет
 цитата:
можно будет писать так:
nFWidth := This.Width
nFHeight := This.Height


пример использования
 
DEFINE WINDOW wndCalc AT 0,0 ;
...
nWidth := This.ClientWidth - x * 2
...
@ y, x LABEL Itog VALUE "" ;
...
y += This.Itog.Height + n
...
For i := 1 To len(a)
If ! empty(a[ i ])
j := "Btn"+a[ i ][1]
DEFINE BUTTONEX &j
...
ACTION PostMsg()
END BUTTONEX
This.&(j).Cargo := a[ i ][2]
EndIf
...
nW := This.ClientWidth - int(n * 0.6)
nH := y

DRAW RECTANGLE IN WINDOW &( This.Name ) AT nY, nX TO nH, nW ;
PENCOLOR BLUE

END WINDOW
...

STATIC FUNCTION PostMsg( nKey, lFocus )
LOCAL c, j := This.Name

Default lFocus := .T.

If j != ThisWindow.Name // это контрол не окно
c := This.&(j).Cargo
If c == "." ; nKey := 190
Elseif c == "C" ; nKey := 32
ElseIf c $ "0123456789"; nKey := 48 + val(c)
EndIf
EndIf
If ! empty(nKey)
PostMessage( ThisWindow.Handle, WM_KEYDOWN, nKey, 0)
EndIf
If lFocus
This.Itog.SetFocus
EndIf

RETURN Nil


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




Пост N: 1125
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.08.16 09:20. Заголовок: gfilatov2002 Еще не..


gfilatov2002
Еще немного ООП строк Скрытый текст


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




Пост N: 971
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.16 11:43. Заголовок: SergKis пишет: #xtr..


SergKis пишет:

 цитата:
#xtranslate This . <p:Type>


Благодарю за дополнение - добавил

SergKis пишет:

 цитата:
#translate Desktop.Col => GetDesktopRealLeft() #translate Desktop.Row => GetDesktopRealTop() #translate Desktop.Width => GetDesktopRealWidth() #translate Desktop.Height => GetDesktopRealHeight()


Не стал добавлять, поскольку эти функции не входят в библиотеку (они взяты из примеров).

Кстати, завершена подготовка очередной сборки 16.08, которая выйдет на следующей неделе.
Список изменений см. ниже
Скрытый текст

И напоследок - небольшой запрос
Требуется помощь в портировании winapi-функции TaskDialogIndirect в среду Харбор/Минигуи.
Петр, возьметесь


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


Пост N: 1226
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 11:54. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Требуется помощь в портировании winapi-функции TaskDialogIndirect в среду Харбор/Минигуи.
Петр, возьметесь


Вечером посмотрю, чем могу помочь

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




Пост N: 972
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.16 12:53. Заголовок: Петр пишет: посмотр..


Петр пишет:

 цитата:
посмотрю, чем могу помочь


Заранее благодарен

В принципе, вызов этой функции на Си выглядит несложно:

HRESULT hr; 
TASKDIALOGCONFIG tdc = { sizeof(TASKDIALOGCONFIG) };
int nClickedBtn;
BOOL bCheckboxChecked;
TASKDIALOG_BUTTON aCustomButtons[] = {
{ 1000, MAKEINTRESOURCE(IDS_DOWNLOAD_BTN_TEXT) },
{ 1001, MAKEINTRESOURCE(IDS_DONT_DOWNLOAD_BTN_TEXT) }
};

tdc.hwndParent = m_hWnd;
tdc.hInstance = _AtlBaseModule.GetResourceInstance();
tdc.dwFlags = TDF_USE_COMMAND_LINKS|TDF_ENABLE_HYPERLINKS;
tdc.pButtons = aCustomButtons;
tdc.cButtons = _countof(aCustomButtons);
tdc.pszWindowTitle = MAKEINTRESOURCE(IDS_TASKDLG_TITLE);
tdc.pszMainIcon = MAKEINTRESOURCE(IDI_MY_TD_ICON);
tdc.pszMainInstruction = MAKEINTRESOURCE(IDS_TASKDLG_HEADER);
tdc.nDefaultButton = 1001;
tdc.pszExpandedInformation = MAKEINTRESOURCE(IDS_TASKDLG_EXTRA_INFO);
tdc.pszVerificationText = MAKEINTRESOURCE(IDS_TASKDLG_CHKBOX_TEXT);
tdc.pszFooter = MAKEINTRESOURCE(IDS_TASKDLG_FOOTER);
tdc.pszFooterIcon = TD_INFORMATION_ICON;
tdc.pfCallback = TDCallback;
tdc.lpCallbackData = (LONG_PTR) this; // not used, but I'm setting this for demonstration purposes

hr = TaskDialogIndirect ( &tdc, &nClickedBtn, NULL, &bCheckboxChecked );


Вопрос в том, как это оформить для удобного использования в Харборе (с учетом вызова Callback-функции и использования ресурсных строк)

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


Пост N: 1227
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 22:38. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Вопрос в том, как это оформить для удобного использования в Харборе (с учетом вызова Callback-функции и использования ресурсных строк)



Вот так пойдет?

TaskDialogIndirect( aConfig, @nButton, @nRadioButton, @lVerificationFlagChecked )



Шаблон демо
Скрытый текст


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


Пост N: 1228
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 22:40. Заголовок: Шаблон callback функции


Шаблон callback функции

Скрытый текст


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


Пост N: 1229
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.08.16 22:47. Заголовок: Если внешний harbour..


Если внешний harbour интерфейс сочтете удобным, то займусь дальшей реализацией С части.
Пожелания приветствуются сейчас - не люблю переделывать


Наброски (не проверялось компилятором - ошибки конечно присутствуют, но мысль, надеюсь, понятна )
Скрытый текст



 цитата:
[pre2] /* 16 PCWSTR pszVerificationText */
HB_TYPE hb_typ = hb_arrayGetType( pConfig, TDC_VERIFICATIONTEXT )

if ( ( hb_typ & HB_IT_STRING ) || ( hb_typ & HB_IT_NUMERIC ) )
{
tdc.pszVerificationText = ( PCWSTR ) ( ( hb_typ & HB_IT_STRING ) ? hb_arrayGetCPtr( pConfig, TDC_VERIFICATIONTEXT ) : MAKEINTRESOURCE( ( WORD ) hb_arrayGetNL( pConfig, TDC_VERIFICATIONTEXT ) ) );
}
else
{
hb_errRT_BASE_SubstR( EG_ARG, 0, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}




 цитата:
      /* 22 PFTASKDIALOGCALLBACK pfCallback */  
tdc.pfCallback = TDCallbackProc;

/* 23 LONG_PTR lpCallbackData */
if ( hb_arrayGetType( pConfig, TDC_CALLBACK ) & HB_IT_EVALITEM )
{

pCallbackData = hb_itemNew( hb_arrayGetItemPtr( pConfig, TDC_CALLBACK ) );
hb_gcUnlock( pCallbackData );

tdc.lpCallbackData = (LONG_PTR) pCallbackData;
}
else
{
hb_errRT_BASE_SubstR( EG_ARG, 0, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}


`

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




Пост N: 973
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.08.16 10:17. Заголовок: Петр пишет: Пожелан..


Петр пишет:

 цитата:
Пожелания приветствуются сейчас


Шаблон с благодарностью принимается

Желательно предусмотреть конвертацию строк в unicode формат, поскольку эта функция работает только в unicode формате.

 цитата:
hb_Translate( cWindowTitle, cCurrentCdp, "UTF8EX" )



Возможна ли обработка возврата функции типа такого

 цитата:
   IF xRet == NIL 
xRet := 0x80004005
ENDIF
IF ! ( xRet == 0x00000000 ) // 0x00000000 = success
cMess := ""
IF xRet == 0x8007000E // out of memory
cMess := "There is insufficient memory to complete the operation."
ELSEIF xRet == 0x80070057 // invalid argument(s)
cMess := "One or more arguments are not valid."
ELSEIF xRet == 0x80004005 // Unspecified failure
cMess := "Operation failed! (unknown reason)."
ENDIF

MsgExclamation( "Requested Icon : " + hb_ntos( nIcon ) + hb_eol() + ;
cMess + hb_eol() + ;
"TaskDialog responded : " + hb_ntos( xRet ) + "->" + MGM_GetWinErrorStr( xRet ) + hb_eol() + ;
"(non-existent ?) resource ID: " + hb_ntos( nError ) + hb_eol(), "TaskDialog" )
ENDIF



Используемые константы для файла-заголовка tdi.ch по типу
/* buttons */ 
#define TDCBF_OK_BUTTON 1 // 0x1
#define TDCBF_YES_BUTTON 2 // 0x2
#define TDCBF_NO_BUTTON 4 // 0x4
#define TDCBF_CANCEL_BUTTON 8 // 0x8
#define TDCBF_RETRY_BUTTON 16 // 0x10
#define TDCBF_CLOSE_BUTTON 32 // 0x20

/* button-click return values */
#define IDOK 1
#define IDCANCEL 2
#define IDABORT 3
#define IDRETRY 4
#define IDIGNORE 5
#define IDYES 6
#define IDNO 7
#define IDCLOSE 8

/* icons */
#define TD_NO_ICON 0 // No icon appears in the task dialog. This is the default.
#define TD_WARNING_ICON 65535 // An exclamation-point icon, along with warning sound.
#define TD_ERROR_ICON 65534 // A stop-sign icon, along with error sound.
#define TD_INFORMATION_ICON 65533 // An icon consisting of a lowercase letter `i` in a circle, along with info sound.
#define TD_SHIELD_ICON 65532 // A shield icon. NOTE: All shield icons have no sound!
#define TD_SHIELD_BLUE_ICON 65531 // A shield icon on a blue background.
#define TD_SHIELD_WARNING_ICON 65530 // An icon consisting of an exclamation-point in a shield. appears in yellow/orange background.
#define TD_SHIELD_ERROR_ICON 65529 // An icon consisting of a stop-sign in a shield. appears in red background.
#define TD_SHIELD_SUCCESS_ICON 65528 // An icon consisting of a tick-sign in a shield. appears in green background.
#define TD_SHIELD_BROWN_ICON 65527 // A shield icon on a brown background.
#define TD_QUESTION 99 // An icon consisting of a a question-mark in a circle, no sound!


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


Пост N: 1230
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 04.08.16 12:36. Заголовок: nResult := TaskDial..



 цитата:
nResult := TaskDialogIndirect( aConfig, @nButton, @nRadioButton, @lVerificationFlagChecked )  

/* TODO */



gfilatov2002 пишет:

 цитата:
Возможна ли обработка возврата функции типа такого



Вот на месте TODO и будет такой разбор nResult.



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


Пост N: 1233
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.08.16 09:06. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Используемые константы для файла-заголовка tdi.ch по типу


Спасибо,
Григорий, а вот этот фрагмент кода откуда, если не секрет.


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




Пост N: 974
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.08.16 11:26. Заголовок: Петр пишет: этот фр..


Петр пишет:

 цитата:
этот фрагмент кода откуда


Этот код взят из реализации функции TaskDialog() из поставки MiniguiM

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


Пост N: 1235
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.08.16 11:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
из поставки MiniguiM


Простите, а что это за поставка такая MiniguiM
Просто любопытно.

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




Пост N: 975
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.08.16 12:02. Заголовок: Петр пишет: что это..


Петр пишет:

 цитата:
что это за поставка такая MiniguiM


Лежит по адресу https://sourceforge.net/projects/hbpidew/

Один умный грек продвигает Minigui Ex на базе компилятора MinGW

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


Пост N: 1236
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 05.08.16 12:16. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Один умный грек продвигает Minigui Ex на базе компилятора MinGW



Спасибо, не знал, посмотрю, но уже после завершения работы над TaskDialogIndirect
Т.е. уже скоро.

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




Пост N: 5038
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.08.16 12:19. Заголовок: Григорий, посмотри п..


Григорий, посмотри пожалуйста Пост N: 5034 и Пост N: 1126

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




Пост N: 976
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.08.16 13:02. Заголовок: Andrey Любые дополн..


Andrey
Любые дополнения - уже не в этой сборке (работа над ней завершена)

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




Пост N: 5040
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.08.16 14:39. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Любые дополнения - уже не в этой сборке



Да мы не торопимся... Лишь бы потом было !

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




Пост N: 1139
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.08.16 14:11. Заголовок: gfilatov2002 Мелочь..


gfilatov2002
Мелочь (просто короче писать), но потом забуду (i_pseudofunc.ch)
 
#translate System.WindowsFolder => GetWindowsFolder()

#translate Folder.Desktop => GetDesktopFolder()
#translate Folder.MyDocuments => GetMyDocumentsFolder()
#translate Folder.ProgramFiles => GetProgramFilesFolder()
#translate Folder.System => GetSystemFolder()
#translate Folder.Temp => GetTempFolder()
#translate Folder.Windows => GetWindowsFolder()



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




Пост N: 1146
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.08.16 17:52. Заголовок: gfilatov2002 Понял,..


gfilatov2002
Понял, почему валится на child окне конструкция
 
DEFINE WINDOW wChild1
...
CHILD ;
...
nW := This.Width - GetBorderWidth()*2 - 2

тип окна child C, т.е. _HMG_ThisType равно C

FUNCTION _SetThisFormInfo ( i )
*-----------------------------------------------------------------------------*
#ifdef _HMG_COMPAT_
_HMG_LastActiveFormIndex := i
#endif
_PushEventInfo()

_HMG_ThisFormIndex := i
_HMG_ThisEventType := 'DEFINE_WINDOW'
_HMG_ThisType := _HMG_aFormType [ _HMG_ThisFormIndex ]
_HMG_ThisIndex := i
_HMG_ThisFormName := _HMG_aFormNames [ _HMG_ThisFormIndex ]
_HMG_ThisControlName := ""

RETURN NIL

в i_this.ch везде проверяется iif ( _HMG_THISType == 'C' , GetControlHandle (...) , GetFormHandle (...) ) и путается с контролом
в
PROCEDURE _ProcessInitProcedure( i )
...
_HMG_ThisType := 'W'
...
надо и в _SetThisFormInfo ( i ) тоже поставить
_HMG_ThisType := 'W'



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




Пост N: 977
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.08.16 19:32. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо и в _SetThisFormInfo ( i ) тоже поставить
_HMG_ThisType := 'W'


Благодарю за помощь
Вы абсолютно правы! Поправлю ...

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


Пост N: 1237
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 07.08.16 23:26. Заголовок: В продолжении поста ..


В продолжении поста №1227




демка лежит здесь

Не все реализовано до конца (в основном из-за лени :)), но в принципе использовать можно уже сейчас.

UPD.

Добавлено
define TDC_MAINICON 7
TDC_FOOTERICON 20

Исправлено

 цитата:
radiobuttons.pszButtonText = HB_ARRAYGETSTR( button, 2, &hRadioButton[ iRadioButton++ ], NULL );




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




Пост N: 978
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.08.16 11:32. Заголовок: Петр Благодарю за в..


Петр
Благодарю за все Ваши усилия
Посмотрю демку вечером ...

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




Пост N: 979
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.08.16 11:38. Заголовок: Сегодня выпущен очер..


Сегодня выпущен очередной релиз библиотеки Minigui Ex.

Сборка для компилятора BCC лежит на официальном сайте библиотеки по адресу:

http://hmgextended.com/files/CONTRIB/hmg-16.08-setup.zip

Также доступна сборка для компилятора MinGW32 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1608-mingw.exe

и для компилятора MinGW64 по адресу:

http://hmgextended.com/files/CONTRIB/minigui64-1608.exe

и компактный архив для последней доступной версии компилятора xHarbour

http://hmgextended.com/files/CONTRIB/xhmg1608_xhb10156.zip

Выложил также первую рабочую сборку для BCC 10.1 по адресу:

http://hmgextended.com/files/CONTRIB/hmg1608_bcc101.zip

Дополнение к файлу changelog текщей сборки:

 цитата:
  * New: Added output of any information to an external file for debugging 
purposes with extremely easy syntax:
? <explist,...>
?? <explist,...>
?a <arr>
?v <arr>
Added the optional command SET LOGFILE TO <filename>.
Based upon a contribution of Russian user SergKis
(see demo in folder \samples\Basic\OptionBox)


Благодарю за Вашу поддержку



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




Пост N: 5043
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.08.16 12:52. Заголовок: Что-то две последние..


Что-то две последние ссылки не идут...
Page Not Found
The page you requested on hmgextended.com was not found.
You requested
http://hmgextended.com/files/CONTRIB/xhmg1608_xhb10151.zip
This request was referred from
http://clipper.borda.ru/?1-1-0-00000465-000-0-1-1470645530



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




Пост N: 980
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.08.16 13:00. Заголовок: Andrey пишет: две п..


Andrey пишет:

 цитата:
две последние ссылки не идут


Поправил ...

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




Пост N: 1147
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.08.16 15:53. Заголовок: Подправил \BASIC..


Подправил \BASIC\GetClientSize\demo.prg на использование This... Скрытый текст



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




Пост N: 1148
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.08.16 16:05. Заголовок: gfilatov2002 Change..


gfilatov2002
ChangeLog.txt

 цитата:
* Enhanced: Added a shorten form 'App' for the 'Application' object.
Examples: App.ExeName, App.Handle, App.FormName etc.


Похоже потерялось в сборке

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




Пост N: 981
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.08.16 16:21. Заголовок: SergKis пишет: поте..


SergKis пишет:

 цитата:
потерялось в сборке


Не потерялось, посмотри
//////////////////////////////////////////// 
// Application pseudo-commands
////////////////////////////////////////////

#translate <p:Application,App>.ExeName => GetExeFileName()
#translate <p:Application,App>.Handle => _HMG_MainHandle
...


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




Пост N: 1149
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.08.16 16:30. Заголовок: gfilatov2002 пишет Н..


gfilatov2002 пишет
 цитата:
Не потерялось, посмотри


Виноват исправлюсь.
Наверно пытался в старом сделать
? _HMG_aFormNames [ _HMG_MainIndex ]
? Application.FormName
? App.FormName




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




Пост N: 982
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.08.16 16:40. Заголовок: SergKis пишет: Подп..


SergKis пишет:

 цитата:
Подправил \BASIC\GetClientSize\demo.prg


Благодарю за упрощение кода этого примера - так лучше

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




Пост N: 983
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.08.16 11:20. Заголовок: Петр пишет: в принц..


Петр пишет:

 цитата:
в принципе использовать можно уже сейчас


Благодарю за помощь
Как первый шаг - весьма неплохо, но за кадром осталось использование CommandLink, RadioButton и ProgressBar в этом диалоге.

Если автор не потерял интерес к этому примеру, то ждем продолжения ...
Иначе придется допиливать самостоятельно, по мере сил

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


Пост N: 1240
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.08.16 12:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
за кадром осталось использование CommandLink, RadioButton и ProgressBar в этом диалоге



Вроде бы не заказывали такого
Callback, ипользование ресурсов, поддержка Unicode и возврат стандартного для TaskDialogIndirect результата..


Вот такой нужен пример (картинка)?

В принципе планировал написать несколько другой пример, но можно и такой.


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


Пост N: 1241
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.08.16 12:51. Заголовок: Добавлена функция-об..


Добавлена функция-обертка к TaskDialog, простой пример использования, пофиксены найденные ошибки.
обновленные исходники

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




Пост N: 984
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.08.16 13:15. Заголовок: Петр пишет: Вот так..


Петр пишет:

 цитата:
Вот такой нужен пример


Да
Возможно, потребуется не один, а несколько примеров для демонстрации различных возможностей этой многогранной функции (от простого - к сложному)

Петр пишет:

 цитата:
Добавлена функция-обертка к TaskDialog, пример использования


Премного благодарен, буду вечером разбираться ...

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




Пост N: 985
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.08.16 10:04. Заголовок: Петр, Добавил подде..


Петр,

Добавил поддержку вывода стандартных иконок в диалоге (см.ниже)
Скрытый текст

Возникли следующие вопросы:
1) как сделать в этом диалоге вывод картинок из внешнего файла (использовать MAKEINTRESOURCE );
2) как правильно сделать неявный вызов функции TaskDialogIndirect() из comctl32.dll (с использованием LoadLibrary() / GetProcAddress())
Это требуется для вызова этой функции под BCC 5.5:

 цитата:
 
#if ( defined( __BORLANDC__ ) && __BORLANDC__ <= 1410 )
#include "tdi.h" // <-- здесь определения для структур TaskDialogIndirect
#endif


P.S. Благодарю за реализацию на Си функции TaskDialog() - пригодится

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


Пост N: 1244
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.08.16 21:26. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Добавил поддержку вывода стандартных иконок в диалоге (см.ниже)

gfilatov2002 пишет:


 цитата:
// 7 union { HICON hMainIcon; PCWSTR pszMainIcon; };
if ( hb_arrayGetType( pConfig, TDC_MAINICON ) & HB_IT_NUMERIC )
{
config.pszMainIcon = ( PCWSTR ) hb_arrayGetNL( pConfig, TDC_MAINICON );
}
else
{
config.pszMainIcon = NULL;
}



Что-то здесь не так.

при присвоении значения MainIcon мы можем использовать строку - имя ресурса, ID - числовой идентификатор ресурса, хендл HICON
при этом в первых двух случаях используется pszMainIcon, а в последнем hMainIcon.
 
typ = hb_arrayGetType( pConfig, TDC_MAINICON );
if ( typ & HB_IT_STRING )
{
config.pszMainIcon = HB_PARASTRDEF( 1, TDC_MAINICON, &hText[iText++], NULL )
}
else if (typ & HB_IT_NUMERIC )
{
config.pszMainIcon = MAKEINTRESOURCE( hb_arrayGetNI( pConfig, TDC_MAINICON ) );
}
else if (typ & HB_IT_POINTER )
{
config.hMainIcon = (HICON) ( hb_arrayGetPtr( pConfig, TDC_MAINICON ) );
}
else
{
config.pszMainIcon = NULL;
}


Поскольку в Minigui есть своя, скажем так, специфика в интерпретации указателей, я осознанно (не только из-за лени ) упустил
присвоение значения нескольким членам структуры TASKDIALOGCONFIG.


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




Пост N: 986
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.08.16 21:37. Заголовок: Петр пишет: при при..


Петр пишет:

 цитата:
при присвоении значения MainIcon мы можем использовать


Благодарю за помощь - работает

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


Пост N: 1245
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.08.16 21:40. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

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


Что значит внешний файл. TaskDialogIndirect ориентирован в первую очередь на использование ресурсов (строк и иконок).
При этом ресурсы могут находиться как в собственно исполняемом файле config.hInstance = NULL или GetModuleHandle(NULL), так и в других файлах (например динамической библиотеке dll или другом исполняемом файле exe).

О hMainIcon уже писал, т.е иконку можно загрузить из файла, сгенерировать на лету или сконвертировать из другого формата с помощью gdi+ или других библиотек для обработки изображений.


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


Пост N: 1246
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.08.16 21:43. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Благодарю за помощь - работает



Все это, я думаю вы уже поняли, относится и к FooterIcon.

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




Пост N: 987
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.08.16 21:44. Заголовок: Петр пишет: в друг..


Петр пишет:

 цитата:
в других файлах (например динамической библиотеке dll


Имел в ввиду этот случай - конкретно, системные dll

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




Пост N: 988
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.08.16 21:47. Заголовок: Петр пишет: Все это..


Петр пишет:

 цитата:
Все это, я думаю вы уже поняли, относится и к FooterIcon


Да, понял
Благодарю за разъяснение

Увы, но работа этих диалоговых функций под bcc 5.5 приводит к вылету программы (не судьба, видимо, использовать со старым компилятором )

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




Пост N: 989
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.08.16 11:11. Заголовок: Петр , Обратил внима..


Петр,

Обратил внимание, что параметр lParam в callback-функции при использовании флажка TDF_ENABLE_HYPERLINKS
должен быть строкового типа (и содержать адрес URL), а не число, как сейчас
Возможно ли это поправить

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


Пост N: 1247
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.08.16 11:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Возможно ли это поправить



Попробуйте это (нет возможности проверить самому)

 цитата:
HRESULT CALLBACK TDCallbackProc( HWND hWnd, UINT uNotification, WPARAM wParam, LPARAM lParam, LONG_PTR dwRefData ) 
{
HRESULT hRes;
PHB_ITEM pCallback = ( PHB_ITEM ) dwRefData;

if( pCallback && hb_vmRequestReenter() )
{
PHB_ITEM itm = hb_itemNew( NULL );

hb_vmPushEvalSym();
hb_vmPush( pCallback );
hb_vmPushNumInt( ( HB_MAXINT ) ( HB_PTRUINT ) hWnd );
hb_vmPushNumInt( ( HB_MAXINT ) uNotification );
hb_vmPushNumInt( wParam );

if ( uNotification == TDN_HYPERLINK_CLICKED)
{
HB_ITEMPUTSTR( itm, (HB_WCHAR *) lParam );

hb_vmPushItemRef( itm );
}
else
{
hb_vmPushNumInt( lParam );
}

hb_vmSend( 4 );

hRes = ( ( hb_parl( -1 ) == HB_TRUE ) ? S_OK : S_FALSE );

hb_itemRelease( itm );
hb_vmRequestRestore();

return hRes;
}
return S_OK;
}




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




Пост N: 990
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.08.16 12:56. Заголовок: Петр пишет: Попробу..


Петр пишет:

 цитата:
Попробуйте это


Проверю сегодня вечером ...
Судя по коду - должно работать
Благодарю за помощь

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



Пост N: 318
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 11.08.16 15:51. Заголовок: Вопрос вроде как уже..


Вопрос вроде как уже поднимался ..... не нашел в темах . Извините если что

Имеем - стандартное окно . В нем организовано еще одно типа PANEL с VIRTUAL HEIGHT - оно со скроллингом разумеется .
в это окно (назовем его VIRTUAL_W ) - имеется некоторое количество контролов , лабелов и т д .

1 проблема >>
после заполнения всех контролов - пока не сдвинешь в этом окне (стрелками или скролбаром) - некоторые элементы отображаются неверно
Например LABEL - задан один цвет - а при первичной прорисовке он вовсе не такой . Нужно это окно сдвинуть вверх-вниз . тогда цвет уже такой как задавал

Пытаюсь передать в это окно команду PageUp - чтоб имитировать нажатие
форма всё-равно не прорисовывается правильно ....:

hwnd:=ASCAN(_HMG_aFormNames,'HC_VIRT')

IF hwnd >0
SendMessage ( hwnd, WM_VSCROLL, SB_PAGEUP, 0 )
ENDIF

2 Проблема - в окне есть элемент DRAW GRADIENT или DRAW LINE
при каких то изменениях в этом окне - например передвижение или изменение LABEL VALUE и т д , этот самый DRAW LINE /GRADIENT не перерисовывается .
Причем не всегда - то нормально - то с запаздыванием от от пары секунд до десятка . Иногда вообще не перерисовывается .
прилагаю скрин







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




Пост N: 991
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.08.16 16:12. Заголовок: Softlog86 пишет: ор..


Softlog86 пишет:

 цитата:
организовано еще одно типа PANEL с VIRTUAL HEIGHT


Окна типа PANEL появились в Минигуи сравнительно недавно и поэтому недоработки здесь вполне вероятны (по причине малого использования).

Softlog86 пишет:

 цитата:
не перерисовывается


Обычно в таком случае помогает вызов следующей функции при инициализации окна
InvalidateRect( GetFormHandle( <имя формы> ), 0 )

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

Спасибо: 1 
Профиль
Softlog86



Пост N: 319
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 11.08.16 17:11. Заголовок: У меня в этом окне е..


У меня в этом окне еще контрол GRID . Как только он получает фокус - всё , колесо прокрутки мыши не скроллирует в этом окне .
Как сделать чтоб скроллинг работал всегда если мыша в этом окне (крутит колёсико прокрутки) ? Разумеется - если фокус в гриде - чтоб работал скрол внутри таблицы .

То есть принудительно давать фокус на всё окно - если колёсико крутанули внутри указанного окна (но не в гриде) - это тоже позволяет правильно использовать Mouse Wheel

Замечено вот еще что : Когда колёсико мышки крутим чтоб покрутить вниз - всё работает замечательно
а вот вверх - уже с заминками - "два шага вверх - один вниз" - дёргается . хорошо работает если крутить медленно .
Это касается скролла в окнах типа PANEL

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




Пост N: 5962
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.08.16 17:32. Заголовок: Softlog86 пишет: Эт..


Softlog86 пишет:

 цитата:
Это касается скролла в окнах типа PANEL


Похоже в них еще пилить и пилить что бы нормально работали

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




Пост N: 992
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.08.16 17:39. Заголовок: Softlog86 пишет: Ка..


Softlog86 пишет:

 цитата:
Как только он получает фокус


Указать класс NOTABSTOP при определении этого грида пробовали

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




Пост N: 993
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.08.16 20:01. Заголовок: Петр пишет: Попробу..


Петр пишет:

 цитата:
Попробуйте это


Проверил - работает

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



Пост N: 320
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 11.08.16 20:05. Заголовок: gfilatov2002 пробов..


gfilatov2002 пробовал . Всё равно . видимо придётся переопределять колесо прокрутки на скролл всего окна , даже если активен GRID . Там хватит и обычного Up/DN + скролбар . Мне важнее чтоб всё окно крутилось вверх-вниз . Только не знаю пока как это преопределение сделать ....

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


Пост N: 1248
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.08.16 09:08. Заголовок: Петр пишет: Добавл..


Петр пишет:

 цитата:

Добавлена функция-обертка к TaskDialog, простой пример использования, пофиксены найденные ошибки.
обновленные исходники


Очередные мелкие исправления,
TaskDlgs.ch дополнен TDF_ Task Dialog Flags,
добавлен еще один пример использования (радиокнопки, командные ссылки и пр.),
добавлен простой класс CLASS TTaskDialog FUNCTION TaskDialog, который, надеюсь, со временем будет расширен,
и пример его использования.
качать отсюда

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




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


Петр пишет:

 цитата:
добавлен простой класс CLASS TTaskDialog


То, что надо
Вечером посмотрю
Благодарю за все Ваши усилия

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




Пост N: 995
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.08.16 20:33. Заголовок: Петр пишет: класс ..


Петр пишет:

 цитата:
класс CLASS TTaskDialog FUNCTION TaskDialog, который, надеюсь, со временем будет расширен


Да, этот класс - это пока только шаблон, но пользоваться им удобнее, чем просто вызывать функцию с параметрами ИМХО

З.Ы. Всем - пока, уезжаю в отпуск

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


Пост N: 1250
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.08.16 20:56. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Всем - пока, уезжаю в отпуск


Желаю хорошо отдохнуть!

А класс уже вполне рабочий

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




Пост N: 5056
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.08.16 16:36. Заголовок: Пример - \MiniG..


Пример - \MiniGUI\SAMPLES\BASIC\CURSOR - опечатка !
Не собирается, ошибка:
Compiling 'demo.prg'...
demo.prg(237) Error E0030 Syntax error "syntax error at 'Col'"
1 error
No code generated.
Compile error.


Там в 237 строке надо поставить знак "," в GetProperty( Form, obj "Col" )

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




Пост N: 5979
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.08.16 16:55. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример - \MiniGUI\SAMPLES\BASIC\CURSOR - опечатка


Ни чего не спутал ?
там строк меньше чем 237 и GetProperty там нет совсем.

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


Пост N: 1268
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 21.08.16 17:07. Заголовок: Andrey пишет: Там в..


Andrey пишет:

 цитата:
Там в 237 строке надо поставить знак "," в GetProperty( Form, obj "Col" )


Подтверждаю

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




Пост N: 5980
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.08.16 17:23. Заголовок: Петр пишет: Подтвер..


Петр пишет:

 цитата:
Подтверждаю


Стрянно
У меня HMG Extended Edition version 16.07 и в этом примере такого нет да и строк менее 237
Пример датируется 2011 годом от 18 июля
В чем прикол ?

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




Пост N: 1163
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.08.16 17:50. Заголовок: Dima 2016/08/08: HM..


Dima
2016/08/08: HMG Extended Edition version 16.08.
line 237
ocol := GetProperty( Form, "col" ) + GetProperty( Form, obj "Col" ) + rect [1]
2016/07/14: HMG Extended Edition version 16.07.
действительно нет такой строки, как впрочем и в предыдущей



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




Пост N: 5981
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.08.16 17:59. Заголовок: SergKis Точно , про..


SergKis
Точно , пропустил я эту сборку (16.08) ...

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




Пост N: 996
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 31.08.16 11:18. Заголовок: Для тех, кому это ин..


Для тех, кому это интеоесно.
Выпустил сегодня 3-ю бету для новой сборки библиотеки.

Полный список изменений см. ниже
Скрытый текст

Особая благодарность - Петру за оказанную помощь

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




Пост N: 5064
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.16 13:48. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выпустил сегодня 3-ю бету для новой сборки библиотеки.


А можно обновить MiniGUI\SOURCE\HbPgSql ?

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




Пост N: 997
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 31.08.16 14:15. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можно обновить MiniGUI\SOURCE\HbPgSql ?


Не вопрос, присылайте, что нужно обновить...

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




Пост N: 5065
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.16 14:31. Заголовок: Сейчас там PostgreSQ..


Сейчас там PostgreSQL version 8.4
А уже 9.5 версия есть. https://postgrespro.ru/
Как и что обновлять не знаю...
Может в Харборе взять новее библиотеки - hbpgsql ?

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


Пост N: 1273
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.09.16 09:28. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Особая благодарность - Петру за оказанную помощь


Да не за что.

А где бету можна скачать?
Может к релизу что-то и дополнить можно было бы.

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




Пост N: 998
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.09.16 10:19. Заголовок: Петр пишет: где бет..


Петр пишет:

 цитата:
где бету можна скачать?


Отправил ссылку на бету по почте
Да, до релиза еще далековато, поэтому с удовольствием рассмотрю Ваши дополнения

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


Пост N: 1274
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 01.09.16 12:22. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Отправил ссылку на бету по почте



Спасибо.
А где можно посмотреть

 цитата:

* New: 'Enhanced CLASS TTaskDialogEx FUNCTION TaskDialogEx' sample.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\TaskDialogs\TaskDialogEx)




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




Пост N: 999
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.09.16 12:43. Заголовок: Петр пишет: А где м..


Петр пишет:

 цитата:
А где можно посмотреть


Здесь
Скрытый текст


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


Пост N: 1282
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 04.09.16 11:54. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можно обновить MiniGUI\SOURCE\HbPgSql ?


Наверное для Андрея обновление уже не актуально

Andrey пишет:

 цитата:
Может в Харборе взять новее библиотеки - hbpgsql ?


Функционально версии hbpgsql в MiniGUI и Harbour (https://github.com/harbour/core/) не отличаются.
Более того, hbpgsql от MiniGUI есть старой версией harbour hbpgsql.

Не учтены сл. важные поправки
2014-03-27 16:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbpgsql/rddcopy.c
! fixed typos in my recent modification and potential memory corruption
and/or wrong output due to ugly hack for last field terminator in old
code. Thanks to Aleksander Czajczynski for reporting the problem.

К тому же rddcopy.c является юниксовым файлом (перевод строки LF вместо CRLF), что выглядит странно для MiniGUI

2011-10-20 15:21 UTC+0200 Viktor Szakats (vszakats.net/harbour)
* contrib/hbpgsql/hbpgsql.hbx
* contrib/hbpgsql/hbpgsql.hbp
- contrib/hbpgsql/hdbcpg.prg
- Deleted HDBC class layer due references to deprecated
wrapper function which caused link errors in dynamic builds
or HDBC apps. Please readd the file if interested in making
this technially simple fix.

Поэтому с чистой совестью можете копировать файлы из harbour\contrib\hbpgsql и пересобирать библиотеку, как я уже говорил, новой функциональности вы не получите. Работать должно стабильнее.

Изменения в копирайтах и т.п. не в счет.

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


Пост N: 1283
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 04.09.16 12:10. Заголовок: Вот hbpgsql с harbou..


Вот hbpgsql с harbour-core (https://github.com/vszakats/harbour-core) выглядит сейчас более интересно, в основном за счет изменений в tpostgre.prg
В часности, расширен METHOD New( cHost, cDatabase, cUser, cPass, nPort, cSchema, hCustom )

:New( ..., { 'timeout' => '10' } )

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




Пост N: 5093
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.16 16:45. Заголовок: Григорий, а нельзя л..


Григорий, а нельзя ли прикрутить показ иконок (ICO) для объекта MENUITEM ?

SET MENUSTYLE EXTENDED
SetMenuBitmapHeight( 48 )
DEFINE CONTEXT MENU OF &cForm
MENUITEM "Меню..." ACTION .. IMAGE "W_add32х32"


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




Пост N: 1000
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.09.16 22:04. Заголовок: Andrey пишет: нельз..


Andrey пишет:

 цитата:
нельзя ли прикрутить показ иконок (ICO) для объекта MENUITEM


Да, это возможно при добавлении в Ваш проект следующих 2-х функций

 цитата:
extern HBITMAP Icon2Bmp( HICON hIcon ); 

HB_FUNC( MENUITEM_SETICON )
{
HBITMAP himage1;
HICON hIcon;

hIcon = ( HICON ) LoadImage( GetModuleHandle( NULL ), hb_parc( 3 ), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR );
if( hIcon == NULL )
hIcon = ( HICON ) LoadImage( 0, hb_parc( 3 ), IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_DEFAULTCOLOR );

// convert icon to bitmap
himage1 = Icon2Bmp( hIcon );

if( newStyle )
{
MENUITEMINFO MenuItemInfo;
MYMENUITEM * pmyMenuItem;

MenuItemInfo.cbSize = sizeof( MENUITEMINFO );
MenuItemInfo.fMask = MIIM_DATA;

if( GetMenuItemInfo( ( HMENU ) HB_PARNL( 1 ), hb_parni( 2 ), FALSE, &MenuItemInfo ) )
{
pmyMenuItem = ( MYMENUITEM * ) MenuItemInfo.dwItemData;
if( pmyMenuItem->hBitmap != NULL )
DeleteObject( pmyMenuItem->hBitmap );

pmyMenuItem->hBitmap = himage1;
}
}
HB_RETNL( ( LONG_PTR ) himage1 );
}


и на PRG уровне

 цитата:
*-----------------------------------------------------------------------------* 
PROCEDURE _SetMenuItemIcon ( ItemName , FormName , Icon )
*-----------------------------------------------------------------------------*
LOCAL a := _GetMenuIds ( ItemName , FormName )

_HMG_aControlBrushHandle [GetControlIndex ( ItemName , FormName )] := MenuItem_SetIcon ( a [1] , a [2] , Icon )

RETURN


Пример использования:

 цитата:
... 
POPUP "&Help" FONT Font0
ITEM "Index" IMAGE "BMPHELP"
ITEM "Using help"
SEPARATOR
ITEM "Online forum" IMAGE "WORLD"
ITEM "Buy/register" IMAGE "CART_ADD"
SEPARATOR
ITEM "About" NAME SetIcon ACTION MsgInfo ( MiniGuiVersion() )
END POPUP
END MENU

_SetMenuItemIcon( "SetIcon" , "Form_1" , "demo.ico" )



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




Пост N: 5096
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.09.16 19:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Да, это возможно при добавлении в Ваш проект следующих 2-х функций


Спасибо БОЛЬШОЕ !
А по умолчанию в библиотеку добавить сразу нельзя ?

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




Пост N: 1001
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.09.16 20:01. Заголовок: Andrey пишет: в биб..


Andrey пишет:

 цитата:
в библиотеку добавить сразу нельзя ?


Уже добавил эти функции в следующую сборку

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




Пост N: 5097
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.09.16 21:24. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Уже добавил эти функции в следующую сборку


Спасибо БОЛЬШОЕ !

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




Пост N: 5102
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.09.16 16:33. Заголовок: Приятно увидеть свои..


Приятно увидеть свои художества...
http://clipper64bits.blogspot.ru/p/minigui_21.html

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




Пост N: 1002
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.09.16 16:19. Заголовок: Просто к сведению. В..


Просто к сведению. Выпустил сегодня первый RC для новой сборки библиотеки.

Полный список изменений см. ниже
Скрытый текст

Благодарю за Ваше внимание

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


Пост N: 1293
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.09.16 17:35. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выпустил сегодня первый RC для новой сборки библиотеки



Так и не понял куда вы их выкладываете..

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




Пост N: 1004
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.09.16 18:44. Заголовок: Петр пишет: куда вы..


Петр пишет:

 цитата:
куда вы их выкладываете


Ссылку на новую сборку отправил Вам по почте
Буду благодарен за любые комментарии...

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




Пост N: 6017
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.09.16 11:35. Заголовок: gfilatov2002 А нель..


gfilatov2002
А нельзя ли в модальном окне возле крестика закрытия окна добавить кнопку минимизации ,
при нажатии на которую сворачивалось бы все приложение ?

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




Пост N: 1230
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.09.16 11:54. Заголовок: Dima Зачем эти ручн..


Dima
Зачем эти ручные манипуляции ?
Андрей показал решение. Можно в любое окно сунуть такое:
 
FUNC MinAll( lMinimize)
LOCAL i, cWnd, cForm := ThisWindow.Name
If lMinimize
For i := 1 To Len(_HMG_aFormNames)
cWnd := _HMG_aFormNames [ i ]
If cWnd != cForm .and. _IsWindowDefined(cWnd)
// что Андрей писал
EndIf
Next
EndIf
RETURN NIL


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




Пост N: 6018
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.09.16 12:23. Заголовок: SergKis я о кнопке ..


SergKis
я о кнопке


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




Пост N: 1231
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.09.16 12:36. Заголовок: Dima пишет я о кнопк..


Dima пишет
 цитата:
я о кнопке


Если именно о кнопке, то делай стандартный заголовок с (Minimaize, Maximaize) кнопками и вешай на события блоки кода
с обработчиками (ON MINIMAIZE ... ON MAXIMAIZE ...), но по мне решение на
ON INIT MinAll( .T. ) и
ON RELEASE MaxAll( .T. )
от внешнего управления (переменной) лучше.
Можно и свой Title окна сделать (в примерах где то было) со своими кнопками\контролами ... и обрабатывать нажатия так же

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




Пост N: 1005
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.09.16 13:20. Заголовок: Dima пишет: нельзя ..


Dima пишет:

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


Можно, и это всего одна строчка в коде (см.пример ниже)
Скрытый текст


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




Пост N: 6019
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.09.16 13:25. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Form_2.MinButton := .T.




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




Пост N: 6020
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.09.16 16:44. Заголовок: Петр пишет: Понятно..


Петр пишет:

 цитата:
Понятно, что собака зарыта здесь: FUNCTION Events ( hWnd, nMsg, wParam, lParam )

Понятно, что код там (и не только там) нужно оптимизировать в любом случае, даже если бы не было артефактов.



Просто решил напомнить , было бы не плохо починить оптимизировать код , глядишь и косяков не будет....

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


Пост N: 1294
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 14:32. Заголовок: Dima пишет: Просто ..


Dima пишет:

 цитата:
Просто решил напомнить , было бы не плохо починить оптимизировать код



Код создания окна, в котором размещен tsbrowse можно увидеть?
Обработчики
[ ONGOTFOCUS <GotFocusProcedure> ] ;
[ ONLOSTFOCUS <LostFocusProcedure> ] ;
использовались?


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




Пост N: 6021
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 14:37. Заголовок: Петр пишет: Код со..


Петр пишет:

 цитата:

Код создания окна, в котором размещен tsbrowse можно увидеть?


Да конечно. Только глючит и в примерах так же на семерке.

Скрытый текст



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


Пост N: 1295
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 14:47. Заголовок: Dima пишет: DEFINE..


Dima пишет:

 цитата:
DEFINE WINDOW SPR_REC AT


И в этом окне помещены два tsbrowse, так?

У меня примеры не глючат, библиотека стандартная или своя?


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




Пост N: 6022
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 14:48. Заголовок: да два бровса библио..


да два бровса
библиотека стандартная

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




Пост N: 6023
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 14:52. Заголовок: Петр пишет: У меня ..


Петр пишет:

 цитата:
У меня примеры не глючат


Я взял поклацал свертку и разворот всех окон , на 5 попытке в примере C:\MiniGUI\SAMPLES\Advanced\Tsb_LoadFields\
получил чистое окно , без бровса. Могу кино снять если надо.

PS
Винда не глючит и другие приложения тоже. Глюки исключительно в Минигуи.


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


Пост N: 1296
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 15:10. Заголовок: Пока спасибо за отве..


Пока спасибо за ответы, буду смотреть.
А у бровса bWhen установлены?




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


Пост N: 1297
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 15:16. Заголовок: Dima пишет: Я взял ..


Dima пишет:

 цитата:
Я взял поклацал свертку и разворот всех окон , на 5 попытке в примере C:\MiniGUI\SAMPLES\Advanced\Tsb_LoadFields\
получил чистое окно , без бровса. Могу кино снять если надо.


На 7? Кино не надо, а откомпилированный пример куда-то выложить?



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




Пост N: 6024
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 15:20. Заголовок: Петр пишет: откомпи..


Петр пишет:

 цитата:
откомпилированный пример куда-то выложить?



Скрытый текст


Петр пишет:

 цитата:
А у бровса bWhen установлены?


Не нашел у себя в сырцах такого.

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


Пост N: 1298
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 16:15. Заголовок: Протестировал на XP ..


Протестировал на XP и 7 - ничего необычного.

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




Пост N: 6025
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 16:22. Заголовок: Петр Понял , спасиб..


Петр
Понял , спасибо !
Придется мириться с тем что есть ...

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


Пост N: 1274
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.09.16 16:22. Заголовок: У меня на 10-ке "..


У меня на 10-ке "эффект" воспроизвёлся: WIN-D, затем клик по свернутому окну в панели задач. Так несколько раз. В восстановленном окне пусто. Когда щелкаешь мышой внутрь, появляются ячейки бровса.

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




Пост N: 6026
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 16:53. Заголовок: PSP пишет: У меня н..


PSP пишет:

 цитата:
У меня на 10-ке "эффект" воспроизвёлся:


Забавно а Has утверждал что на оси win 8 и выше таких косяков нет.
Видимо он не шибко то и "гонял" свою задачу.

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


Пост N: 1299
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 20.09.16 16:54. Заголовок: Dima пишет: Придетс..


Dima пишет:

 цитата:
Придется мириться с тем что есть


Нет-нет, просто копать глубже надо.
Пока соображаю

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




Пост N: 1232
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.16 17:37. Заголовок: PSP пишет У меня на ..


PSP пишет
 цитата:
У меня на 10-ке "эффект"


На 2-х 8.1 получил следующее:
- Win+D Win+D окно в фокусе, но с TSB фокус снят (раскраска курсора об этом говорит) и VK_TAB не восстанавливает фокус курсора (хоть ужмись)
- клик на кнопке минимизации и по свернутой иконке (фокуса на TSB нет) жмем VK_TAB, фокус на TSB (курсор) восстановился,
ALt+VK_TAB и ALt+VK_TAB + VK_TAB также восстанавливает фокус курсора TSB

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


Пост N: 239
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 20.09.16 17:42. Заголовок: 10-ка корпоративная..


10-ка корпоративная 64. Пример Димы работает без проблем при любом управлении.

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




Пост N: 6028
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.09.16 17:48. Заголовок: ММК Да проблема про..


ММК
Да проблема происходит рандомно , у меня с 5 раза получилось , у тебя может получится с тысячного или
сотого. Я пробовал мучать так же , окно задачи на FW , вот там все работает как надо и ни чего не ломается.
Но мне нравится Минигуи

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


Пост N: 240
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 20.09.16 17:55. Заголовок: Dima пишет: Но мне ..


Dima пишет:

 цитата:
Но мне нравится Минигуи



Слишком много надо менять в Минигуи , что бы все работало , как в FW. Кстати TsBrows в FW так и не заработал ( нормально) . Его просто заменили

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




Пост N: 1006
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.09.16 10:06. Заголовок: Опубликована новая с..


Опубликована новая сборка 16.09 для следующих С-компиляторов:

- BCC 5.51 (Harbour и xHarbour)

- MinGW 6.2.0 32/64 bits (только Harbour)

- BCC 10.1 (только Harbour)

- XCC (xHarbour)

Прямые ссылки на дистрибутивы есть на домашней странице библиотеки

Если кого-то интересует компилятор Pelles C 8.0, то я могу подготовить сборку для него также...

Благодарю за помощь Петра и Андрея Верченко

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




Пост N: 6030
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.09.16 10:11. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
MinGW 6.2.0 32


Сборка похудела аж на 15 метров. Так и надо ?
Брал тут http://hmgextended.com/files/CONTRIB/hmg1609-mingw.exe

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




Пост N: 1007
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.09.16 10:54. Заголовок: Dima пишет: Сборка ..


Dima пишет:

 цитата:
Сборка похудела аж на 15 метров


Я почистил неиспользуемые компоненты из поставки компилятора MinGW (библиотеки для поддержки python и т.п.)
Теперь качать надо меньше...

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




Пост N: 181
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 22.09.16 16:33. Заголовок: В MiniGUI 16.09 - Модальное окно


Привет !
в версии 16.09 Модальное окно с кнопочкой (Form_2.MinButton := .T.) для сворачивания работает по другому
сворачивается само окно а не вся прога !?

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




Пост N: 6031
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.16 16:41. Заголовок: sashaBG пишет: свор..


sashaBG пишет:

 цитата:
сворачивается само окно а не вся прога


это не айс...
уверен что окно модальное ?

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




Пост N: 182
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 22.09.16 16:55. Заголовок: Да уверен :)


Да уверен . Понравился трюк с ( Form_2.MinButton := .T. ) и переделал у себя в программе,
на версии 16.08 все было ОК , но на новой сворачивает в низ только окно .

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




Пост N: 6032
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.16 17:07. Заголовок: Тогда это косячок.....


Тогда это косячок...
С модальным так не должно быть !

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




Пост N: 6033
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.09.16 09:16. Заголовок: sashaBG Добрался я ..


sashaBG
Добрался я до новой сборки.
Собрал пример который дал Григорий в этой теме.
Все работает нормально. Сворачивается все приложение !

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




Пост N: 183
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 23.09.16 12:04. Заголовок: Запусти пример через проводник


Странно , когда запускаю через FAR все похоже OK , запускаю через проводник Виндовса - сворачивается , но в нижнем левом углу остается полоска окна . А когда сделаеш ссылку demo.exe на десктоп наблюдается тот ефект о котором я говорил.
У меня Windows 10 + anniversary update

PS: под Windows 8.1 32bit - тоже самое

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




Пост N: 6034
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.09.16 12:12. Заголовок: sashaBG пишет: Стра..


sashaBG пишет:

 цитата:
Странно , когда запускаю через FAR все похоже OK , запускаю через проводник Виндовса - сворачивается , но в нижнем левом углу остается полоска окна


Точно. И у меня так.
До этого проверял из FAR.
Win 7

PS
Вывод: Запускать из FAR

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




Пост N: 5112
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.09.16 15:49. Заголовок: Не работает вывод от..


Не работает вывод отладки в файл. Наверное из-за переключения в другие папки.
Нужно наверно сделать в h_ini.prg:

FUNCTION _SetGetLogFile( cFile )
*-----------------------------------------------------------------------------*
LOCAL cOld
STATIC MLog_File := GetStartUpFolder()+"\_MsgLog.txt"

Если делаю у себя в программе
cFileLog := GetStartUpFolder()+"\_MsgLog.txt" //_SetGetLogFile()
DELETEFILE(cFileLog)
SET LOGFILE TO &cFileLog
То вывод отладки в файл начинает происходить....
На маленьких программках вывод отладки в файл всегда проходит...

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




Пост N: 1009
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.09.16 21:50. Заголовок: Andrey пишет: MLog_..


Andrey пишет:

 цитата:
MLog_File := GetStartUpFolder()+"\_MsgLog.txt"


Сделал

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




Пост N: 5113
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.09.16 16:37. Заголовок: Если выводить массив..


Если выводить массив ?v M->aDim, то в файле отладке массив выводиться через строчку.
А зачем ?




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




Пост N: 1011
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.10.16 19:21. Заголовок: Andrey пишет: в фай..


Andrey пишет:

 цитата:
в файле отладке массив выводиться через строчку


Попробуй изменить эти команды:

#command ?a [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( (ne==1), ne, xv ), _LogFile() } ) 

#command ?v [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( (ne==1), ne, iif( Valtype(xv) == "A", hb_valtoexp(xv), xv ) ), _LogFile() } )


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




Пост N: 5119
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.10.16 09:52. Заголовок: Перешёл на версию 16..


Перешёл на версию 16.09
Перестала работать отладка в файл, не компилируется вообще проекты !

ain.prg(393) Error E0030 Syntax error "syntax error at '?'"

Строка 393: ?v aDim

Проверял на 3-х проектах. Вернулся на 16.08 - всё нормально компилируется...
Только у меня так или ошибка в МиниГуи ?

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


Пост N: 1303
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.10.16 10:13. Заголовок: Andrey пишет: Тольк..


Andrey пишет:

 цитата:
Только у меня так или ошибка в МиниГуи ?



Вы это читали?

2016/09/21: HMG Extended Edition version 16.09. 
* Fixed: Wrong executing of a new debug logging at console or mixed appls
(introduced in the build 16.08).
Problem was reported by Mitja Podgornik.
You can enable the logging output if you uncommented the constant
_HMG_OUTLOG in the minigui header file. By default this is turned
off to preserve the proper Harbour functionality.
(look at minigui.ch in folder \include)
Syntax of the logging output is below:
? <explist,...>
?? <explist,...>
?a <arr>
?v <arr>



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




Пост N: 5120
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.10.16 10:23. Заголовок: Петр пишет: Вы это ..


Петр пишет:

 цитата:
Вы это читали?


Да конечно же не читал...
Всегда раньше читал и смотрел, а вот в этот раз установил и побежала работа !
Спасибо за подсказку !

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




Пост N: 5121
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.10.16 10:27. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй изменить эти команды:



То что нужно ! Спасибо !

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




Пост N: 1013
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.10.16 11:46. Заголовок: Опубликована новая с..


Опубликована новая сборка 16.10 для следующих С-компиляторов:

- BCC 5.51 (Harbour и xHarbour)

- MinGW 6.2.0 32/64 bits (только Harbour)

- BCC 10.1 (только Harbour)

- XCC (xHarbour)

Прямые ссылки на дистрибутивы есть на домашней странице библиотеки

Искренняя благодарность за помощь - Петру

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




Пост N: 5135
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.10.16 16:07. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Опубликована новая сборка 16.10 для следующих С-компиляторов:


Классная сборка !
Особенно понравились примеры
samples\Basic\CURSOR_2
samples\Basic\IMAGE

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




Пост N: 1014
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.10.16 10:50. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Опубликована новая сборка 16.10


Выложил срочное обновление для этой сборки (только для BCC) по адресу

http://hmgextended.com/files/CONTRIB/hmg-16.10-setup.zip

Что исправлено:
- опечатка в Си-функции RegisterWindow(), которая приводила к пропаданию основной иконки приложения, если она была задана из внешнего файла.
- отображение CueBanner на WinVista с классической темой оформления.

Инсталляторы для других Си-компиляторов обновлю позже вечером

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