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


Пост 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:....

























<a href=http://www.bestmarket.com.ua >ноутбуки</a>























<a href=http://www.bestmarket.com.ua >ноутбуки</a>
Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 86 , стр: 1 2 3 4 5 All [только новые]


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




Пост N: 6665
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.20 19:07. Заголовок: А зачем в demo7.prg ..


А зачем в demo7.prg в конце функций my0(oBrw) и my1(oBrw)
ставится вот этот код:
   :lDrawLine := .T. 
:Reset()
AEval( :aColumns ,{|oc| oc:oCell := NIL, ;
oc:oCellHead := NIL, ;
oc:oCellEnum := NIL, ;
oc:oCellFoot := NIL } )



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3196
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.20 19:18. Заголовок: Andrey пишет А зачем..


Andrey пишет
 цитата:
А зачем в demo7.prg в конце функций my0(oBrw) и my1(oBrw) ставится вот этот код:


Эти переменные, после :DarawLine(, .F.), :DrawHeader(, .F.), DrawFooters(, .F.) хранят данные, которые можно убрать, что и делается в AEval(), т.к. с тсб можно работать еще долго. Если этого не делать, ничего страшного, повисят до окончания работы этого тсб.

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




Пост N: 6669
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.20 15:18. Заголовок: Всем привет ! Нашёл ..


Всем привет !
Нашёл тут большую непонятку в примере.
Если кол-во колонок равно 45 и стрелками вправо-влево до конца и начала таблицы, то всё, таблица ломается и
пример вешается.
Если сделать 44 или 46 колонок, то всё нормально.
Почему так ?
Цифру 45 нашёл в mySet2Tsb(), может из-за этого ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3201
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.20 18:25. Заголовок: Andrey пишет Почему ..


Andrey пишет
 цитата:
Почему так ?


Ты пропустил, почитай http://clipper.borda.ru/?1-1-0-00000559-000-60-0 Пост 1 Отправлено: 29.11.19 10:25
и далее
ChangeLog.txt
 цитата:

2019/12/12: HMG Extended Edition version 19.12.
...
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- added the new variable :lMoreFields in the TSBrowse class;
- added the new method MoreFields( nMsg, nWParam ).
...


Надо подбирать кол-во полей или переменную
DATA nMaxKeysLR AS NUMERIC INIT 3
Значение для MySet2Tsb() взял (see demo in folder \Utils\mgDBU)
У меня с такими значениями работает норм.

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




Пост N: 6670
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.20 20:12. Заголовок: SergKis пишет: Ты п..


SergKis пишет:

 цитата:
Ты пропустил, почитай


А как тогда сделать этот пример чтобы всегда работал ?
Сломал на 34 колонках...
Проект положил к тебе.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3202
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.20 20:51. Заголовок: Andrey пишет Уменьш..


