On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
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 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


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




Пост N: 3673
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.14 06:07. Заголовок: Опять руки дошли до ..


Опять руки дошли до TBROWSE и снова вопрос по нему.
Как получить ширину колонок в TBROWSE после их изменением юзером ?
Т.е. сохранить эту ширину в файле-настроек, а потом восстановить (установить) при других запусках.

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




Пост N: 327
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.11.14 16:17. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как получить ширину колонок в TBROWSE



проще всего заглянуть в исходник

METHOD GetColSizes() INLINE If( ValType( ::aColSizes ) == "A", ::aColSizes, Eval( ::aColSizes ) )

PS. И соответственно получить ширину колонки n можно oBrw:GetColSizes()[n]

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




Пост N: 3674
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.14 17:50. Заголовок: Haz пишет: И соотве..


Haz пишет:

 цитата:
И соответственно получить ширину колонки n можно oBrw:GetColSizes()[n]


Спасибо !!!

При создании окна есть ON INIT.

А где при создании (или после создания) TBROWSE можно также сделать ?
Т.е. нужно восстановить все настройки допустим из ини-файла.

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




Пост N: 427
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.11.14 12:47. Заголовок: Andrey пишет:А где п..


Andrey пишет:
 цитата:
А где при создании (или после создания) TBROWSE можно также сделать ?
Т.е. нужно восстановить все настройки допустим из ини-файла.


сам же ответил:
 цитата:
При создании окна есть ON INIT.


там читаешь ini делаешь SetColWidth(...), расчитывашь новые (или из ini) размеры TsBrowse ...
или между END WINDOW и ACTIVATE WINDOW

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




