On-line: tnsr2, гостей 2. Всего: 3 [подробнее..]
АвторСообщение
Vlad04
постоянный участник


Пост N: 420
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)


TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений
К примеру

 цитата:

DEFINE TBROWSE oBrw2 ;
AT 60,450 ;
ALIAS cAlias ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 340 ;
FONT "Verdana" ;
SIZE 9 ;
ON DBLCLICK CopyRec();
ON GOTFOCUS fModelo_Hab(2) ;
AUTOFILTER ;
CELLED EDIT;
VALUE nRec;
GRID


Здесь я собрал параметры из разных tBrows
Можно или нет и какие парметры заменить
выражением ( и каким) ?
oBrw2:....
oBrw2:....



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


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




Пост N: 718
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.07.15 20:31. Заголовок: Dima пишет: фон BMP ..


Dima пишет:
 цитата:
фон BMP надо делать белый


Попробовал из VO bmp с белым фоном - полет нормальный.

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




Пост N: 5057
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.07.15 21:25. Заголовок: Снова о Double Curso..


SergKis пишет:

 цитата:
Попробовал из VO bmp с белым фоном - полет нормальный.


OK


Снова о Double Cursor.
Вот так выглядит , без особого тюнинга.

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



Еще вопрос:
 
Full oBrw:nLineStyle := 1
Only vertical lines oBrw:nLineStyle := 2
Only horizontal lines oBrw:nLineStyle := 4
No lines oBrw:nLineStyle := 0

Пока стоит у меня 1 , вроде ни чего так. В консоли если сравнивать была бы 2.
В общем пробнул все варианты включая 5 и 3
И так и не понял как лучше и как быстрее будет для самого бровса.
Быстрее будет конечно с nLineStyle := 0 , но выглядит как то вяло все
Кто как юзает ?

PS
Смотрел таблички в задачах на DELPHI , там летает все и ни чего не "подмаргивает" ,
просто хотелось улучшить Tsbrowse в плане прорисовки и скорости.

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




Пост N: 4360
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.07.15 00:17. Заголовок: Dima пишет: Смотрел..


Dima пишет:

 цитата:
Смотрел таблички в задачах на DELPHI , там летает все и ни чего не "подмаргивает"


Там двойная буферизация при выводе на экран. Кто нам сделает такое же в МиниГуи - вопрос открыт !

Dima пишет:

 цитата:
просто хотелось улучшить Tsbrowse в плане прорисовки и скорости.


Аналогично.
Мне бы тоже хотелось иметь готовые примеры как нужно делать то или иное в Tsbrowse.


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




Пост N: 5058
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 08:52. Заголовок: Andrey пишет: Там д..


Andrey пишет:

 цитата:
Там двойная буферизация


Ну по идее (хотя в си я валенок) надо
в сырцах TsBrowse где идут вызовы SendMessage(...)
4-ым параметром передавать LVS_EX_DOUBLEBUFFER
Только надо знать в каком из них (SendMessage) это
сделать.

Хотя, нет.......
В Tsbrowse есть InitDialogBrowse , вот надо как то перед его вызовом поиграть
с doublebuffer := _HMG_aControlMiscData1 [i,19]
Возможно в Function _DefineTBrowse
в _HMG_aControlMiscData1 [k] := 0 , вместо этого сделать так
_HMG_aControlMiscData1 [k] := { , , , , , , , , , , , , , , , , , , TRUE }

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




Пост N: 719
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 09:12. Заголовок: Dima если меняем ис..


Dima
если меняем исходники TsBrowse, вопросик
А ты делел, по совету Haz, добавление cName (своего имени колонки) в TSColumn ?
CLASS TSColumn
DATA cName INIT ""
...
Я да, и еще тронул
 
METHOD GetColumn( nCol ) CLASS TSBrowse

Default nCol := 1

IF hb_IsString( nCol )
nCol := Max( AScan( ::aColumns, {|oCol| Upper(oCol:cName)==Upper(nCol) } ), 1)
RETURN ::aColumns[ nCol ] // returns a Column object
ENDIF

If nCol < 1
nCol := 1
ElseIf nCol > Len( ::aColumns )
nCol := Len( ::aColumns )
EndIf

Return ::aColumns[ nCol ] // returns a Column object

может и еще надо было бы пройтись, но пока этим обхожусь


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




Пост N: 5059
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 09:15. Заголовок: SergKis Нет этого н..


SergKis
Нет этого не делал.
О DoubleBuffer читал , мыслю верно ?
Я о _HMG_aControlMiscData1 [k] := 0 функции _DefineTBrowse

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




Пост N: 720
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 09:23. Заголовок: Dima так глубоко ещ..


Dima
так глубоко еще не лазил (как устроено не копал), по простым методам не прошел даже. Получается, как ты говорил "зашел на 5 минут", а вышел через неделю и не заметил. В Browse и вернулся по этим причинам.


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




Пост N: 721
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 09:33. Заголовок: Dima пишет:Я о _HMG_..


Dima пишет:
 цитата:
Я о _HMG_aControlMiscData1 [k] := 0 функции _DefineTBrowse


В др.контролах это контейнер внутренних данных, в TsBrowse нашел только это METHOD EditExit line 3950
 