Andrey пишет [quote]`
Уменьшил 45 на 30 и у меня работает, т.е.
:lMoreFields := ( :nColCount() > 30 )

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




Пост N: 6671
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.20 21:17. Заголовок: SergKis пишет: Умен..


SergKis пишет:

 цитата:
Уменьшил 45 на 30 и у меня работает, т.е.


Да, так заработало !
Спасибо !

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




Пост N: 6672
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.20 21:51. Заголовок: Если делать цвета че..


Если делать цвета через контейнер:
 
FUNCTION mySetTsb( oBrw )
WITH OBJECT oBrw
:Cargo := oKeyData() // создает объект без переменных (условно пустой) используем ниже по коду
.....
FUNCTION myColorTsb( oBrw )
LOCAL O
WITH OBJECT oBrw:Cargo
:nText := GetSysColor( COLOR_WINDOWTEXT )
:nPane := GetSysColor( COLOR_WINDOW )
....

то начинает ломаться экспорт в эксель.
Выдаёт такую ошибку:
Error BASE/1004 Метод не экспортирован: CARGO Args: [1] = N 10 
--------------------------------- Stack Trace ---------------------------------
Called from CARGO(0)
Called from MYTSBCOLORBACKFOOT(552) in module: demo7.prg
Called from (b)MYCOLORTSBELECT(278) in module: demo7.prg
Called from MYCOLORN(785) in module: Tsb5xlsOle1.prg
Called from EXCELOLE4EXTERN(706) in module: Tsb5xlsOle1.prg
Called from (b)TOEXCEL5(86) in module: Excel5.prg
Called from BRW4XLSOLE(357) in module: Tsb5xlsOle1.prg

И как теперь быть ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3203
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.20 22:00. Заголовок: Andrey пишет Да, так..


Andrey пишет
 цитата:
Да, так заработало !


Если бы ты вставил команду
 
:lNoHScroll := .F. // добавить\вкл. ползунок горизонтальный
? procname(), :nColCount()
?
:lMoreFields := ( :nColCount() > 45 )

то по результату все увидел бы сам
MYSET2TSB 44

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3204
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.20 22:13. Заголовок: Andrey пишет И как т..


Andrey пишет
 цитата:
И как теперь быть ?


Переделать на oCol:oСell ( :DrawLine(, .F.) ), все брать оттуда и :hFont, цвета, :cValue, :uValue, valtype(:uValue)
Там все готовые данные к выводу, бери нужные, формат excel от них ...

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




Пост N: 6673
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.05.20 22:16. Заголовок: SergKis пишет: Пере..


SergKis пишет:

 цитата:
Переделать на


Понял...

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




Пост N: 6687
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.20 10:44. Заголовок: Всем доброго утра ! ..


Всем доброго утра !
Возникли вопросы по tsbrowse

1) Почему при создании тсб нельзя сразу задать все фонты ? вот так:
   aFont  := { "TsbCellNorm", "TsbHeadBold", "TsbFootBold", "TsbSpHd" }  

DEFINE TBROWSE oBrw ;
AT nY, nX ALIAS aArray WIDTH nWTsb HEIGHT nHTsb CELL ;
FONT aFont ;
.....

Сейчас 3 фонта работают. Добавить 4 фонт возможно ?

2) Сейчас в тсб можно добавить первую виртуальную колонку для tsbrowse-Dbf и tsbrowse-Array
А можно ещё сделать добавление своих доп.колонок ?
Для tsbrowse-Array понятно, что делать этого не нужно.
А вот для tsbrowse-Dbf иногда нужно, допустим когда нельзя править структуры базы.
Можно создавать свое поле в базе, но иногда этого делать нельзя, допустим при работе с чужой базой.
Если это сложно сделать, то вопрос можно пропустить.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3218
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.05.20 13:00. Заголовок: Andrey пишет А можно..


Andrey пишет
 цитата:
А можно ещё сделать добавление своих доп.колонок ?


Сколько угодно
 
LOCAL oCol
DEFINE COLUMN oCol ...
...
oBrw:InsColumn( nPos, oCol ) // nPos номер перед которой вставить
...
Для dbf в списке полей одно имя поля повторяешь 2 раза (можешь 3 и ...), потом для колонки по номеру меняешь
oCol:bData или oCol:bValue и даешь новое имя oCol:cName := "...". можно поправить oCol:cField и т.д. если надо

 цитата:
Сейчас 3 фонта работают. Добавить 4 фонт возможно ?


Куда ?
Есть oBrw:hFont, oBrw:hFontHead, oBrw:hFontFoot. Для колонок, SuperHead, SpecHd есть переменные в своих местах



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3219
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.05.20 13:26. Заголовок: PS Если ты говоришь ..


PS
Если ты говоришь о заполнении, выделенное цветом
DATA hFontEdit AS NUMERIC // edition font

DATA hFontHead AS NUMERIC // header font
DATA hFontFoot AS NUMERIC // footer font
DATA hFontSpcHd AS NUMERIC // special header font


то надо добавлять в массив в каком то порядке и присваивать в _DefineTBrowse ()

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




Пост N: 6688
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.20 18:54. Заголовок: SergKis пишет: то н..


SergKis пишет:

 цитата:
то надо добавлять в массив в каком то порядке и присваивать в _DefineTBrowse ()


Ну да, я про это.
При создании ТСБ задать сразу все фонты 4 штуки, таблица же из 4 секций состоит.
Для основных задач будет простое и понятное заполнение.
Ну а потом, кто хочет делает фонты какие сам захочет.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3220
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.05.20 19:57. Заголовок: Andrey пишет При соз..


Andrey пишет
 цитата:
При создании ТСБ задать сразу все фонты 4 штуки, таблица же из 4 секций состоит.


Для этого поправить немного надо
 
FUNCTION _DefineTBrowse( ControlName, ParentFormName, nCol, nRow, nWidth, nHeight, ;
...
IF ! Empty( FontName ) .and. HB_ISARRAY( FontName )
AEval( FontName, { |cf| AAdd( aFonts, cf ) } )
aFont := ASize( aFonts, 4 )
FontName := aFont[1]
...
oBrw := TSBrowse():New( ControlName, nRow, nCol, nWidth, nHeight, ;
bFields, aHeaders, aWidths, ParentFormName, ;
change, bDblClick, bRClick, fontname, fontsize, ;
hCursor, aTmpColor, aBmp, cMsg, update, uAlias, uWhen, value, cell, ;
nStyle, bLClick, aFlds, aHeadClick, nLineStyle, lRePaint, ;
Delete, aJust, lock, appendable, lEnum, ;
lAutoSearch, uUserSearch, lAutoFilter, uUserFilter, aPicture, ;
lTransparent, uSelector, lEditable, lAutoCol, aColSel, tooltip )

IF HB_ISARRAY( aFont ) .and. Len(aFont) > 3 .and. HB_ISCHAR(aFont[ 4 ])
oBrw:hFontSpcHd := GetFontHandle(aFont[ 4 ])
ENDIF
...

Проверил, работает

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




Пост N: 6689
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.20 20:04. Заголовок: SergKis пишет: Ты,..


SergKis пишет:

 цитата:
Ты, наверно, путаешь SpecHeader (ENUMERATOR) и SuperHeader - это две разницы


Да, я наверное путаю.
Имеется таблица, в ней 4 части: ячейки, подвал, шапка и та часть над шапкой.
Я её называю суперхидером. Или я неправ ?
Вот для неё и нужно сразу задавать фонт.
Хотя идея автора наверное была что суперхидер имеет одинаковый шрифт как у шапки таблицы.
Но это для юзера не наглядно !
Заголовок таблицы нужно делать крупней для юзера, чтобы в глаза бросалась.
Из-за этого и возник вопрос.

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




Пост N: 6690
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.20 20:57. Заголовок: SergKis пишет: Пров..


SergKis пишет:

 цитата:
Проверил, работает


Да я тоже проверил.
Так лучше !

Но тогда напрашивается вопрос размещения 5 фонта.
      aFont  := { "TsbNorm", "TsbBold", "TsbBold", "TsbSpecH", "TsbSuperH" } 

Можно ли это реализовать ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3221
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.05.20 20:59. Заголовок: Andrey пишет Я её на..


Andrey пишет
 цитата:
Я её называю суперхидером.


Это специальный заголовок, для нумерации колонок
SuperHeader это над Header, объединяет колонки.
Используй для фонта для него команду
#command ADD [ SUPER ] HEADER TO <oBrw> ;
...
[ FONT <uFont> ] ;
...
или метод с параметрами
:AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, ...)

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




Пост N: 6691
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.20 21:04. Заголовок: SergKis пишет: Supe..


SergKis пишет:

 цитата:
SuperHeader это над Header, объединяет колонки.


Ну да, я так и пишу - "шапка и та часть над шапкой."

SergKis пишет:

 цитата:
или метод с параметрами
или после
:AddSuperHead(...)
:hFontSupHdSet( nCol, hFontSuper )


А как можно отдельно задать фонт для суперхидера, сразу.
Пробовал так:
:hFontSupHdSet := GetFontHandle("CardSuperH") // 5-доп.фонт
Прога вылетает с ошибкой:
 
Error BASE/1005 Message not found: TSBROWSE:_HFONTSUPHDSET Args: [1] = O TSBROWSE
--------------------------------- Stack Trace ---------------------------------
Called from __ERRRT_SBASE(0)
Called from TSBROWSE:ERROR(0)
Called from (b)HBOBJECT(0)
Called from TSBROWSE:MSGNOTFOUND(0)
Called from TSBROWSE:_HFONTSUPHDSET(0)
Called from MYSUPERHEADER(595) in module: cardcomp.prg
Called from MAIN(159) in module: cardcomp.prg


Там 2 параметра в METHOD hFontSupHdSet( nCol, uFont )
А как правильно задать мне в :hFontSupHdSet := ???????

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 86 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 319
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет