Автор | Сообщение |
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; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Dima
|
| |
Пост N: 5133
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.07.15 23:07. Заголовок: Но там не только это..
Но там не только это название не влезло по ширине в хидер , что без правки что с ней. Ширину колонки можно и нужную задать. В примере это не было целью. Но мысль я думаю Вы уже поняли. gfilatov2002 пишет: цитата: | но обрати внимание после этого изменения на отображение восьмой колонки "без доставки" |
| Все нормально с ней. Хидер на месте да и данные в таблице. Нет ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 775
Зарегистрирован: 11.02.10
|
|
Отправлено: 16.07.15 00:20. Заголовок: Dima пишет: данные..
Dima пишет: Нажми стрелку вниз и следи за данными в этой колонке. Во всех строках выше нижней будет дублирование данных одной и той же ячейки. Для устранения этой проблемы и требуется дополнительная перерисовка в текущем коде...
|
|
|
Dima
|
| |
Пост N: 5134
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.07.15 08:41. Заголовок: gfilatov2002 Собрал..
gfilatov2002 Собрал этот пример. Проблемы не увидел. Ездил долго. Можете выложить свой EXE (этого примера) , хочу его пощупать !? В колонке 8 стоит str(random(100)) , так что да, данные могут и дублироваться в строках. Стоит его заменить на что то не рандомное и проблемы нет. И все же жду EXE , если не сложно.
|
|
|
Haz
|
| |
Пост N: 608
Зарегистрирован: 20.02.11
|
|
Отправлено: 16.07.15 11:56. Заголовок: мерцание как на ело..
цитата: | мерцание как на елочной гирлянде :) |
| Дополню, причина мерцания в логике алгоритма - строка с курсором постоянно перекрашивается : Как стандартно отрабатывается :GoDown() когда курсор в последней строке. 1. Курсор в последней строке , она раскрашена в соответствии с :SetColor( {5,6} … ) 2. К позиции курсора ( в последней строке ) применяется метод :DrawLine() в результате чего вся строка перекрашивается установленными цветами :SetColor( {1,2} … ) Т.е. строка курсора сменила цвет. 3. Производится вызов скрола ВСЕГО окна бровса вверх на высоту одной строки. В этот момент строка курсора по прежнему соответствует :SetColor( {1,2} … ) 4. К позиции курсора ( в последней строке ) применяется метод :DrawSelect() в результате чего вся строка перекрашивается установленными цветами :SetColor( {5,6} … ) Видим, что между 1 и 4 строка курсора МЕНЯЕТ цвет , отсюда и мигания Как предлагается отрабатываеть :GoDown() когда курсор в последней строке. 1. Курсор в последней строке , она раскрашена в соответствии с :SetColor( {5,6} … ) 2. Производится вызов скрола окна бровса БЕЗ последней строки вверх на высоту одной строки. В этот момент строка курсора по прежнему остается :SetColor( {5,6} … ) 3. К строке ::nRowPos – 1 применяется метод :DrawLine() для обновления данных 4. К позиции курсора ( в последней строке ) применяется метод :DrawSelect() для обновления данных Видим, что между 1 и 4 строка курсора НЕ МЕНЯЕТ цвет PS при :GoUp() все зеркально
|
|
|
Dima
|
| |
Пост N: 5135
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.07.15 12:13. Заголовок: Дополню , так как з..
Дополню , так как забыл о правке еще одной в методе GoDown() было If lTranspar //V90 ::Paint() //V90 Else //V90 ::nRowPos := nLines ::TSBrwScroll( 1 ) EndIf //V90 Стало If lTranspar //V90 ::Paint() //V90 Else //V90 ::nRowPos := nLines ::TSBrwScroll( 1 ) ::Skip(-1) ::DrawLine( ::nRowPos -1 ) // добавил 10.07.2015 ::Skip(+1) EndIf //V90
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 776
Зарегистрирован: 11.02.10
|
|
Отправлено: 16.07.15 13:20. Заголовок: Dima пишет: забыл о..
Dima пишет: Эта правка решает проблему с дублированием данных в 8-й колонке при движении вниз по таблице. Принимается с благодарностью за настойчивость
|
|
|
Dima
|
| |
Пост N: 5136
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.07.15 13:25. Заголовок: gfilatov2002 Cишник..
gfilatov2002 Cишник тоже надо поправить , Has выше написал для чего. Сорри что дергаю
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 777
Зарегистрирован: 11.02.10
|
|
Отправлено: 16.07.15 13:56. Заголовок: Dima пишет: Cишник ..
Dima пишет: цитата: | Cишник тоже надо поправить |
| Да, уже сделал (я рассматривал эти правки а одном пакете) Теперь все изменения выглядят в changelog так: цитата: | * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - correction of calculation of total column width in the Method ReSize; - minor correction in the Method GoUp; - conspicuous reducing of cursor blinking in the Method GoDown; - correction of a rare bug in the Method PageUp; - used SRCAND raster in the C-function DrawBitmap(); - added handling of <Enter>/<Space> keys similar to LDblClick action; - added the new TSColumn variable cName for optional column name. Contributed by users from the Russian HMG forum. |
| Если есть замечания к этому тексту - пишите...
|
|
|
Dima
|
| |
Пост N: 5137
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.07.15 15:00. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Если есть замечания к этому тексту - пишите... |
| Все в порядке ! Ждем RC3 (Bcc и MinGW). ЗЫ Будут еще полезняхи от users from the Russian HMG forum , работаем над этим ;)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 762
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.07.15 15:59. Заголовок: gfilatov2002 пишет:...
gfilatov2002 пишет: цитата: | ... - added the new TSColumn variable cName for optional column name. |
| Может стоит добавить метод для получения номера колонки по имени cName в TsBrowse, типа METHOD nColumn( cName ) ... а то получается cName есть, а добыть по нему номер колонки нет, надо городить что то дополнительно
|
|
|
Haz
|
| |
Пост N: 609
Зарегистрирован: 20.02.11
|
|
Отправлено: 16.07.15 16:37. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может стоит добавить метод для получения номера колонки по имени |
| Согласен правда там весь огород в одну строку получился METHOD nColumn( cName ) INLINE MAX( AScan( ::aColumns, {|oCol| UPPER(oCol:cName) == UPPER( cName ) } ), 1 )
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 763
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.07.15 22:04. Заголовок: Haz пишет:правда там..
Haz пишет: цитата: | правда там весь огород в одну строку получился METHOD nColumn( cName ) INLINE MAX( AScan( ::aColumns, {|oCol| UPPER(oCol:cName) == UPPER( cName ) } ), 1 ) |
| Огород - это когда в каждый проект сувать FUNCTION nColumn( oBrw, cName ) RETURN MAX( AScan( oBrw:aColumns, {|oCol| UPPER(oCol:cName) == UPPER( cName ) } ), 1 )
|
|
|
Dima
|
| |
Пост N: 5138
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.07.15 22:19. Заголовок: Haz пишет: + SergKis..
Haz пишет: + SergKis пишет: :) цитата: | правда там весь огород в одну строку получился |
| Действительно почему бы не добавить , мелочь а приятно да и полезно. Вроде даже в Xbrowse FW такого нет (могу ошибаться , так как слез с него...).
|
|
|
Haz
|
| |
Пост N: 610
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.07.15 11:12. Заголовок: SergKis пишет: Огор..
SergKis пишет: цитата: | Огород - это когда в каждый проект сувать |
| Да я за не хочу в каждый проект
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 778
Зарегистрирован: 11.02.10
|
|
Отправлено: 17.07.15 11:21. Заголовок: Dima пишет: почему ..
Dima пишет: Добавил метод METHOD nColumn( cName ), и теперь требуется небольшой пример для проверки/демонстрации этих изменений
|
|
|
Haz
|
| |
Пост N: 611
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.07.15 11:46. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | теперь требуется небольшой пример для проверки/демонстрации этих изменени |
| когда нужно ? сделаем !
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 779
Зарегистрирован: 11.02.10
|
|
Отправлено: 17.07.15 12:09. Заголовок: Haz пишет: когда ну..
Haz пишет: До понедельника терпит...
|
|
|
Haz
|
| |
Пост N: 612
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.07.15 14:14. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Добавил метод METHOD nColumn( cName ), |
| У меня как INLINE его добавить не вышло , описал обычным вызовом Григорий , еще дополнение CLASS TSBROWSE добавить переменную ( позволит ловить строку в которой курсор ) DATA lDrawSelect AS LOGICAL INIT .F. в методе DrawSelect() ее переключать перед lSelected := ::lCanSelect .and. ( AScan( ::aSelected, If( ::lIsDbf, ( ::cAlias )->( RecNo() ), ::nAt ) ) ) > 0 добавить ::lDrawSelect := TRUE перед return Self добавить ::lDrawSelect := FALSE ***************************************************** Пример использование будет в примере ) oBrw:ChangeFont( { || IF(oBrw:lDrawSelect, aFont[2], aFont[1]) } ,, ) - меняем шрифт в строке курсора на жирный
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 780
Зарегистрирован: 11.02.10
|
|
Отправлено: 17.07.15 14:31. Заголовок: Haz пишет: добавить..
Haz пишет: Принимается Haz пишет: цитата: | использование будет в примере |
| Уже интересно
|
|
|
Haz
|
| |
Пост N: 614
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.07.15 15:11. Заголовок: gfilatov2002 пишет: ..
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|