|
|
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
Привет всем VFP 8 SP1 Есть форма на ней грид с кучей колонок (34). Так вот хочу в TextBox-ах колонок грида события Valid и When перекрыть своими методами с помощью BindEvent. Все хорошо, только почему-то перекрывается только на первой колонке, а в остальных просто игнор какой-то. Вот код перекрытия: WITH THIS.GrdZkz1 FOR EACH lObj IN .COLUMNS IF lObj.CURRENTCONTROL='Text1' BINDEVENT(lObj.Text1, "When", THISFORMSET, "WhenEditVal") BINDEVENT(lObj.Text1, "Valid", THISFORMSET, "ValidEditVal") ENDIF ENDFOR ENDWITH Код этот работает в Init грида. Что за ересь, не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 13:21 |
|
||
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
Немного поэксперементировав обнаружил, что в той колонке где все удачно перекрывались Valid и When в них был код, а в остальных пусто. Как только я сделал во всех Text-ах всех колонок в Valid и When пусто, то вообще ничего не перекрывается. Что за глюк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 13:42 |
|
||
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
BindEvent корявая фишка. Прописал в текстах колонок DODEFAULT все стало работать. Лучше бы я класс создал, только уже времени нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 14:01 |
|
||
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
авторНемного поэксперементировав обнаружил, что в той колонке где все удачно перекрывались Valid и When в них был код, а в остальных пусто. Это не глюк - об этом явно прописано в справке. Certain control events such as GotFocus, LostFocus, InteractiveChange, and ProgrammaticChange do not work if the second bit of the nFlags parameter is set, for example, nFlags set to 2. These events are treated as method calls internally by Visual FoxPro, even though they are considered events. The same behavior applies to the Refresh method of an object on a form that is called when the form's Refresh method is called. Certain events such as When and Valid require code in the event for it to occur. BINDEVENT( ) does not directly support the Value property because it is handled by Visual FoxPro in a special way. You should use the InteractiveChange and ProgrammaticChange events instead. Additionally, the ActivePage property is not supported. Никогда не говори "невозможно", просто попробуй сделать иначе! JS (at FoxClub) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 21:34 |
|
||
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
На твоем месте я бы написал класс столбца с твоими методами WHEN и Valid в .PRG и в гриде указал бы этот класс и .PRG файл в свойствах MemberClass и MemberClassLibrary. Получится быстро и без проблем. DEFINE CLASS MYCOLUMN AS COLUMN PROCEDURE When ... ENDPROC PROCEDURE Valid ... ENDPROC ENDDEFINE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2006, 20:58 |
|
||
|
Проблема с BindEvent и Grid
|
|||
|---|---|---|---|
|
#18+
Hi serg_piter! > На твоем месте я бы написал класс столбца с твоими методами WHEN и Valid Не совсем так - не в методах колонки (таковых кстати у неё и нету), а в методах контролов, в этой колонке расположенных. Т.е. например так: > DEFINE CLASS MYCOLUMN AS COLUMN ADD OBJECT txt AS MyColumnTextbox ENDDEFINE DEFINE CLASS MyColumnTextbox AS Textbox > PROCEDURE When > ... > ENDPROC > PROCEDURE Valid > ... > ENDPROC > ENDDEFINE Можно так-же и хедер описать - причём 2-мя способами :) Явно по ADD OBJECT или косвенно через HeaderClass(Library) А можно пойти проще - заменив только текстбоксы в колонке - причём сделать это можно как в рантайме (циклом подобным описанному в начале темы) - но тогда все свойства, а главное методы описанные в имеющихся в колонках текстбоксах (т.е. в "штатных") будут утеряны... Так и в дизайнтайме (т.е. в редакторе формы/класса) - конечно менять руками контролы в 34 колонках есть малопродуктивно - поэтому есть смысл написать простой построитель, который и сделает подобную замену :) Или же "обмануть" фокс, открыв scx/vcx как таблицу и проведя замену полей Class и Classloc для нужных записей (ориентируясь по содержимому полей Parent, текущим значениям поля Class и т.п.) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2006, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33653418&tid=1591938]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 351ms |

| 0 / 0 |
