On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 [только новые]


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




Пост N: 4584
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.11.15 17:32. Заголовок: Понял... Спасибо ! ..


Понял... Спасибо !

Кстати насчёт Tsb_config.
Можно исправить ( класс oBrw:Excel2(...) h_tbrowse.prg) вывод чисел ?

Если использовать для вывода в таблице формат "999" или "@Z 999", то в Экселе колонка с числами - пустая.

В Tsb_config пришлось ставить:
IF aPole[nI,6] <> "N" // не использовать шаблон для числовых полей, т.к.
// при печати в Excel поле будет пустое !!!
oBrw:aColumns[nJ]:cPicture := aPole[nI,4] // шаблон колонки
ENDIF


Сейчас такая же беда в рабочих программах....

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




Пост N: 4590
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.15 13:38. Заголовок: Ещё вопрос созрел по..


Ещё вопрос созрел по Tsbrowse.
Как можно запретить юзеру смену колонок местами, но оставить возможность юзеру изменить размеры колонок ?
Нашёл флаги:
oBrw:lNoMoveCols := TRUE
oBrw:lMChange := .F.

Но они запрещают и изменение размеров колонок...


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




Пост N: 705
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.12.15 14:15. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как можно запретить юзеру смену колонок местами


Простого способа похоже нет
-или менять исходник , вводя и контролируя новые флаги
-или на ON DRAW повесить процедуру, которая будет проверять нужный порядок колонок и приводить его в норму если юзер там чего поменял

Посмотрел исходник и нашел один костыль ...
Если у колонки есть суперхидер то размеры менять можно , а двигать нельзя.
Сделай один суперхидер на все колонки с высотой 0 и будет тебе счастье ( правда супрхид будет не нулевой высоты )

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




Пост N: 4591
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.15 15:27. Заголовок: Haz пишет: Если у к..


Haz пишет:

 цитата:
Если у колонки есть суперхидер


У меня есть он в программе.

Haz пишет:

 цитата:
нашел один костыль


Какой он и как его использовать ?

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




Пост N: 706
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.12.15 15:48. Заголовок: Andrey пишет: Какой..


Andrey пишет:

 цитата:
Какой он и как его использовать ?



читай по слогам

 цитата:
Если у колонки есть суперхидер то размеры менять можно , а двигать нельзя.
Сделай один суперхидер на все колонки с высотой 0 и будет тебе счастье



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




Пост N: 4592
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.15 16:10. Заголовок: Суперхидер в таблице..


Суперхидер в таблице есть с 1 по 13 колонки высотой 38.
Колонки местами меняются.
Ставлю запрет на обмен колонками oBrw:lNoMoveCols := TRUE или oBrw:lMChange := .F.
Колонки местами не меняются и нельзя уже изменить размер колонок !


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




Пост N: 707
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.12.15 16:20. Заголовок: Andrey пишет: Супер..


Andrey пишет:

 цитата:
Суперхидер в таблице есть.



Убери его , и добавь только такой ( для колонки 1 )
oBrw:AddSuperHead( 1 , 1 , '' )
После этого все колонки перестанут меняться местами
PS. Говорю же , это "костыль"
На счет всех, я не прав, не проверял а на одну работает!

Советую лучше сюда смотреть
-или менять исходник , вводя и контролируя новые флаги
-или на ON DRAW повесить процедуру, которая будет проверять нужный порядок колонок и приводить его в норму если юзер там чего поменял

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




Пост N: 4593
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.15 17:21. Заголовок: Понял ! Спасибо БОЛЬ..


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

Haz пишет:

 цитата:
Советую лучше сюда смотреть
-или менять исходник , вводя и контролируя новые флаги
-или на ON DRAW повесить процедуру, которая будет проверять нужный порядок колонок и приводить его в норму если юзер там чего поменял


Боюсь пока не осилить данное предложение. Опыта пока маловато...

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




Пост N: 708
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 04.12.15 11:11. Заголовок: Andrey пишет: Боюсь..


Andrey пишет:

 цитата:
Боюсь пока не осилить данное предложение. Опыта пока маловато.


какой тут опыт нужен ?
Используется имя колонки, если оно не присвоено - работать не будет
 
// Сохранения порядка колонок по их именам
Func SaveColPos( oBrw )
Local aSave := {}
aEval( oBrw:aColumns, { |oCol| AADD( aSave, oCol:cName ) } )
Return aSave

// Восстановление порядка колонок по их именам
Func RestColPos( oBrw, aSave )
aEval( aSave, { |cName| oBrw:MoveColumn( oBrw:nColumn(cName), Ascan( aSave, cName)) } )
Return nil


При первой прорисовке бровса запоминаешь порядок в массив
Проверку на соответствие текущего порядка и сохраненного в массиве уверен сделаешь.
И если порядок нарушен по ON DRAW восстанавливаешь как oBrw:bOnDraw := {|| IF( ЕслиНарушен(), RestColPos( oBrw, aSave), NIL ) }
Пользователь после этого может таскать колонки куда хочет, но при этом быстро устает т.к. они сразу возвращаются на место.
PS. НЕ ПРОВЕРЯЛ , просто описал идею. Должна работать
PPS проверку нужно в том же он драу поводить )))

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




Пост N: 4600
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.12.15 14:57. Заголовок: Всем привет. Как зам..


