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


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


moderator




Пост N: 751
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.05.15 12:43. Заголовок: SergKis пишет: Рабо..


SergKis пишет:

 цитата:
Работает:


Все хорошо, но я инвертировал в двух местах логику обработки READONLY, поскольку по определению

 цитата:
readonly := ! eval(uWhen)


Добавил такое описание в текущий changelog:

 цитата:
 * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:  
- Fixed: EDITABLE clause at a simple TBROWSE definition is respected now.
- Updated: Added implementation of READONLY and VALID clauses similar to
a standard BROWSE control.
Contributed by SergKis.
(see proc Brw_5() at demo.prg in folder \samples\Advanced\TSBrowse)



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




Пост N: 4209
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.05.15 21:58. Заголовок: Сделал простой тесто..


Сделал простой тестовый пример на TBROWSE из нескольких столбцов.
Делаю так:
oBrw9:lCellBrw := .F. // маркер на всю таблицу

Как назначить ОДНУ функцию по нажатию Enter и мышки ?
Маркер же большой, не известно на каком столбце стоишь..
Все остальные клавиши нужно игнорировать.

Я знаю что нужно вешать обработчик, типа:
oBrw9:bKeyDown := { | nKey | MyKeyAction(nKey,oBrw9, ThisWindow.Name, 0), lOk := nKey != VK_ESCAPE }
oBrw9:bLDblClick:= { || MyAction(oBrw9, ThisWindow.Name, 0) } // Двойной клик мышки на МАРКЕРЕ

А по другому, попроще нельзя ?


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




Пост N: 561
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.05.15 12:35. Заголовок: Andrey пишет: Марке..


Andrey пишет:

 цитата:
Маркер же большой, не известно на каком столбце стоишь..


есть же oBrw9:nCell в нем и стоишь .....

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




Пост N: 4212
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.05.15 19:23. Заголовок: Haz пишет: есть же ..


Haz пишет:

 цитата:
есть же oBrw9:nCell в нем и стоишь .....


Где прописать обработку ENTER ?

Если на каждом столбце делаешь
ADD COLUMN ....
......
EDITABLE

то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки !
Получается только просмотр таблицы. Что нужно написать для редактирования по всему маркеру ?

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




Пост N: 642
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.05.15 19:36. Заголовок: Andrey пишет: Что ну..


Andrey пишет:
 цитата:
Что нужно написать для редактирования по всему маркеру ?


Т.е. по нескольким колонкам, входящих в маркер ?
Не пробовал, но думаю надо включить режим Cell и с нужной колонки нажать мышу для редактирования и ...
после последнего редактирования Cell выклюить

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




Пост N: 565
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.05.15 12:10. Заголовок: SergKis пишет: то Н..


SergKis пишет:

 цитата:
то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки !


по даблклике мышки работает если обьявить при инициализации бровса

DEFINE TBROWSE ...
...
ON DBLCLICK DblClickProcedurе()
...
END TBROWS

по ENTER если изменить обработку :KeyDown()
я просто добавляю в исходник метода :KeyDown() строки перед Otherwise
Case !::lCellbrw .And. (nKey == 13 .Or. nKey == 32 )
If ::bLDblClick != Nil
Eval( ::bLDblClick )
EndIf
и получаю вызов процедуры даблклика и по ENTER и по SPACE


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




Пост N: 643
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.05.15 12:26. Заголовок: Haz пишет:SergKis пи..


Haz пишет:
 цитата:
SergKis пишет:
цитата:
то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки !


это не я пишу, а Andrey.

Как я понял, он имеет TsBrowse c lCell := .F. (маркер на всю строку) и при нажатии Enter или Click хочет включать корректировку как lCell := .T. с какой то определенной колонки, после всех коректировок опять lCell := .F. (маркер на всю строку) и конечно с обработкой Dn,Up,... и кликом мыши за пределами окна коректировки.

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




Пост N: 566
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.05.15 12:52. Заголовок: SergKis пишет: это ..


SergKis пишет:

 цитата:
это не я пишу, а Andrey.



Опять цитату не проверил , извиняюсь - конечно это к Андрею

SergKis пишет:

 цитата:
хочет включать корректировку как lCell := .T. с какой то определенной колонки


возможно и так , я подумал он хочет просто подвесить вызов функции на даблклик при длинном маркере. По любому при желании и то и то выполнимо.
Подсвечивать текущую колонку можно меняя цвет фона в колонке :nCell по bOnDraw






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




Пост N: 4213
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.05.15 14:20. Заголовок: Haz пишет: возможно..


Haz пишет:

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


Да, я это имел ввиду.
Haz пишет:

 цитата:
ON DBLCLICK DblClickProcedurе()


Понял, СПАСИБО !

SergKis пишет:

 цитата:
Как я понял, он имеет TsBrowse c lCell := .F. (маркер на всю строку) и при нажатии Enter или Click хочет включать корректировку как lCell := .T.


Нет ! Просто корректировку ТОЛЬКО ОДНОЙ функции ! Допустим MyEditEnter() и всё.
Haz пишет:

 цитата:
по ENTER если изменить обработку :KeyDown()


