Автор | Сообщение |
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:....
|
|
|
Ответов - 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 после их изменением юзером ? Т.е. сохранить эту ширину в файле-настроек, а потом восстановить (установить) при других запусках.
|
|
|
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]
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3674
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.11.14 17:50. Заголовок: Haz пишет: И соотве..
Haz пишет: цитата: | И соответственно получить ширину колонки n можно oBrw:GetColSizes()[n] |
| Спасибо !!! При создании окна есть ON INIT. А где при создании (или после создания) TBROWSE можно также сделать ? Т.е. нужно восстановить все настройки допустим из ини-файла.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 427
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.11.14 12:47. Заголовок: Andrey пишет:А где п..
Andrey пишет: цитата: | А где при создании (или после создания) TBROWSE можно также сделать ? Т.е. нужно восстановить все настройки допустим из ини-файла. |
| сам же ответил: цитата: | При создании окна есть ON INIT. |
| там читаешь ini делаешь SetColWidth(...), расчитывашь новые (или из ini) размеры TsBrowse ... или между END WINDOW и ACTIVATE WINDOW
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 428
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.11.14 12:50. Заголовок: Andrey SetColSize(...
Andrey SetColSize(...), надо, а не SetColWidth(...)
|
|
|
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 этот список шрифтов (с размерами и т.д.) ?
|
|
|
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]
|
|
|
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 ? Но тоже не работает...
|
|
|
Haz
|
| |
Пост N: 328
Зарегистрирован: 20.02.11
|
|
Отправлено: 04.11.14 19:28. Заголовок: Andrey пишет: А где..
Andrey пишет: цитата: | А где при создании (или после создания) TBROWSE можно также сделать ? Т.е. нужно восстановить все настройки допустим из ини-файла. |
| у TsBrowse объекта есть блок DATA bInit // code block to be evaluated on init может он ?
|
|
|
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 ? Но тоже не работает...
|
|
|
Haz
|
| |
Пост N: 329
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.11.14 14:07. Заголовок: Andrey пишет: hFont..
Andrey пишет: цитата: | hFont1 := oBrw:aColumns[ 1 ]:hFont ? Но тоже не работает... |
| что именно не работает ? Нормально возвращает хендл и GetFontParam() по нему дает правильные данные
|
|
|
|
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)
|
|
|
Haz
|
| |
Пост N: 330
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.11.14 14:48. Заголовок: Andrey пишет: Error..
Andrey пишет: цитата: | Error BASE/1004 Метод не экспортирован: ACOLUMNS |
| это в каком куске кода происходит ??? Похоже имеет место попытка получить шрифты с еще не инициализированного бровса. PS. как oBrw передается в функцию ? если никак то объявлен ли oBrw к примеру как PUBLIC oBrw перед созданием ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3682
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.11.14 14:58. Заголовок: Haz пишет: это в ка..
Haz пишет: цитата: | это в каком куске кода происходит ??? Похоже имеет место попытка получить шрифты с еще не инициализированного бровса. |
| Точно. Ж.. с ручкой - передача oBrw: между функциями неправильная !
|
|
|
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) ...............
|
|
|
Haz
|
| |
Пост N: 332
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.11.14 18:45. Заголовок: Andrey пишет: Как л..
Andrey пишет: цитата: | Как лучше менять шрифты в TBROWSе |
| через оBrw:ChangeFont( aFont[ 1 ], , 1 ) , т.к. aFont[] может быть кодовым блоком и соответственно шрифт в колонке может меняться от условий. К примеру - обслуженная заявка может отображаться перечеркнутым шрифтом, а черновик - курсивом
|
|
|
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] ) или нет ?
|
|
|
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 В итоге - цель то какая ?
|
|
|
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 ..............
|
|
|
Haz
|
| |
Пост N: 335
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.11.14 21:53. Заголовок: Andrey пишет: Что-т..
Andrey пишет: не обратил внимания у меня aFont из хендлов а твой массив параметров шрифта . тогда НЕ ДОСТАТОЧНО тогда пример richEditEx в помощь ( уже вроде говорили про него в этом контексте месяца три назад ) там как раз показано как использовать _SetFont(), и правильно что туда заглянул
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|