|
|
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
может кто подскажет лутшее решение проблемы: Есть ДВ типа грид, во всех ячейках можно вводить данные. так вот, при таких обстоятельствах "мouse selection" не работает. я решил так: на евенте clicked для ДВ написал: string ls_protect if KeyDown(KeyAlt!) then ls_protect = describe( dwo.name+".protect") modify(dwo.name+".protect=1") post ufa_enable_dwoobject(dwo.name, ls_protect) end if соответственно функция ufa_enable_dwoobject(...) this.modify(as_name + ".protect="+as_protect) все какбы работает хорошо, но есть один маленький недостаток: если начинаем селектить ячейки с той в которой фокус то с первого раза не проходит, приходится еще раз кликать мышкой чтобы нормально селектить ячейки. можно както по другому решать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 19:50 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Абсолютно не понятно, что вы спрашиваете. Может попробуете нормально сформулировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 20:50 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
а если так ? для ДВ типа грид Mouse selection не работает если во всех ячейках ДВ можно вводить данные. Mouse selection - свойство ДВ. PB8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 22:45 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
А зачем нужно это "mouse selection"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 00:18 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
чтобы выбирать ячейки в гриде и делать операции copy/paste наподобии Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 11:22 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Посмотри в PFC n_cst_dwsrv_rowselection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:00 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
AIZПосмотри в PFC n_cst_dwsrv_rowselection. спасибо, я бы посмотрел но у меня нет этого PFC, и инсталяшки PowerBuildera тоже нет, может вышлишь по майлу или линк дашь откуда скачать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:13 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Какой PB? Есть 5, 6, 7, 8, 9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:50 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
AIZКакой PB? Есть 5, 6, 7, 8, 9 PB8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 13:26 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
PFC теперь живет тут но там не для восьмерки конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 13:59 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейPFC теперь живет тут ...но rowselection service к заданному вопросу отношения не имеет. 2 zuzu Можно попытаться принудительно уйти с текущего поля куда-нибудь еще с помощью SetColumn/SetRow, но, IMHO, шаманство это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 15:14 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
To zuzu: Выслал PFC 9 & 8 по mail из профиля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 16:03 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
думаю что юзеры привыкнут к этому глюку, шаманство с SetColumn/SetRow не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 17:26 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Я так и не смог понять, какую проблему вы пытаетесь решить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 18:37 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
ФилиппЯ так и не смог понять, какую проблему вы пытаетесь решить... в excele данные можно вводить в разных ячейках, в тоже время эти ячейки можно выделять для операций типа copy/paste. тоже самое надо проделать и для ДВ. но оказывается что если юзер может вводить данные то мouse selection для ДВ не работает нормально, так как мышка выделяет текст в ячейке, а мне надо выделить ячейки, по другому не знаю как объеснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 10:15 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Это получится если св-во DW ReadOnly=True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 10:54 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
_Guest_1Это получится если св-во DW ReadOnly=True выше написанно: все поля редактируемые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 12:58 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Поэтому и стоит союз "если". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 13:05 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
_Guest_1Поэтому и стоит союз "если". вопрос был как сделать без "если" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 14:04 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Теперь понял. А зачем эмулировать Excel если есть Excel? :-) Но вообще-то делается такое. Кодируется объект, эмулирующий эффект лассо на ДВ и используется Selected DataWindow object property. Не очень тривиальный код, но делается ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 18:37 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Филипп Но вообще-то делается такое. Кодируется объект, эмулирующий эффект лассо на ДВ а можно поподробнее ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 20:09 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
Трудно подробнее. В одном продукте, на котором я работал, это было сделано, но в двух кусках. Один кусок - эмулятор Datawindow Paintera, как раз там лассо было сделано, для multiple selections мышью. В другом куске делалась проверка required columns, все незаполненные required columns во всех рядах ДВ собирались в строку, годную для вот этого: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 20:19 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
ФилиппТрудно подробнее. В одном продукте, на котором я работал, это было сделано, но в двух кусках. Один кусок - эмулятор Datawindow Paintera, как раз там лассо было сделано, для multiple selections мышью. В другом куске делалась проверка required columns, все незаполненные required columns во всех рядах ДВ собирались в строку, годную для вот этого: Код: plaintext проблема не в генерации Selected, а в том чтобы сделать так чтобы мышка двигаласть дальше ячеки в которой курсор застрял . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 20:29 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
zuzuпроблема не в генерации Selected, а в том чтобы сделать так чтобы мышка двигаласть дальше ячеки в которой курсор застрял . Не понял. Куда рукой поведёшь, туда мышка и двигается, в чём проблема то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 21:31 |
|
||
|
Mouse selection
|
|||
|---|---|---|---|
|
#18+
2 Филипп спасибо за наводку, я и забыл что можно управлять крысой вобщемто решение оказалось простым, даже автоскролл добавил, и не надо было никакого эффекта лассо вот srd file, может комуто тоже пригодится: SRC $PBExportHeader$u_dw_test.sru forward global type u_dw_test from datawindow end type end forward global type u_dw_test from datawindow integer width = 736 integer height = 428 string title = "none" boolean hscrollbar = true boolean vscrollbar = true boolean livescroll = true borderstyle borderstyle = stylelowered! event mousemove pbm_dwnmousemove end type global u_dw_test u_dw_test type prototypes function boolean ReleaseCapture() LIBRARY "user32.dll" function uint SetCapture(uint hwnd) LIBRARY "user32.dll" function uint SendMessage(uint hwnd, uint msg, uint wparam, uint lparam) LIBRARY "user32.dll" ALIAS FOR "SendMessageA" end prototypes type variables constant uint WM_HSCROLL = 276 constant uint WM_VSCROLL = 277 constant uint SB_LINEUP = 0 constant uint SB_LINELEFT = 0 constant uint SB_LINEDOWN = 1 constant uint SB_LINERIGHT = 1 end variables forward prototypes public function boolean ufa_is_mouse_selection () public function boolean ufa_is_grid () public subroutine ufa_set_protect_field (string as_field, string as_value) end prototypes event mousemove; int px, py if keydown(Keyalt!) then px = PixelsToUnits(xpos, XPixelsToUnits!) py = PixelsToUnits(ypos, YPixelsToUnits!) if px < x then SendMessage(handle(this), WM_HSCROLL, SB_LINELEFT, 0) elseif px > x + width then SendMessage(handle(this), WM_HSCROLL, SB_LINERIGHT, 0) end if if py < y then SendMessage(handle(this), WM_VSCROLL, SB_LINEUP, 0) elseif py > y + height then SendMessage(handle(this), WM_VSCROLL, SB_LINEDOWN, 0) end if end if end event public function boolean ufa_is_mouse_selection ();return describe("datawindow.selected.mouse") = "yes" end function public function boolean ufa_is_grid ();return describe("dataWindow.processing") = "1" end function public subroutine ufa_set_protect_field (string as_field, string as_value);modify(as_field + '.protect=' + as_value) SetCapture(handle(this)) end subroutine on u_dw_test.create end on on u_dw_test.destroy end on event clicked;string ls_protect if ufa_is_grid() and ufa_is_mouse_selection() then if keydown(keyalt!) then this.accepttext() ls_protect = this.describe(dwo.name + '.protect') ufa_set_protect_field(dwo.name, '1') post ufa_set_protect_field(dwo.name, ls_protect) else ReleaseCapture() end if end if end event я бы прицепил тестовый прожект но не знаю как , подскажите если на других версиях PB работает. на PB 8.0.3 Build 9704 работает очень даже хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2005, 15:00 |
|
||
|
|

start [/forum/search_topic.php?author=Ha%21&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 680ms |
| total: | 823ms |

| 0 / 0 |
