powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid+combobox
3 сообщений из 3, страница 1 из 1
Grid+combobox
    #34816706
L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
L
Гость
Помогите пожалуста. Есть grid, в гриде столбцы - combobox. При нажатии на стрелки вниз/вверх происходит перебор по элементам combobox'a. Мне необходимо выбирать элементы в combobox и обходить строки grid'a. Возможно ли это?
...
Рейтинг: 0 / 0
Grid+combobox
    #34818591
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
Если я правильно понял, необходимо предусмотреть различную реакцию на нажатие стрелок "вверх-вниз" в зависимости от того открыт список или закрыт. Если так, то вот код из реального приложения писанного по материалам архива 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
Grid+combobox
    #34821036
L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
L
Гость
Спасибо за ответ. Обязательно попробую присобачить в свою прогу.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid+combobox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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