Пост N: 428
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.11.14 12:50. Заголовок: Andrey SetColSize(...


Andrey
SetColSize(...), надо, а не SetColWidth(...)

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




Пост N: 3678
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.14 13:50. Заголовок: SergKis пишет: или ..


SergKis пишет:

 цитата:
или между END WINDOW и ACTIVATE WINDOW


Понял. Спасибо БОЛЬШОЕ !

Насколько я понял TBROWSE использует 5 настраиваемых шрифтов.
// --------- TSCOLUMN.PRG -------------------------------
// DATA hFont // 1-cells font
// DATA hFontHead // 2-header font
// DATA hFontFoot // 3-footer font
// DATA hFontSpcHd // 4-special header font
// DATA hFontEdit // 5-edition font

Как изменить их - нашел oBrw:ChangeFont( aFont[nI], , nI ),
а как получить из уже настроенного TBROWSE этот список шрифтов (с размерами и т.д.) ?



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




Пост N: 676
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.11.14 14:42. Заголовок: Andrey пишет: а как..


Andrey пишет:

 цитата:
а как получить из уже настроенного TBROWSE этот список шрифтов


Используйте для этого функцию GetFontParam(FontHandle)

Пример:
        aFontPar := GetFontParam(hFont) 
FontName := aFontPar [1]
FontSize := aFontPar [2]
bold := aFontPar [3]
italic := aFontPar [4]
underline := aFontPar [5]
strikeout := aFontPar [6]


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




Пост N: 3679
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.14 16:44. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Используйте для этого функцию GetFontParam(FontHandle)


Это я видел в h_tbrowse.prg

Мне нужно получить сам список хендлов.
hFont1 := oBrw:hFont
hFont2 := oBrw:hFontHead
и т.д. не работает.... или нужно типа так - hFont1 := oBrw:aColumns[ 1 ]:hFont ? Но тоже не работает...


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




Пост N: 328
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 04.11.14 19:28. Заголовок: Andrey пишет: А где..


Andrey пишет:

 цитата:
А где при создании (или после создания) TBROWSE можно также сделать ?
Т.е. нужно восстановить все настройки допустим из ини-файла.



у TsBrowse объекта есть блок DATA bInit // code block to be evaluated on init
может он ?

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




Пост N: 3680
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 00:42. Заголовок: Haz пишет: может он..


Haz пишет:

 цитата:
может он ?


Скорее всего нет ! Нужно ручками записывать и восстанавливать все параметры TBROWSA.

Вопрос предыдущий так и не смог решить.
Мне нужно получить сам список хендлов.
hFont1 := oBrw:hFont
hFont2 := oBrw:hFontHead
и т.д. не работает.... или нужно типа так - hFont1 := oBrw:aColumns[ 1 ]:hFont ? Но тоже не работает...


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




Пост N: 329
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 14:07. Заголовок: Andrey пишет: hFont..


Andrey пишет:

 цитата:
hFont1 := oBrw:aColumns[ 1 ]:hFont ? Но тоже не работает...



что именно не работает ? Нормально возвращает хендл и GetFontParam() по нему дает правильные данные

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




Пост N: 3681
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 14:21. Заголовок: Haz пишет: что имен..


Haz пишет:

 цитата:
что именно не работает ?



hFont1 := oBrw:aColumns[ 1 ]:hFont // строка 297
If hFont1 != Nil
aFontTmp := GetFontParam(hFont1)
ENDIF


Ошибка:
Error BASE/1004 Метод не экспортирован: ACOLUMNS
Called from ACOLUMNS(0)
Called from TBRUPFONTS(297)


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




Пост N: 330
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 14:48. Заголовок: Andrey пишет: Error..


Andrey пишет:

 цитата:
Error BASE/1004 Метод не экспортирован: ACOLUMNS


это в каком куске кода происходит ??? Похоже имеет место попытка получить шрифты с еще не инициализированного бровса.

PS. как oBrw передается в функцию ? если никак то объявлен ли oBrw к примеру как PUBLIC oBrw перед созданием ?

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




Пост N: 3682
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 14:58. Заголовок: Haz пишет: это в ка..


Haz пишет:

 цитата:
это в каком куске кода происходит ??? Похоже имеет место попытка получить шрифты с еще не инициализированного бровса.


Точно. Ж.. с ручкой - передача oBrw: между функциями неправильная !

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




Пост N: 3683
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 15:31. Заголовок: Как лучше менять шри..


Как лучше менять шрифты в TBROWSе ?

оBrw:ChangeFont( aFont[ 1 ], , 1 )
cBrw:ChangeFont( aFont[ 2 ], , 2 )
cBrw:ChangeFont( aFont[ 3 ], 1 , 3 )
cBrw:ChangeFont( aFont[ 4 ], , 4 )

или через

oBrw:hFont := _SetFont (ControlHandle,FontName,FontSize,bold,italic,underline,strikeout)
...............


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




Пост N: 332
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 18:45. Заголовок: Andrey пишет: Как л..


Andrey пишет:

 цитата:
Как лучше менять шрифты в TBROWSе



через оBrw:ChangeFont( aFont[ 1 ], , 1 ) , т.к. aFont[] может быть кодовым блоком и соответственно шрифт в колонке может меняться от условий.
К примеру - обслуженная заявка может отображаться перечеркнутым шрифтом, а черновик - курсивом

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




Пост N: 3685
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 19:48. Заголовок: А как тогда из выбра..


А как тогда из выбранного списка шрифтов (из меню) сделать переназначение шрифтов.
Допустим есть массив:
aFonts := {}
AADD( aFonts, {"Times New Roman",11,lBold,lItalic} )
AADD( aFonts, {"Arial" ,12,lBold,lItalic} )
AADD( aFonts, {"Tahoma" ,14,lBold,lItalic} )
AADD( aFonts, {"Courier New" ,16,lBold,lItalic} )
AADD( aFonts, {"Courier New" ,12,lBold,lItalic} )


---> через оBrw:ChangeFont( aFont[ 1 ], , 1 ) и т.д.
Т.е. как из массива aFonts[1] получить хендл этого шрифта (размер,болд,италик) ?
Достаточно сделать GetFontHandle( aFonts[1] ) или нет ?


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




Пост N: 334
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 21:23. Заголовок: Andrey пишет: Доста..


Andrey пишет:

 цитата:
Достаточно сделать GetFontHandle( aFonts[1] )


достаточно НО если это не блок кода

Не понял конечную цель , чего именно хотим ?
-если из меню шрифт назначить - тогда это передать параметры в define font и получив хендл назначенного шрифта через GetFontHandle() еспользовать его
- если по хендлу параметры шрифта получить , так пару сообщений назад Григорий все расписал
-если из объекта aColumns хендл получить - то сначала проверить его надо на тип данных через
IF Valtype(::hFont) == "B"
hFontHandle := eval(::hFont)
END

В итоге - цель то какая ?

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




Пост N: 3686
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.14 21:41. Заголовок: Haz пишет: достаточ..


Haz пишет:

 цитата:
достаточно НО если это не блок кода



Что-то не работает. Сделал по другому - работает, но может я неправ ?
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION TbrUpFonts(oBrw,aFonts) // перечитать шрифты TBROWSE
LOCAL nI, hFont, aF, ControlHandle := oBrw:hWnd

IF LEN(aFonts) > 0
FOR nI := 1 TO 5
aF := aFonts[nI]
hFont := _SetFont(ControlHandle,aF[1],aF[2],aF[3],aF[4])
oBrw:ChangeFont( hFont, , nI )
NEXT
ENDIF
..............


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




Пост N: 335
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 21:53. Заголовок: Andrey пишет: Что-т..


Andrey пишет:

 цитата:
Что-то не работает.



не обратил внимания у меня aFont из хендлов а твой массив параметров шрифта . тогда НЕ ДОСТАТОЧНО
тогда пример richEditEx в помощь ( уже вроде говорили про него в этом контексте месяца три назад )
там как раз показано как использовать _SetFont(), и правильно что туда заглянул


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