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 [только новые]


gfilatov2002
moderator




Пост N: 781
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.07.15 16:47. Заголовок: Haz пишет: Пример с..


Haz пишет:

 цитата:
Пример собран на библиотеке


Благодарю за пример - работает отлично!
Я его уже отформатировал и включил в новую сборку


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




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


Haz пишет:

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


Пример КЛАССНЫЙ !

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




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


gfilatov2002 пишет:

 цитата:
Я его уже отформатировал и включил в новую сборку


Наверно ОЧЕНЬ нужно бы поставить комментарии для:
oBrw:SetArray( aDatos,.t. )
oBrw:nWheelLines := 1
oBrw:nClrLine := COLOR_GRID
oBrw:lNoChangeOrd := TRUE
oBrw:lCellBrw := TRUE
oBrw:lNoVScroll := TRUE
oBrw:hBrush := CreateSolidBrush( 242, 245, 204 )

Не все же разбираются ...

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




Пост N: 5139
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.07.15 20:50. Заголовок: Andrey пишет: Навер..


Andrey пишет:

 цитата:
Наверно ОЧЕНЬ нужно бы поставить комментарии для:


А ты похоже не понял , про себя же написал ?
Мне понятно , хотя я на Минигуи без году неделя.
Has на моей памяти раз 5 указывал тебе , смотри сырец

Раз тебе лень , сделаю за тебя.......
Скрытый текст



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

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




Пост N: 4388
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.07.15 00:36. Заголовок: Dima пишет: Раз теб..


Dima пишет:

 цитата:
Раз тебе лень , сделаю за тебя


Дима, я понял. Просто другие новички не поймут.
В своих примерах я стараюсь комментировать что мне было непонятно.
Так как Григорий уже добавил этот пример к себе, то мои комментарии к этому примеру уже не пойдут.

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




Пост N: 616
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.07.15 11:09. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Я его уже отформатировал и включил в новую сборку


Григорий если не поздно/ не сложно , то еще два места дополнить которые ссылаются на номер колонки

1 Первой строкой в метод SetData() CLASS TSBROWSE добавить

nColumn := IF( Valtype( nColumn) == "C", ::nColumn( nColumn ), nColumn )


2 Первой строкой в функцию ComboWBlock CLASS TSCOLUMN добавить

nCol := IF( Valtype( nCol) == "C", oBrw:nColumn( nCol ), nCol )
и далее по коду после else условия if oBrw:lIsDbf перед If aData == Nil вставить

Else // editing an array uField is the array element number

uField := IF( Valtype( uField ) == "C", oBrw:nColumn( uField ), uField )

If aData == Nil


ЗЫ: можно конечно и не править , но при обращении по имени код получается громоздкий
oBrw:SetData( oBrw:nColumn("TEXT") , ComboWBlock( oBrw, oBrw:nColumn("TEXT") , oBrw:nColumn("TEXT") , aCombo ) )
вместо
oBrw:SetData( "TEXT" , ComboWBlock( oBrw, "TEXT" , "TEXT" , aCombo ) )

если чего еще выловлю - позже скину



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




Пост N: 782
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.07.15 11:34. Заголовок: Haz пишет: если не ..


Haz пишет:

 цитата:
если не поздно/ не сложно , то еще два места дополнить


Сделаю, конечно

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




Пост N: 766
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.07.15 11:51. Заголовок: Haz пишет:uField := ..


Haz пишет:
 цитата:
uField := IF( Valtype( uField ) == "C", oBrw:nColumn( uField ), uField )


что бы везде не писать проверку на valtype == C, может ее спрятать в саму nColumn и добавить
METHOD nColumn(xName, nDefCol)
DEFAULT nDefCol := 1
IF valtype(xName) == 'N'
RETURN iif( xName > 0 .and. xName <= Len( ::aColumns ), xName, nDefCol)
ENDIF
RETURN MAX( AScan( oBrw:aColumns, {|oCol| UPPER(oCol:cName) == UPPER( cName ) } ), nDefCol )

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




Пост N: 767
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.07.15 11:58. Заголовок: PS. правильней RETUR..


PS. правильней
RETURN MAX( AScan( oBrw:aColumns, {|oCol| UPPER(oCol:cName) == UPPER( xName ) } ), nDefCol )

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




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


gfilatov2002 пишет:

 цитата:
Сделаю, конечно



Григорий, еще поправочки

Метод ::HideColumn - аналогично
первой строкой
nColumn := IF( Valtype( nColumn) == "C", ::nColumn( nColumn ), nColumn )

или как предлагает Сергей - саму проверку == "С" спрятать в метод ::nColumn() т.к. таких проверок становится больше

Ранее предлагалось вот это
изменение метода LoadFilds() TSBROWSE для автоматического назначения имен колонок по имени поля
добавить в метод строку
ATail( ::aColumns ):cName := FieldName( nE )


Погонял поплотнее - работает только если находимся в текущем алиасе. Правильно будет так
ATail( ::aColumns ):cName := (::cAlias) -> ( FieldName( nE ))

в коде метода ::LoadFields место этой правки логично сразу после похожего кода который там уже есть
ATail( ::aColumns ):cData := ::cAlias + "->" + FieldName( nE )

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


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




