On-line: гостей 1. Всего: 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 [только новые]


Haz
администратор




Пост N: 152
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.03.14 19:49. Заголовок: ZAlex пишет: А если..


ZAlex пишет:

 цитата:
А если скомпилировать с ключом -p



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




Пост N: 3276
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.03.14 20:42. Заголовок: ZAlex пишет: А если..


ZAlex пишет:

 цитата:
А если скомпилировать с ключом -p и затем посмотреть, как препроцессор это делает?
Не поможет?


Блин, забыл ! Спасибо !

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


Пост N: 430
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 03.05.14 14:04. Заголовок: При наличии индексов..


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

 цитата:

Brw_1:SetIndexCols( 2,1 )
Brw_1:aColumns[ 1 ]:cOrder := "CODE"
Brw_1:aColumns[ 2 ]:cOrder := "Name"


А как с помощью клавиатуры то же сделать ?


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




Пост N: 3346
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.05.14 13:42. Заголовок: Vlad04 пишет: А как..


Vlad04 пишет:

 цитата:
А как с помощью клавиатуры то же сделать ?


Вот еще пример использования TBROWSE. В нем есть функция обработки всех клавиш MyKeyAction().
Вот можете туда и вставить обработку своих клавиш.
http://files.mail.ru/50BF541945984119BE7B20C8CBFB588A

Может еще можно это сделать с помощью команд:
ON KEY F? ACTION MyFunction()

Это то что я знаю пока. Может и не прав...
Нужно ждать ответ от нашего ГУРУ...


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


Пост N: 431
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 04.05.14 19:49. Заголовок: ок В примере есть от..


ок
В примере есть ответ на поставленный вопрос

 цитата:

oBrw_1:aColumns[2]:bHLClicked:={||ChoiHeader(3)} //переключение индекса по шапке / switching index on the table header



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




Пост N: 3349
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.05.14 15:40. Заголовок: Vlad04 пишет: В при..


Vlad04 пишет:

 цитата:
В примере есть ответ на поставленный вопрос


Как сам пример ? Вам понравился ? Может чего не хватает ?
Делал специально в качестве обучающего примера.

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


Пост N: 437
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.05.14 07:14. Заголовок: Andrey Как сам прим..


Andrey

 цитата:
Как сам пример ? Вам понравился ? Может чего не хватает ?


Пример понравился (цветовой оформление, работа с директориями), но имеет свою специфику.
Вопросы по TBROWS остались.
1) Как удалить запись ( не нашел в примерах или плохо искал)
2) Такая рабочая ситуация : - Перед открытием в таблице ищу нужную запись (таблица может быть индексирована или нет. Естественно поиск по индексу или Locate)
- после открытия курсор должен быть на найденной записи.

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




Пост N: 242
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.05.14 09:50. Заголовок: Vlad04 пишет: 1) Ка..


Vlad04 пишет:

 цитата:
1) Как удалить запись


(oBrw:cAlias)->(DbDelete())
oBrw:Refresh(.T.)

Vlad04 пишет:

 цитата:
поиск по индексу или Locate


Seek:
oBrw:SetFocus()
(oBrw:cAlias)->(oBrw:ExpSeek( cExp, FALSE ))

Locate:
oBrw:SetFocus()
oBrw:ExpLocate( cExp )

Vlad04 пишет:

 цитата:
курсор должен


добавить что то типа
oBrw:Upstable()
oBrw:ResetVScroll(.T.)
oBrw:Refresh(.T., .T.)





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


Пост N: 438
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.05.14 10:22. Заголовок: ок С удалением все н..


ок
С удалением все нормально.
С поиском

 цитата:

Seek:
oBrw:SetFocus()
(oBrw:cAlias)->(oBrw:ExpSeek( cExp, FALSE ))


А найти нужную запись до открытия TBROWS , а потом спозиционировать TBROWS никак ?

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




Пост N: 4021
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.14 11:04. Заголовок: Vlad04 пишет: А най..


Vlad04 пишет:

 цитата:
А найти нужную запись до открытия TBROWS , а потом спозиционировать TBROWS никак ?


А что при таком подходе курсор становится не туда ? Нашел , открыл бровс..........

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




Пост N: 243
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.05.14 11:20. Заголовок: Vlad04 пишет: найти..


Vlad04 пишет:

 цитата:
найти нужную запись до открытия TBROWS , а потом


можно так попробовать

(oBrw:cAlias)->(DbGoto(nRec))
oBrw:Upstable()
oBrw:Refresh(.T., .T.)

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


Пост N: 439
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.05.14 11:46. Заголовок: А что при таком подх..



 цитата:
А что при таком подходе курсор становится не туда ?



Не становится куда надо !. Есть у TBROWS переменная VALUE , если ей присваивать полученное Recno() после поиска , куда-то курсор
перемещается при открытии , но не нату запись, которая найдена.
Если VALUE не использовать , то на первую запись.

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


Пост N: 440
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.05.14 11:51. Заголовок: Haz ОК И поиск полу..


Haz
ОК
И поиск получился

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



Пост N: 43
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 21.05.14 15:28. Заголовок: B Tsbrowse есть эффе..


B Tsbrowse есть эффект нижней строки, которая прорисовывается при создании Tsbrowse, но не участвует в скроллинге вправо-влево и вверх-вниз, то есть просто висит на экране замороженная.
Это видно на примерах из дистрибутива:

SAMPLES\Advanced\TsBrowse

Меню TSBrowse\More To One и TSBrowse\Excel Connectivity