Кроме как изменения :KeyDown() (это я делал, я помню) можно как то назначить обработку по ENTER или нельзя.
Это как то в ON CHANGE нужно прописывать ?

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




Пост N: 644
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.05.15 14:39. Заголовок: Andrey пишет:Нет ! П..


Andrey пишет:
 цитата:
Нет ! Просто корректировку ТОЛЬКО ОДНОЙ функции ! Допустим MyEditEnter() и всё.


раньше:

 цитата:
Сделал простой тестовый пример на TBROWSE из нескольких столбцов.
Делаю так:
oBrw9:lCellBrw := .F. // маркер на всю таблицу

Как назначить ОДНУ функцию по нажатию Enter и мышки ?
Маркер же большой, не известно на каком столбце стоишь..



 цитата:
Если на каждом столбце делаешь
ADD COLUMN ....
......
EDITABLE

то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки !
Получается только просмотр таблицы. Что нужно написать для редактирования по всему маркеру ?


Как написано, так и понято

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




Пост N: 4214
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.05.15 15:05. Заголовок: SergKis пишет: Как ..


SergKis пишет:

 цитата:
Как написано, так и понято


Ну извиняюсь, за своё косноязычие...

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




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


Andrey пишет:

 цитата:
Кроме как изменения :KeyDown(

это самый простой способ. а on change отрабатывает когда меняется текущая строка

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




Пост N: 4215
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.05.15 15:42. Заголовок: Haz пишет: это самы..


Haz пишет:

 цитата:
это самый простой способ. а on change отрабатывает когда меняется текущая строка


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


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




Пост N: 4219
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.15 10:28. Заголовок: Всем привет ! Как о..


Всем привет !
Как объединить в одном столбце 3 разных поля базы ?


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




Пост N: 568
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.06.15 12:37. Заголовок: Andrey пишет: Как о..


Andrey пишет:

 цитата:
Как объединить в одном столбце 3 разных поля базы ?



:bData
http://clipper.borda.ru/?1-1-0-00000427-000-10001-0-1432482733
твой пост N 4138

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




Пост N: 4223
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.15 13:25. Заголовок: Haz пишет: твой пос..


Haz пишет:

 цитата:
твой пост N 4138


Это через кодовый блок. Я это помню.
bBlock := "{ || MEMOLINE("+ALIAS()+"->"+cField+","+HB_NTOS(LEN(cStr))+",1) }"
oBrw:aColumns[nJ]:bData := &( bBlock )

А как написать для такой конструкции, которая в примерах (хотя потом там тоже будет кодовый блок):
// создать 2-ю колонку
ADD COLUMN TO oBrw3 HEADER "Номер" + CRLF + "заказа" ;
DATA FieldWBlock( "NNZA", Select() ) ;
PICTURE "@Z 9999/99" ;
SIZE 100 ;
ALIGN DT_CENTER,DT_CENTER,DT_RIGHT ; // cells, header, footer
COLORS CLR_BLACK, MyRGB(aBack2)

// создать 3-ю колонку
ADD COLUMN TO oBrw3 HEADER "Дата" + CRLF + "заказа" ;
DATA FieldWBlock( "DATEZA", Select() ) ;
PICTURE "99.99.99" ;
SIZE 90 ;
ALIGN DT_CENTER,DT_CENTER,DT_RIGHT ; // cells, header, footer
COLORS CLR_BLACK, MyRGB(aBack2)

// создать 4-ю колонку
ADD COLUMN TO oBrw3 HEADER "Время" + CRLF + "заказа" ;
DATA FieldWBlock( "TIMEZA", Select() ) ;
PICTURE "99:99" ;
SIZE 80 ;
ALIGN DT_CENTER,DT_CENTER,DT_RIGHT ; // cells, header, footer
COLORS CLR_BLACK, MyRGB(aBack2)


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




Пост N: 569
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.06.15 13:50. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как написать для такой конструкции


так и писать - через блок кода

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




Пост N: 4224
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.15 17:25. Заголовок: Сделал так: ADD..


Сделал так:
ADD COLUMN TO oBrw3 HEADER "Номер" + CRLF + "Дата" + CRLF + "Время" ;
SIZE 120 ;
ALIGN DT_CENTER,DT_CENTER,DT_RIGHT ; // cells, header, footer
COLORS CLR_BLACK, MyRGB(aBack2) ;
DATA { || TRANSFORM( (Alias())->NNZA, "9999/99" ) + CRLF + ;
DTOC( (Alias())->DATEZA ) + CRLF + ;
TRANSFORM( (Alias())->TIMEZA, "99:99" ) + CRLF } // multi-line feature on cells

Почему то третью строчку не показывает ?
Может еще что-то включить нужно ?

PS. TIMEZA - это числовое поле, 4 знака чч:мм

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




Пост N: 4874
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.06.15 17:34. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему то третью строчку не показывает ?


не влезла видимо , поширше сделай высоту строки.

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




Пост N: 4225
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.06.15 17:45. Заголовок: Dima пишет: не влез..


Dima пишет:

 цитата:
не влезла видимо , поширше сделай высоту строки.


Не знаю как ?
Там только ширину можно делать: SIZE 120
Где в TBROWSE задается высота строк ?

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

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