powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в грид получить тельняшку?
8 сообщений из 8, страница 1 из 1
Как в грид получить тельняшку?
    #35306037
vlgrech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как в грид получить тельняшку? Строки могут плавать.
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306133
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlgrechПодскажите как в грид получить тельняшку? Строки могут плавать.
Никак.
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306178
Sovereign
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dynamically format grid columns
C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\SAMPLES\Solution\controls\grid

выббираем Ledger Style
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306224
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sovereign Dynamically format grid columns
C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\SAMPLES\Solution\controls\grid

выббираем Ledger Style
Если это наводка на RECNO()%2, то вряд ли это поможет в данном случае.
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306235
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\SAMPLES\Solution\controls\grid
Насколько я помню - там привяхка к номеру строки. Если у человека задествованы индексы то все поламается. Гдето на www.foxclub.ru или в решениях или так в обсуждениях был вариант класса где динамически расчитывалися полоски. Достаточно громоздкий но на быстрых машинах работающий (а медленых счас практически нет) Автора темы уже не помню :(
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306338
Sovereign
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedЕсли это наводка на RECNO()%2, то вряд ли это поможет в данном случае.

* В Grid вставляется в событие INIT

Код: plaintext
1.
THISFORM.grid1.SETALL("dynamicBackColor", "IIF(MOD(THISFORM.grid1.ActiveRow(), 2)=0, RGB(255,255,255), RGB(234,234,234))", "Column") 
THISFORM.grid1.SETALL("dynamicForeColor", "IIF(MOD(THISFORM.grid1.ActiveRow(), 2)=0, RGB(0,0,0), RGB(255,0,0))", "Column")
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306354
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sovereign AleksMedЕсли это наводка на RECNO()%2, то вряд ли это поможет в данном случае.

* В Grid вставляется в событие INIT

Код: plaintext
1.
THISFORM.grid1.SETALL("dynamicBackColor", "IIF(MOD(THISFORM.grid1.ActiveRow(), 2)=0, RGB(255,255,255), RGB(234,234,234))", "Column") 
THISFORM.grid1.SETALL("dynamicForeColor", "IIF(MOD(THISFORM.grid1.ActiveRow(), 2)=0, RGB(0,0,0), RGB(255,0,0))", "Column")

И что, это будет "матрас"? :)
...
Рейтинг: 0 / 0
Как в грид получить тельняшку?
    #35306368
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так. Нашел. Автора с сожалению не помню.

В Init-е формы
Код: plaintext
1.
=This.SetAll('DynamicBackColor', 'Iif(ThisForm.Grid1.GetRow() % 2 = 0, '+LTrim(Str(RGB( 230 , 240 , 255 )))+', '+LTrim(Str(RGB( 255 ,  255 ,  255 )))+')', 'Column')

Где GetRow новый метод формы:
Код: 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.
76.
77.
78.
79.
80.
81.
82.
83.
LPARAMETERS DataBase
LOCAL nRecNo, nRow, R, N, I

IF Empty(DataBase)
   SELECT (THIS.RECORDSOURCE)
ELSE
   SELECT (DataBase)
   GO Recno(THIS.RECORDSOURCE)
ENDIF

nRecNo = RECNO()
nRow =  0 

* на две строки вверх - DownArrow, UpArrow
R =  0 
DO WHILE NOT BOF() AND (R <  2 )
   IF RECNO() = THIS.nLastRecNo
      nRow = THIS.nLastRow + R
      EXIT
   ENDIF
   SKIP - 1 
   R = R +  1 
ENDDO
IF BOF()
   nRow = R
ENDIF
IF nRecNo > Reccount()
   GOTO BOTT
ELSE
   GOTO nRecNo
ENDIF

IF EMPTY(nRow)
* на два экрана вниз - PageDown, PageUp
   N =  0 
   IF INLIST(THIS.SCROLLBARS,  1 ,  3 )
      N = SYSMETRIC( 8 ) +  1 
   ENDIF
   N = INT((THIS.HEIGHT - THIS.HEADERHEIGHT -  1  - N) / THIS.ROWHEIGHT)
   N = N *  2 
   R =  0 
   DO WHILE NOT EOF() AND (R < N)
      IF RECNO() = THIS.nLastRecNo
         nRow = THIS.nLastRow - R
         EXIT
      ENDIF
      SKIP + 1 
      R = R +  1 
   ENDDO
   IF nRecNo > Reccount()
      GOTO BOTT
   ELSE
      GOTO nRecNo
   ENDIF
ENDIF

IF EMPTY(nRow)
* до упора вверх - Ctrl+End, Ctrl+Home
   R =  0 
   DO WHILE NOT BOF()
      IF RECNO() = THIS.nLastRecNo
         nRow = THIS.nLastRow + R
         EXIT
      ENDIF
      SKIP - 1 
      R = R +  1 
   ENDDO
   IF BOF()
      nRow = R
   ENDIF
   IF nRecNo > Reccount()
      GOTO BOTT
   ELSE
      GOTO nRecNo
   ENDIF
ENDIF

THIS.nLastRecNo = nRecNo
THIS.nLastRow = nRow

SELECT (THIS.RECORDSOURCE)

RETURN nRow

соотвкествено гриду нужны дополнительные свойства nLastRecNo и nLastRow
Как это работает не разбирался но работает:)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в грид получить тельняшку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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