Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid+combobox / 3 сообщений из 3, страница 1 из 1
21.09.2007, 10:09
    #34816706
L
L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid+combobox
Помогите пожалуста. Есть grid, в гриде столбцы - combobox. При нажатии на стрелки вниз/вверх происходит перебор по элементам combobox'a. Мне необходимо выбирать элементы в combobox и обходить строки grid'a. Возможно ли это?
...
Рейтинг: 0 / 0
21.09.2007, 17:08
    #34818591
po2
po2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid+combobox
Если я правильно понял, необходимо предусмотреть различную реакцию на нажатие стрелок "вверх-вниз" в зависимости от того открыт список или закрыт. Если так, то вот код из реального приложения писанного по материалам архива FoxClub'а:

Код: plaintext
1.
declare long    GetWindowLong    in win32api integer,integer 
declare integer WindowFromPoint  in win32api integer,integer 

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
proc Combo.KeyPress
lPar nKeyCode,;
     nShiftAltCtrl
priv lDrop,;
     nTop ,;
     nLeft,;
     nBottom 
     lDrop                        =.f.
     nTop                         = ThisForm.ObjToDeskTop( 1 ,This) 
     nLeft                        = ThisForm.ObjToDeskTop( 2 ,This) 
     nBottom                      = ThisForm.ObjToDeskTop( 4 ,This) 
  if bitt(GetWindowLong(WindowFromPoint(nLeft+ 5 ,nBottom+ 5 ),- 16 ), 31 ).or.; 
     bitt(GetWindowLong(WindowFromPoint(nLeft+ 5 ,nTop   - 5 ),- 16 ), 31 ) 
     lDrop                        =.t.
endi 
  do case
case nKeyCode=  9 .or.;
     nKeyCode= 13 .or.;
     nKeyCode= 15 
  do case
case nShiftAltCtrl= 0 
  if!lDrop
NoDe
keyb '{rightarrow}' plai
endi
case nShiftAltCtrl= 1 
NoDe
keyb '{leftarrow}'  plai
endc
case nKeyCode=  5 .and.;
     nShiftAltCtrl= 0 
  if!lDrop
NoDe
  if!bof( 'tm00_10')
skip - 1  in tm00_10
endi
endi
case nKeyCode= 24 .and.;
     nShiftAltCtrl= 0 
  if!lDrop
NoDe
  if!eof( 'tm00_10')
skip   1  in tm00_10
endi
endi  
endc
endproc

proc ThisForm.ObjToDeskTop
lPar nPosition,;
     oObject 
priv nTop  ,;
     nLeft ,;
     nRight,;
     nBottom 
     nTop                         =         ObjToClient(This, 1 )    + ObjToClient(oObject, 1 ) 
     nLeft                        =         ObjToClient(This, 2 )    + ObjToClient(oObject, 2 ) 
     nRight                       = nLeft + ObjToClient(oObject, 3 ) 
     nBottom                      = nTop  + ObjToClient(oObject, 4 ) + iif(This.TitleBar= 1        ,; 
                                                                     iif(This.HalfHeightCaption,; 
                                                                         SysMetric( 34 )         ,; 
                                                                         SysMetric( 9 ))         ,; 
                                                                          0 )                    +; 
                                                                     iif(This.BorderStyle= 3     ,; 
                                                                         SysMetric( 4 )          ,; 
                                                                     iif(This.BorderStyle= 0     ,; 
                                                                          0                      ,; 
                                                                         SysMetric( 11 ))) 
retu iif(nPosition= 1 ,; 
         nTop       ,; 
     iif(nPosition= 2 ,; 
         nLeft      ,; 
     iif(nPosition= 3 ,; 
         nRight     ,; 
         nBottom))) 
endproc
...
Рейтинг: 0 / 0
24.09.2007, 12:29
    #34821036
L
L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid+combobox
Спасибо за ответ. Обязательно попробую присобачить в свою прогу.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid+combobox / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]