On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
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 [только новые]


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 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 96
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет