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


Пост 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 
ПрофильЦитата Ответить
Ответов - 289 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




Пост N: 6819
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.09.20 17:27. Заголовок: Строю ТСБ, удаляю(ск..


Строю ТСБ, удаляю(скрываю) колонки, делаю заморозку столбцов:
          :nFreeze     := :nColumn("TEVENT") // заморозить таблицу до этого столбца 
:lLockFreeze := .T. // избегать прорисовки курсора на замороженных столбцах

Курсор на таблице, но нет активного ввода, нужно стрелкой вправо или Enter нажать, тогда появляется активный ввод.
И ещё при движении налево, т.е. где замороженные столбцы - курсор уходит на эти столбцы, т.е. пропадает.
Почему, установил же :lLockFreeze := .T. ?

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




Пост N: 1599
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.09.20 18:23. Заголовок: Andrey пишет: И ещё..


Andrey пишет:

 цитата:
И ещё при движении налево, т.е. где замороженные столбцы - курсор уходит на эти столбцы, т.е. пропадает.
Почему, установил же :lLockFreeze := .T. ?


проверил на последней сборке все работает , ищи у себя ошибку
Andrey пишет:

 цитата:
Курсор на таблице, но нет активного ввода,


ху из активный ввод ?

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




Пост N: 6820
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.09.20 19:03. Заголовок: Haz пишет: ху из ак..


Haz пишет:

 цитата:
ху из активный ввод ?


Вот это, активный курсор для ввода:


При построении ТСБ надо ENTER нажать, только тогда появляется активный ввод.

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




Пост N: 3372
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.20 19:07. Заголовок: Andrey Что бы не бы..


Andrey
Что бы не было разных непоняток, можно делать так (на базе примера Tsb_MoreFields\demo.prg)Скрытый текст

Всегда будут только нужные столбцы в колонках тсб.
Клавиши Ctrl+1,...,Ctrl+8,Ctrl+0 меняют список колонок в просмотре от имени колонки oCol:cName

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




Пост N: 3373
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.20 19:13. Заголовок: Andrey пишет При пос..


Andrey пишет
 цитата:
При построении ТСБ надо ENTER нажать, только тогда появляется активный ввод.


А добавить
oBrw:SetFocus() // можно добавить oBrw:GoPos(1, oBrw:nFreeze+1)
oBrw:DrawSelect()

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




Пост N: 6821
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.09.20 19:37. Заголовок: SergKis пишет: А до..


SergKis пишет:

 цитата:
А добавить
oBrw:SetFocus() // можно добавить oBrw:GoPos(1, oBrw:nFreeze+1)
oBrw:DrawSelect()


Это не спасает, попробовал.

Попробовал убрать скрытие столбцов в таблице,
активный курсор появляется и передвижение на замороженные столбцы прекращается.
Что-то с удалением/скрытием столбцов - ломается алгоритм движения курсора...
Я с этим уже раз 5 сталкиваюсь, думал что-то я сам нахимичил, а это не я...
Удаляю столбцы вот так:
   oBrw:HideColumns( {1,2,3,4,5,12,18..} ,.t.)   // скрыть колонки


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




Пост N: 3374
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.20 20:32. Заголовок: Andrey пишет Я с эти..


Andrey пишет
 цитата:
Я с этим уже раз 5 сталкиваюсь, думал что-то я сам нахимичил, а это не я...
Удаляю столбцы вот так:
oBrw:HideColumns( (1,2,3,4,5,12,18..) ,.t.) // скрыть колонки


Думаю, что это ТВОЯ химия, т.к. колонок :lVisible := .F. не должно быть до :nFreeze, т.е. скрываемые колонки должны находится ПОСЛЕ :nFreeze, т.к. до :nFreeze методы :nAtCol() и :nAtActual считают все колонки безусловно видимыми

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




Пост N: 6822
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.09.20 22:47. Заголовок: SergKis пишет: Дума..


SergKis пишет:

 цитата:
Думаю, что это ТВОЯ химия, т.к. колонок :lVisible := .F. не должно быть до :nFreeze


Есть метод скрытия колонок, я скрыл колонки которые мне нужны.
Показываю ТСБ, без заморозки колонок - нет активного курсора.
       ............. 
myDelColumnTsb( oBrw, aTsbColumn ) // убрать колонки из таблицы

//:nFreeze := :nColumn("TEVENT") // заморозить таблицу до этого столбца
//:lLockFreeze := .T. // избегать прорисовки курсора на замороженных столбцах

:GoPos(1, :nColumn("TEVENT") ) - без этого не пашет
//:DrawSelect()
............
END TBROWSE ON END {|ob| ob:SetNoHoles(), ob:oPhant:nClrHeadBack := ob:Cargo:nClr4, ;
ob:oPhant:nClrFootBack := ob:Cargo:nClr10,;
ob:Refresh() }

Т.е. убрал колонки - нужно позаботиться самому, чтобы показать активный курсор ...
Блин, а я считал что ТСБ сам поставит на первую видимую колонку.

Получается нет проверки, когда двигаем курсор - колонка заморожена или нет.
Можно это как то проверить, чтобы курсор не улетал.
Не особо это и критично, но так чтобы знать как это можно делать.

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




Пост N: 6824
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.09.20 12:18. Заголовок: Всем привет ! Есть п..


Всем привет !
Есть построенный ТСБ, в нём суперхидер из одной колонки.
Как узнать - сколько букв поместится в суперхидере ?
Размеры получил, а кол-во букв не могу высчитать.
      nWTsb  := oBrw:GetAllColsWidth()           // ширина всех колонок видимых 
hFont := oBrw:aSuperHead[ 1, 7 ] // 4-special header font
If hFont != Nil
aFont := GetFontParam(hFont)
cFontName := aFont[1]
nFontSize := aFont[2]
lFontBold := aFont[3]
ENDIF

? "hFont=", hFont, HB_ValToExp(aFont)

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




Пост N: 3381
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.09.20 13:57. Заголовок: Andrey Смотри свой ..


Andrey
Смотри свой же пример ButtonEx_DynamicMenu

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




Пост N: 6825
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.09.20 15:14. Заголовок: SergKis пишет: Смот..


SergKis пишет:

 цитата:
Смотри свой же пример ButtonEx_DynamicMenu


Там другое.
Возвращает максимальный размер фонта от кол-ва символов в строке.
Мне нужно наоборот, от ширины шрифта и WIDTH объекта - получить
максимальное кол-во символов которые влезут в WIDTH объекта.

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




Пост N: 3384
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.09.20 15:21. Заголовок: Andrey пишет Там дру..


Andrey пишет
 цитата:
Там другое.
Возвращает максимальный размер фонта от кол-ва символов в строке.
Мне нужно наоборот, от ширины шрифта и WIDTH объекта - получить
максимальное кол-во символов которые влезут в WIDTH объекта.


И что там другого ?
Перебираются размеры фонта для строки, а наоборот (перебрать буквы для одного фонта) ты принять не можешь, религия не позволяет или арифметика другая

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




Пост N: 6826
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.09.20 17:00. Заголовок: SergKis пишет: рели..


SergKis пишет:

 цитата:
религия не позволяет или арифметика другая


Да вчера делал, не получилось.
Сегодня по другому сделал, вроде работает...
Вот так сделал -
Скрытый текст


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




Пост N: 3385
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.09.20 21:20. Заголовок: Andrey пишет // Функ..


Andrey пишет
 цитата:
// Функция вернет максимальное количество букв "Н"


Почему именно "H". Используют в практике 3-и буквы, если от букв прыгать, а не от конкретного текста.
"A" - min длина
"B" - средняя длина
"W" - max длина
Если у тебя регистрирован фонт SET FONT Normal ..., то ты можешь получать длину от буквы "B" автоматом
nWidth := GetFontWidth("Normal", 50 /* длина в символах */)
Такой алгоритм применен в Tsb_DemoMdi примере для "M" полей и длинных "C" полей. Колонка шириной oCol:ToWidth(50 /*символов*/) и EditBox встраивает текст с переносами в эти 50 символов.
Если в выводе преобладают маленькие буквы, то можно еще уменьшить nWidth *= 0.8 (или даже 0.7) или увеличить вывод кол-ва символов в полученный nWidth ~ 15-20%? т.е. 50+10(15) символов.

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




Пост N: 6828
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.20 12:24. Заголовок: SergKis пишет: Поче..


SergKis пишет:

 цитата:
Почему именно "H"


Да не подумал сразу.
Текст состоит у меня сейчас как правило только из нескольких заглавных букв.
Поставил "х" и сразу стал текст в размер суперхидера попадать.
Фонты уже зарегистрированны, спасибо за подсказку.

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




Пост N: 244
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.03.21 16:41. Заголовок: Здравствуйте! Давно ..


Здравствуйте! Давно вам не писал - тут у меня личные проблемы были.

И теперь вот вопрос: как открыть CSV-файл с заголовками в TsBrowse. Заголовки полей CSV можно брать в качестве заголовков TsBrowse.
Есть поля текстовые, дата, время и одно длинное MEMO. Это экспортный файл из Google Calendar.

Заранее благодарен

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




Пост N: 3587
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.03.21 17:05. Заголовок: Dr. Oldwarez пишет Е..


Dr. Oldwarez пишет
 цитата:
Есть поля текстовые, дата, время и одно длинное MEMO


Пару записей показать бы.
Можно dbf создавать а append from ... DELIMITED ..., но предложу через массив
 
aBuf := hb_ATokens( hb_memoread(cFie), CRLF)
aDim := {}
aHdr := {}
FOR nI := 1 TO Len(aBuf)
IF nI == 1 // header
// как заданы заголовки в "..." или без них ?
FOR EACH t IN hb_AToekns(aBuf[ nI ]) ; AAdd(aHdr, t) // без
NEXT
ELSE
AAdd(aDim, &( "{"+aBuf[ nI ]+"}" ))
ENDIF
NEXT
Далее подать aHdr и aDim в tsb, как в примерах Tsb_array_2, например


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




Пост N: 245
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.03.21 17:18. Заголовок: SergKis пишет: Пару..


SergKis пишет:

 цитата:
Пару записей показать бы.


Пожалуйста!
Subject,Start Date,Start Time,End Date,End Time,Location,Description 
OLDWAREZ :Покупка компьютера,04/01/2021,10:00 AM,02/01/2021,12:30 PM,Вещевой рынок,Всего за 1500 руб.

Это стандартный экспорт календаря Гугл.

Subject
Start Date
Start Time
End Date
End Time
Location
Description
Это заголовки

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




Пост N: 3588
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.03.21 18:02. Заголовок: Dr. Oldwarez Не сов..


Dr. Oldwarez
Не совсем стандартный csv по мне, но
1.принимаем в массив строковый все
2. опр. типы колонок
3. переводим данные строковые колонок по типам или показываем в тсб строковый вариант
 
aBuf := hb_ATokens( hb_memoread(cFie), CRLF)
aDim := {}
aTyp := {}
aLen := {}
aHdr := {}
FOR nI := 1 TO Len(aBuf)
IF nI == 1 // header
FOR EACH t IN hb_AToekns(aBuf[ nI ], ",") ; AAdd(aHdr, t)
NEXT
ELSE
aTmp := {}
FOR EACH t IN hb_AToekns(aBuf[ nI ], ",")
cTyp := "C"
nLen := 0
IF "/" $ t
cTyp := "D"
t := CtoD(t)
nLen := 8
ELSEIF ":" $ t .and. " AM" $ t
cMilTime := ft_Civ2Mil( t ) // " 5:40 am" 0540
t := left(cMilTime, 2)+":"+right(cMilTime, 2)+":00"
nLen := len(t)
ELSEIF ":" $ t .and. " PM" $ t
cMilTime := ft_Civ2Mil( t ) // " 5:40 pm" 1740
t := left(cMilTime, 2)+":"+right(cMilTime, 2)+":00"
nLen := len(t)
ELSE
nLen := len(t)
ENDIF
AAdd(aTmp, t)
AAdd(aTyp, cTip)
AAdd(aLen, nLen)
NEXT
ENDIF
NEXT

можно подавать в тсб массивы или создавть dbf и в тсб (подключать hbnf.lib )
на выбор

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




Пост N: 3589
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.03.21 18:11. Заголовок: PS пропустил ..


PS
пропустил
 
AAdd(aLen, nLen)
NEXT
AAdd(aDim, aTmp)
ENDIF

и везде hb_ATokens(...) конечно

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

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