Для фиксированного размера Tsbrowse наверно можно подобрать размеры, чтобы эффекта не было. Но если делать настраиваемые размеры, то неприятный эффект появляется во всей красе.
В последнем примере (TSBrowse\Excel Connectivity) , если изменить мышкой вертикальный размер так, чтобы последняя строка была прорисована не полностью, то при движении курсора вверх она зависает и не перерисовывается. Видимо, при создании таблицы и перерисовке в этом случае считается разное количество строк. При создании таблицы строка, не умещающаяся полностью на экране, не должна была прорисовываться.


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


Пост N: 441
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 22.05.14 12:05. Заголовок: По примеру 1) &..



По примеру
1)

 цитата:
&cBrw:bKeyDown := { | nKey | MyKeyAction(nKey,cBrw, cParent, 0), lOk := nKey != VK_ESCAPE }



Независимо от раскладки клавиатуры всегда возвращает англиЦкие. Так должно быть ?

По TSBrows
2) При доступности редактирования ячейки,
вход в ячейку по нажатию Enter или двойной клик.
А можно клавиши в данном случае переназначить ? К примеру, редактировать по F4.

3) В консоле, когда не надо было менять значения непосредственно в Бровзе я иногда выводил данные так
FAM+'|'+iM+'|'+oT+'|'
или так if(Sex=1;'Муж';'Жен')
Т.е. делал составную запись или подстановку

Что-нибудь подобное можно в TSBrows

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




Пост N: 244
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.05.14 21:20. Заголовок: Vlad04 пишет: 3) В ..


Vlad04 пишет:

 цитата:
3) В консоле, когда не надо было менять значения непосредственно в Бровзе я иногда выводил данные так
FAM+'|'+iM+'|'+oT+'|'



все тоже самое - определяешь блок выборки bData := {|| ...}

Vlad04 пишет:

 цитата:
всегда возвращает англиЦкие. Так должно быть ?


так и должно . В принципе можно добраться до языка клавиатуры и по собственной таблице соответствий - руский/англ и верхний /нижний - вернуть то что надо. Не проверял , не делал сам т.к. не нужно было , но уверен на 10000% все достаточно реализуемо

Vlad04 пишет:

 цитата:
К примеру, редактировать по F4.



сейчас не готов ответить , нужно глянуть исходники скорее всего на F4 тоже можно повесить блок DblClick

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




Пост N: 3389
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.14 22:24. Заголовок: Vlad04 пишет: Незав..


Vlad04 пишет:

 цитата:
Независимо от раскладки клавиатуры всегда возвращает англиЦкие. Так должно быть ?


Делай свою обработку в функции MyLatRus()
Но может можно и по другому, я пока не знаю (разбираюсь с этим).
Надо спросить других. Не уж то нет стандарта обработки клавиш для TBROWSE ?

Vlad04 пишет:

 цитата:
По TSBrows
2) При доступности редактирования ячейки,
вход в ячейку по нажатию Enter или двойной клик.
А можно клавиши в данном случае переназначить ? К примеру, редактировать по F4.



Я выше уже писал: "В нем есть функция обработки всех клавиш MyKeyAction().
Вот можете туда и вставить обработку своих клавиш. "

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




Пост N: 3391
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.05.14 23:08. Заголовок: a_sidorov пишет: B ..


a_sidorov пишет:

 цитата:
B Tsbrowse есть эффект нижней строки, которая прорисовывается при создании Tsbrowse, но не участвует в скроллинге вправо-влево и вверх-вниз, то есть просто висит на экране замороженная.
Это видно на примерах из дистрибутива:

SAMPLES\Advanced\TsBrowse

Меню TSBrowse\More To One и TSBrowse\Excel Connectivity

Для фиксированного размера Tsbrowse наверно можно подобрать размеры, чтобы эффекта не было. Но если делать настраиваемые размеры, то неприятный эффект появляется во всей красе.
В последнем примере (TSBrowse\Excel Connectivity) , если изменить мышкой вертикальный размер так, чтобы последняя строка была прорисована не полностью, то при движении курсора вверх она зависает и не перерисовывается. Видимо, при создании таблицы и перерисовке в этом случае считается разное количество строк. При создании таблицы строка, не умещающаяся полностью на экране, не должна была прорисовываться.



Да, да, есть такая фигня... Как с этим бороться ?

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




Пост N: 593
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.05.14 14:49. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как с этим бороться ?


Есть вариант добавить функцию CorrectionFirstLast(oBrw) при обработке события ON CHANGE (см. пример в папке samples\Advanced\TSB_lastrow).
Но при использовании этого пути возможны побочные эффекты
Поэтому надо проверять это решение на Вашем конкретном приложении


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



Пост N: 44
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 26.05.14 15:41. Заголовок: Спасибо! Вроде работ..


Спасибо!
Вроде работает!!! Поставил CorrectionFirstLast("oBrw_1) в ON CHANGE и в функцию перерисовки при изменения размера:

FUNCTION ResizeBrowse()
oBrw_1:Move( oBrw_1:nLeft ,oBrw_1:nTop , Form_0.Width-19, Form_0.Height-93, .t.)
oBrw_1:Paint()
CorrectionFirstLast("oBrw_1")
RETURN Nil

Не очень нравится появившееся мелькание – перерисовка при изменении размера окна. Надеюсь, что со временем найдется решение с меньшим мельканием. Может еще что-то можно придумать? Если убрать Paint(), то иногда появляются глюки, обычно после достижения конца файла.


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