Всем привет.
Как заменить ОДНУ картинку в уже созданной таблице ?
Допустим есть
LOCAL ahBmpPlus := { LoadImage( "bFolder48.bmp" ) }
LOCAL ahBmpMinus:= { LoadImage( "bFolder48x2.bmp" ) }
.....
// создать первую колонку с картинкой
ADD COLUMN TO oBrwP HEADER "" ;
DATA { || ahBmpPlus } ;
SIZE 50 BITMAP ;
.....
EDITABLE
oBrwP:aColumns[1]:bPrevEdit := {|| MenuPlusMinus(ahBmpPlus,ahBmpMinus), FALSE }
...............

Function MenuPlusMinus(ahBmpPlus,ahBmpMinus)
.....
// вот здесь заменить одну картинку на другую. Как написать ?





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




Пост N: 4605
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.15 14:01. Заголовок: Всем привет ! Пытаюс..


Всем привет !
Пытаюсь для отладки добавить в свой проект h_tbrowse.prg
Не собирается проект:
Error: Unresolved external '_HB_FUN_GETSYSMETRICS' referenced from W:\HB_PROJECT\


Откуда взять эту функцию GETSYSMETRICS ?

Раньше собиралось всё нормально.

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




Пост N: 5404
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.12.15 15:21. Заголовок: Andrey пишет: Откуд..


Andrey пишет:

 цитата:
Откуда взять эту функцию GETSYSMETRICS ?


в TSBROWSE.CH он заявлен

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




Пост N: 4606
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.15 15:35. Заголовок: Dima пишет: в TSBRO..


Dima пишет:

 цитата:
в TSBROWSE.CH он заявлен


Положил этот файл в свой проект. Всё равно пишет, нет такой функции...

P.S. Удалил все obj - проект собрался !

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




Пост N: 4607
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.15 15:55. Заголовок: Отлавливаю ошибку дл..


Отлавливаю ошибку для SetArrayTo().
Вот такая ошибка:
Error BASE/1122 Неверный аргумент: TRANSFORM
Called from TRANSFORM(0)
Called from TSBROWSE:DRAWLINE(2925)
Called from TSBROWSE:PAINT(8713)
Called from TSBROWSE:DISPLAY(2306)
Called from _ENDTBROWSE(367)
Called from CREATEBROWSEUSE(430)


Лезу в исходник и хочу там установить просмотр.
Как это сделать, чтобы ручками не считать какую строку ProcName(5) смотреть ?
IF UPPER(ProcName( 5 )) == "CREATEBROWSEUSE"
MsgDebug(uData, VALTYPE(uData), cPicture)
ENDIF
uData := If( uData == NIL, "", Transform( uData, cPicture ) )




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




Пост N: 4608
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.15 16:21. Заголовок: Странно, отладка раб..


Странно, отладка работает ОДНУ строку из массива, а потом прога сваливается:
Called from TRANSFORM(0)
Called from TSBROWSE:DRAWLINE(2928)
Called from TSBROWSE:PAINT(8701)
Called from TSBROWSE:DISPLAY(2306)
Called from _ENDTBROWSE(367)
Called from CREATEBROWSEUSE(430)
Called from FORM_USEDBF(220)

.....
Else
IF UPPER(ProcName( 5 )) == "CREATEBROWSEUSE"
MsgDebug(uData, VALTYPE(uData), cPicture)
ENDIF
uData := If( uData == NIL, "", Transform( uData, cPicture ) ) // строка 2928
EndIf

Как поймать ошибку ?

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




Пост N: 5405
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.12.15 16:53. Заголовок: Andrey Сунь массив ..


Andrey
Сунь массив в MsgDebug и позырь что в нем живет.

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




Пост N: 4609
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.15 17:01. Заголовок: Dima пишет: Сунь ма..


Dima пишет:

 цитата:
Сунь массив в MsgDebug и позырь что в нем живет.



Позырил...
До этого смотрел, не увидел.
Один элемент вместо строки - массив.... И как такие ошибки в будущем отлавливать ?
Может проверку какую сделать в самом исходнике ?
Function SetArrayTo( ControlName, ParentForm, Arr, uFontHF, aHead, aSizes, uFooter, aPicture, aAlign, aName )
Local ix, oBrw
ix := GetControlIndex (ControlName,ParentForm)
oBrw:= _HMG_aControlIds [ix]
oBrw:SetArrayTo(Arr, uFontHF, aHead, aSizes, uFooter, aPicture, aAlign, aName)
Return oBrw


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




Пост N: 5406
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.12.15 17:03. Заголовок: Andrey пишет: И как..


Andrey пишет:

 цитата:
И как такие ошибки в будущем отлавливать ?


Чрезмерно не косячить при написании

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




Пост N: 4668
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.01.16 12:18. Заголовок: Привет всем... Делаю..


Привет всем...
Делаю новую таблицу на Tsbrowse.
Ширину таблицы меняю в зависимости от окна, как Tsb_config.
Скрытый текст

При изменения размера окна мышкой, какие то артефакты вылазят:


Как исправить ?

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




Пост N: 4669
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.01.16 15:51. Заголовок: Добился такого же эф..


Добился такого же эффекта (расползания подвала таблицы) в примере MiniGUI\SAMPLES\Advanced\Tsb_config
Разница небольшая:
1) Окно WINDOWTYPE STANDARD TOPMOST ;

При первом запуске "расползание подвала" нет. Если мышкой перейти в ячейки, а потом попробовать изменить размер экрана, то начинается "расползание подвала" :


Вот исправленный проект с демонстрацией - https://cloud.mail.ru/public/FBzx/BzqAUUxZz
Вопрос остается таким же: как исправить (убрать расползание подвала таблицы ) ?

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