Автор | Сообщение |
|
| постоянный участник
|
Пост 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:....
|
|
|
Ответов - 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) |
|
|
|
|
|
| постоянный участник
|
Пост 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) } // Двойной клик мышки на МАРКЕРЕ А по другому, попроще нельзя ?
|
|
|
|
| |
Пост N: 561
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.05.15 12:35. Заголовок: Andrey пишет: Марке..
Andrey пишет: цитата: | Маркер же большой, не известно на каком столбце стоишь.. |
| есть же oBrw9:nCell в нем и стоишь .....
|
|
|
|
| постоянный участник
|
Пост N: 4212
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.05.15 19:23. Заголовок: Haz пишет: есть же ..
Haz пишет: цитата: | есть же oBrw9:nCell в нем и стоишь ..... |
| Где прописать обработку ENTER ? Если на каждом столбце делаешь ADD COLUMN .... ...... EDITABLE то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки ! Получается только просмотр таблицы. Что нужно написать для редактирования по всему маркеру ?
|
|
|
|
| постоянный участник
|
Пост N: 642
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.05.15 19:36. Заголовок: Andrey пишет: Что ну..
Andrey пишет: цитата: | Что нужно написать для редактирования по всему маркеру ? |
| Т.е. по нескольким колонкам, входящих в маркер ? Не пробовал, но думаю надо включить режим Cell и с нужной колонки нажать мышу для редактирования и ... после последнего редактирования Cell выклюить
|
|
|
|
| |
Пост 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
|
|
|
|
| постоянный участник
|
Пост 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,... и кликом мыши за пределами окна коректировки.
|
|
|
|
| |
Пост N: 566
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.05.15 12:52. Заголовок: SergKis пишет: это ..
SergKis пишет: Опять цитату не проверил , извиняюсь - конечно это к Андрею SergKis пишет: цитата: | хочет включать корректировку как lCell := .T. с какой то определенной колонки |
| возможно и так , я подумал он хочет просто подвесить вызов функции на даблклик при длинном маркере. По любому при желании и то и то выполнимо. Подсвечивать текущую колонку можно меняя цвет фона в колонке :nCell по bOnDraw
|
|
|
|
| постоянный участник
|
Пост 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 нужно прописывать ?
|
|
|
|
| постоянный участник
|
Пост N: 644
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.05.15 14:39. Заголовок: Andrey пишет:Нет ! П..
Andrey пишет: цитата: | Нет ! Просто корректировку ТОЛЬКО ОДНОЙ функции ! Допустим MyEditEnter() и всё. |
| раньше: цитата: | Сделал простой тестовый пример на TBROWSE из нескольких столбцов. Делаю так: oBrw9:lCellBrw := .F. // маркер на всю таблицу Как назначить ОДНУ функцию по нажатию Enter и мышки ? Маркер же большой, не известно на каком столбце стоишь.. |
| цитата: | Если на каждом столбце делаешь ADD COLUMN .... ...... EDITABLE то НЕТ никакой реакции на весь маркер при нажатии ENTER или мышки ! Получается только просмотр таблицы. Что нужно написать для редактирования по всему маркеру ? |
| Как написано, так и понято
|
|
|
|
| постоянный участник
|
Пост N: 4214
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.05.15 15:05. Заголовок: SergKis пишет: Как ..
SergKis пишет: цитата: | Как написано, так и понято |
| Ну извиняюсь, за своё косноязычие...
|
|
|
|
|
| |
Пост N: 567
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.05.15 15:25. Заголовок: Andrey пишет: Кроме..
Andrey пишет: цитата: | Кроме как изменения :KeyDown( |
|
это самый простой способ. а on change отрабатывает когда меняется текущая строка
|
|
|
|
| постоянный участник
|
Пост N: 4215
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.05.15 15:42. Заголовок: Haz пишет: это самы..
Haz пишет: цитата: | это самый простой способ. а on change отрабатывает когда меняется текущая строка |
| Понял. Спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 4219
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.06.15 10:28. Заголовок: Всем привет ! Как о..
Всем привет ! Как объединить в одном столбце 3 разных поля базы ?
|
|
|
|
| |
Пост N: 568
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.06.15 12:37. Заголовок: Andrey пишет: Как о..
|
|
|
|
| постоянный участник
|
Пост N: 4223
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.06.15 13:25. Заголовок: Haz пишет: твой пос..
Haz пишет: Это через кодовый блок. Я это помню. 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)
|
|
|
|
| |
Пост N: 569
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.06.15 13:50. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как написать для такой конструкции |
| так и писать - через блок кода
|
|
|
|
| постоянный участник
|
Пост 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 знака чч:мм
|
|
|
|
| |
Пост N: 4874
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.06.15 17:34. Заголовок: Andrey пишет: Почем..
Andrey пишет: цитата: | Почему то третью строчку не показывает ? |
| не влезла видимо , поширше сделай высоту строки.
|
|
|
|
| постоянный участник
|
Пост N: 4225
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.06.15 17:45. Заголовок: Dima пишет: не влез..
Dima пишет: цитата: | не влезла видимо , поширше сделай высоту строки. |
| Не знаю как ? Там только ширину можно делать: SIZE 120 Где в TBROWSE задается высота строк ?
|
|
|
Ответов - 148
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|