Пост N: 768
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.07.15 12:41. Заголовок: SergKis пишет:добави..


SergKis пишет:
 цитата:
добавить METHOD nColumn(xName, nDefCol)


Добавка для таких действий
IF oBrw:nColumn("NAME1", 0) > 0 // есть группа колонок
ELSE // нет группы колонок, добавим ...
ENDIF
вместо проверок через ascan

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




Пост N: 783
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.07.15 15:10. Заголовок: Haz пишет: Правильн..


Haz пишет:

 цитата:
Правильно будет так
ATail( ::aColumns ):cName := (::cAlias) -> ( FieldName( nE ))


Благодарю за поправку!

Haz пишет:

 цитата:
Метод ::HideColumn - аналогично


Сделал

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




Пост N: 784
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.07.15 10:48. Заголовок: Новый релиз библиоте..


Новый релиз библиотеки для компилятора BCC выложил, как и обещал,
на официальном сайте библиотеки по адресу:

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

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

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

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

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

Прошу отписаиться тех, кто скачает И ИСПОЛЬЗУЕТ в работе данную сборку

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

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




Пост N: 5147
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.07.15 13:20. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Прошу отписаиться тех, кто скачает И ИСПОЛЬЗУЕТ в работе данную сборку


Использую в своих тестах. Все нормально !
Спасибо за работу

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




Пост N: 769
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.07.15 14:16. Заголовок: gfilatov2002 Начал..


gfilatov2002
 
Начал переносить в свой проект и обратил внимание:
В добавленном куске KeyDown
Case !::lCellbrw .and. ( nKey == VK_RETURN .or. nKey == VK_SPACE ) .and. ::bLDblClick != Nil // 14.07.2015
Eval( ::bLDblClick )
в вызове хртелось бы уточнения, чем вызывали VK_RETURN или VK_SPACE

В METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) имеем выполнение
...
ElseIf ::bLDblClick != Nil
Eval( ::bLDblClick, uPar1, uPar2, nKeyFlags )
EndIf
...
If ::bLDblClick != Nil .and. ::aActions == Nil
Eval( ::bLDblClick, uPar1, uPar2, nKeyFlags )
Else

имеем рассогласование вызова по параметрам

Просканировал h_tbrowse.prg CLASS TSBrowse на Eval(
оказалось в некоторых местах Self передается в блок кода, во многих нет.
Может есть смысл скорректировать Eval-ы, добавив self.


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




Пост N: 785
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.07.15 16:26. Заголовок: SergKis пишет: в вы..


SergKis пишет:

 цитата:
в вызове хртелось бы уточнения, чем вызывали


Добавил

 цитата:
Eval( ::bLDblClick, Nil, nKey, nFlags )


SergKis пишет:

 цитата:
имеем рассогласование вызова по параметрам


Да, верно. Но мы же смешали здесь мышку с клавиатурой
Вообще, хочу этот кусок заключить в
#ifdef __EXT_SELECTION__
...
#endif
т.е. код используется теми, кому он реально нужен...

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




Пост N: 770
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.07.15 16:57. Заголовок: gfilatov2002 пишет:Д..


gfilatov2002 пишет:
 цитата:
Добавил



 цитата:
Но мы же смешали здесь мышку с клавиатурой


мыша вызывает ::LDblClick(...), здесь клава и добавки Eval( ::bLDblClick, Nil, nKey, nFlags )
на мой взгляд достаточно.
А различить, что вызывало, надо в случае, если на DblClick и Return повешен вызов, а на space снять\поставить галочку или ничего.
А как насчет Self в eval(...) последним параметром к существующим ?
Eval( ::bLDblClick, Nil, nKey, nFlags, Self )
if nValue > 0 .AND. nValue <= Eval(::bLogicLen, Self) // JP 1.59
Eval(::bGoToPos, nValue, Self)
endif
и так далее


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




Пост N: 771
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.07.15 17:25. Заголовок: gfilatov2002 пишет:В..


gfilatov2002 пишет:
 цитата:
Вообще, хочу этот кусок заключить в
#ifdef __EXT_SELECTION__
...
#endif
т.е. код используется теми, кому он реально нужен...


на мой взгляд это лишнее. Можно поступить проще для Tsb:
1- завести DATA массив назначения клавиш
2- метод установки клавиш и блока кода в массив (аналогия set key в clipper)
3- метод добычи блока из массива установки
4- дефаультный метод (ф-ия) устанавливаемый в п. 1 в bUserKeyDown при использовании данной методики
пример (на функциях) кидал Dime (перенес из своего проекта Tsb) и где то у меня есть. Если это интересно ?
эта метода не затрагивает нынешнюю технологию работы с KeyDown


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




Пост N: 4393
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.15 04:26. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Прошу отписаиться тех, кто скачает И ИСПОЛЬЗУЕТ в работе данную сборку


Перешёл, и облом...
С цветами белиберда получается - пока нашёл у LABEL и TAB и DRAW LINE.
Подробности отправил в письме.

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




Пост N: 619
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.07.15 15:20. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Прошу отписаиться тех, кто скачает И ИСПОЛЬЗУЕТ в работе данную сборку



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

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