Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VideoSoft FlexGrid 8.0 - продвижение по сетке / 5 сообщений из 5, страница 1 из 1
11.08.2005, 16:10:22
    #33210914
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VideoSoft FlexGrid 8.0 - продвижение по сетке
Всем здравствуйте !!!

Кто работает с Гридом VideoSoft FlexGrid 8.0 прошу откликнутся.
Вопрос такой:
Как продвигатся вниз по сетке типа скрулом програмно ?
Например при поиске нужно увидеть строку, которая находится где-то
на дне сетки...
Я нахожу все строки и крашу их , но сразу по мере нахождения не могу продвигатся вниз.
Как это можно делать ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
n =  0 
For i =  1  To VSGed.Rows -  1  

If InStr(VSGed.Cell(flexcpText, i,  0 ), "" & txtFind.Text & "") Then
VSGed.Cell(flexcpBackColor, i,  0 ) = vbGreen

n = n +  1 
Msg$ = "Exists => " & VSGed.Cell(flexcpText, i,  0 )
OpVal% = vbYesNo + vbDefaultButton2
TitleMsg$ = " Next ? "
Retval% = MsgBox(Msg$, OpVal%, TitleMsg$)
If Retval% = yes Then
VSGed.ScrollTipText = " Row " & Row & ": " & VSGed.TextMatrix(Row,  0 ) & " "
End If

If Retval% = vbNo Then
Exit Sub
End If
End If 
Спасибо.
...
Рейтинг: 0 / 0
11.08.2005, 17:13:49
    #33211188
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VideoSoft FlexGrid 8.0 - продвижение по сетке
Valeriuпри поиске нужно увидеть строку, которая находится где-то
на дне сетки...The ColIsVisible and RowIsVisible properties are used to determine whether the specified column or row is within the visible area of the control or whether it has been scrolled off the visible part of the control.

If a row has zero height or is hidden but is within the scrollable area, RowIsVisible will return True.

To ensure a given row is visible, use the ShowCell method.
...
Рейтинг: 0 / 0
12.08.2005, 09:28:41
    #33212049
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VideoSoft FlexGrid 8.0 - продвижение по сетке
Понял, но никак не могу использовать метод ShowCell !!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
If VSGed.RowIsVisible(i) = True Then
    'VSGed.ShowCell(i, 1) = True '??? -не могу вьехать !!! 
    MsgBox "Видно !!!"
    End If
    If VSGed.RowIsVisible(i) = False Then
    'VSGed.ShowCell(i, 1) = True '???
    MsgBox "Не видно !!!"
    End If
...
Рейтинг: 0 / 0
12.08.2005, 12:22:56
    #33212662
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VideoSoft FlexGrid 8.0 - продвижение по сетке
Вот фрагмент кода работающей программы
(к сожалению, неустойчивая работа сервера sql.ru не позволила найти топик,
в котором работа этого куска проиллюстрирована скрин-шотом):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    j =  1                'предустановка для .ShowCell j, 2
    Dim sm AS STRING, sm1 AS STRING, lsm1 AS SINGLE, sm1Len AS LONG, N AS LONG
'несколько операторов выброшено...
    i = .FindRow(sm1, ,  3 , FALSE, FALSE)
    IF i >  0  THEN           'закраска маски поиска в зелёный свет:
        j = i: N =  1         'фиксируем начальную строку и к-во найденных с sm1
        DO WHILE INSTR( 1 , .TextMatrix(i,  3 ), sm1, vbTextCompare) >  0 
                i = i +  1 
                IF i >= .ROWS THEN      'контроль выхода индекса i за посл. строку
                    EXIT DO                 'и принудительный выход
                END IF                  'по исчерпанию строк, а не while-проверки!
        LOOP                            'поворот на while-проверку....
        i = i -  1 
        FOR N = j TO i
                .SELECT N,  1 , N,  3 
                .Cell(flexcpFloodPercent, N,  3 ) = lsm1
                DoEvents
        NEXT N                            'поворот на while-проверку....
        N = i - j +  1 
        .ShowCell i,  2 
...
Рейтинг: 0 / 0
12.08.2005, 15:56:44
    #33213465
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VideoSoft FlexGrid 8.0 - продвижение по сетке
Processor СПАСИБО !!!

Просто-напросто не нодо было ставить скобки !!!

Код: 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.
Private Sub cmdFindN_Click()
Dim i As Long, n As Integer, n1 As Integer
Dim Msg$
Dim OpVal%
Dim Retval%
Dim TitleMsg$

n =  0 
 For i =  1  To VSGed.Rows -  1   'ciclu pina la Nr. de rind existent
 VSGed.Cell(flexcpBackColor, i,  0 ) = &H8000000E
 VSGed.Cell(flexcpBackColor, i,  1 ) = &H8000000E


    If InStr(VSGed.Cell(flexcpText, i,  0 ), "" & txtFind.Text & "") Then
    VSGed.Cell(flexcpBackColor, i,  0 ) = vbGreen
    
    If VSGed.RowIsVisible(i) = True Then
    VSGed.ShowCell i,  0 
    MsgBox "Se vede"
    End If
    If VSGed.RowIsVisible(i) = False Then
    VSGed.ShowCell i,  0 
    MsgBox "Nu Se vede"
    End If
    
    n = n +  1 
    Msg$ = "Exists => " & VSGed.Cell(flexcpText, i,  0 )
    OpVal% = vbYesNo + vbDefaultButton2
    TitleMsg$ = "        Next ? "
    Retval% = MsgBox(Msg$, OpVal%, TitleMsg$)
    If Retval% = yes Then
    'VSGed.Cell(flexcpBackColor, i, 0) = &HFFFFFF
    VSGed.ScrollTipText = " Row " & Row & ": " & VSGed.TextMatrix(Row,  0 ) & " "
    End If
    
    If Retval% = vbNo Then
    Exit Sub
    End If
    End If
    
    If InStr(VSGed.Cell(flexcpText, i,  1 ), "" & txtFind.Text & "") Then
    VSGed.Cell(flexcpBackColor, i,  1 ) = vbGreen
   
   If VSGed.RowIsVisible(i) = True Then
    VSGed.ShowCell i,  1 
    MsgBox "Se vede"
    End If
    If VSGed.RowIsVisible(i) = False Then
    VSGed.ShowCell i,  1 
    MsgBox "Nu Se vede"
    End If
    n1 = n1 +  1 
    Msg$ = "Exists => " & VSGed.Cell(flexcpText, i,  1 )
    OpVal% = vbYesNo + vbDefaultButton2
    TitleMsg$ = "       Next ? "
    Retval% = MsgBox(Msg$, OpVal%, TitleMsg$)
    
    If Retval% = yes Then
    
    SGed.ScrollTipText = " Row " & Row & ": " & VSGed.TextMatrix(Row,  0 ) & " "
    End If
    
    
    If Retval% = vbNo Then
    Exit Sub
    End If
    End If
    
    Next i
   'GoTo 1
End Sub

Еще раз спасибо !!!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VideoSoft FlexGrid 8.0 - продвижение по сетке / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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