If ValType( oCol:oEdit ) == "O"
DO CASE
CASE "TGETBOX" $ Upper( oCol:oEdit:ClassName() )
ix := GetControlIndex ( ::cChildControl, ::cParentWnd )
nKey := _HMG_aControlMiscData1 [ix][3]
SetFocus( ::hWnd ) // JP 1.59
CASE "TBTNBOX" $ Upper( oCol:oEdit:ClassName() ) .and. lSpinner

не считая функции _DefineTBrowse


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




Пост N: 5060
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 09:57. Заголовок: Тогда не понятно как..


Тогда не понятно как корректно в 19 элемент сложить TRUE

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




Пост N: 722
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 10:33. Заголовок: Dima LVS_EX_DOUBLEB..


Dima
LVS_EX_DOUBLEBUFFER - это для ListView, т.е. дл Browse, Grid

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




Пост N: 590
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.07.15 10:39. Заголовок: SergKis пишет: може..


SergKis пишет:

 цитата:
может и еще надо было бы пройтись, но пока этим обхожусь



Сергей, я еще это менял ( номера строк примерные т.к. дома не актуальные исходники )

добавил код чтобы по ENTER и SPACE вызывался код дабл клика мышкой в широком курсоре
6396 Case !::lCellbrw .And. (nKey == 13 .Or. nKey == 32 )
If ::bLDblClick != Nil
Eval( ::bLDblClick )
EndIf
Otherwise



Выход из редактирования при потере фокуса ячейкой с СОХРАНЕНИЕМ редакции ( как Excel )

// if nKey == 0
3915 // lLostFocus := .T. Закоментировал и изменил условие ниже с nKey > 0 на nKey >= 0
// endif

3919 If ! lLostFocus .and. nKey >= 0 .and. (nKey != VK_ESCAPE .or. ::nColSpecHd != 0) .and. ;



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




Пост N: 723
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 10:40. Заголовок: Haz Спасибо. :sm36..


Haz
Спасибо.

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




Пост N: 5061
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 10:41. Заголовок: SergKis пишет: LVS_..


SergKis пишет:

 цитата:
LVS_EX_DOUBLEBUFFER - это для ListView, т.е. дл Browse, Grid


То есть не для TSBROWSE......??? , который в свою очередь юзает InitDialogBrowse из h_browse.prg в
котором и считывается doublebuffer := _HMG_aControlMiscData1 [i,19] и затем скармливается
SendMessage.
Можно тупо закоментить doublebuffer := _HMG_aControlMiscData1 [i,19]
и написать doublebuffer := TRUE

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




Пост N: 724
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 10:56. Заголовок: Dima это где ? не в..


Dima
это где ? не вижу, ткни
 цитата:
который в свою очередь юзает InitDialogBrowse из h_browse.prg в
котором и считывается doublebuffer := _HMG_aControlMiscData1 [i,19] и затем скармливается
SendMessage.



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




Пост N: 5062
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 11:06. Заголовок: Вызов InitDialogBrow..


Вызов InitDialogBrowse есть в SOURCE\TsBrowse\h_tbrowse.prg
Сам InitDialogBrowse живет в сырцах Минигуи в h_browse.prg ,
строка примерно 296
Там чуть ниже и считывается doublebuffer из массива _HMG_aControlMiscData1

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




Пост N: 725
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 11:18. Заголовок: туда попадаем при i..


туда попадаем при
if _HMG_BeginDialogActive
а унас ситуация else и
oBrw := TSBrowse():New( ControlName, nRow, nCol, nWidth, nHeight,;


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




Пост N: 5063
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 13:29. Заголовок: SergKis Попробовал ..


SergKis
Попробовал сделать по аналогии с обычным бровсом в Function _DefineTBrowse
в самом конце перед Return
 
if .Not. _HMG_DialogInMemory
SendMessage( ControlHandle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_DOUBLEBUFFER)
endif

Пересобрал , видимого эффекта не обнаружил , все по старому............
Наверное там не все так просто если Григорий этого не сделал после того как в Grid и бровсе
был введен DOUBLEBUFFER.
Фсё , у меня мысли кончились в плане DOUBLEBUFFER

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




Пост N: 726
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.15 14:09. Заголовок: Dima LVS_EX_DOUBLEB..


Dima
LVS_EX_DOUBLEBUFFER это ListView контрол от Мвйкрософта и появилось то ли с Висты, то ли с 7ки, раньше вроде не было.
а TsBrowse типа самописный, так что ...

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




Пост N: 5064
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 14:11. Заголовок: SergKis Понял. Посл..


SergKis
Понял.
Последняя попытка ;)
Пробнул вот так еще в своем сырце после END WINDOW
ListView_ChangeExtendedStyle ( GetControlHandle('oBrwm','MAGAZIN'), LVS_EX_DOUBLEBUFFER, NIL )
Эффекта не увидел. Тут не катит такое ?

PS
Похоже не катит........

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




Пост N: 5065
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.07.15 14:45. Заголовок: SergKis А в обычном..


SergKis
А в обычном бровсе не TS , супер хидер возможен ?
Сделать двойной курсор можно ?

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