MULTIPLA SELECAO NO MSFLEXGRID

USUARIO.EXCLUIDOS 16/12/2003 16:36:42
#1240
Pessoal,
Preciso de uma ajuda ! Eu estou com esse problema já faz um tempo e não consigo resolver...
Exemplo:
Eu tenho um MSFlexGrid com 10 rows. O que eu quero que ele faça:
- Quero selecionar apenas um registro, sendo ele qualquer row do MSFlexGrid;
- Quero selecionar quantos registros eu quiser do grid (múltipla seleção) e pegar a informação da primeira coluna e armazenar num array...

Alguém pode me ajudar ? Gostaria que me mandassem uma função pronta ...
Esta parte já esta atrasada no meu projeto.

P.S. Selecionar um, selecionar vários eu consegui, mas esta dando alguns erros que eu não consigo resolver. Como, se na grid tem 6 registros e eu seleciono os 3 últimos, ele esta pegando todos os registros. Ele pega os anteriores ...
MFVB 17/12/2003 09:04:51
#1305
Resposta escolhida
Oi Frank

No meu projeto eu utilizo o msflexgrid e seleciono as linhas para copiar e colar, excluir linhas selecionadas, inserir nova linha.
MSFLEXGRID.ROW determina de onde começa a seleção
MSFLEXGRID.ROWSEL determina até onde esta indo a seleção

Espero te ajudar,

With msfGrid
Select Case UCase(FUNC)
Case "NEW"
If .RowSel = .Rows - 1 Then
.Rows = .Rows + 1
.Row = .RowSel + 1
.Col = 1
N = 0
U_Def = UBound(mValorDefault, 1)
L_Def = LBound(mValorDefault, 1)
T_Def = U_Def - L_Def
For N = 1 To T_Def
If Len(mValorDefault(N)) 0 Then
.TextMatrix(.Row, N) = mValorDefault(N)
End If
If mColType(N) = CTCheck Then
InsereCheck .Row, .Cols - 1
End If
Next
End If
Case "COPY"
TOT_VETOR = 0
i = .Row
j = .RowSel ' inicio da seleção
If i j Then 'Copiar da menor para a maior
k = i
i = j
j = k
End If
k = j - i
k = k + 1
ReDim VETOR(1 To k, .Cols - 1)
k = 0
For xlin = i To j
k = k + 1
For xcol = 1 To .Cols - 1
VETOR(k, xcol) = .TextMatrix(xlin, xcol)
Next
Next
TOT_VETOR = UBound(VETOR, 1)
Case "PAST"
xcol = .ColSel
msfGrid_LeaveCell
For N = 1 To TOT_VETOR
.AddItem "", .Row
For CCOL = 1 To .Cols - 1
.TextMatrix(.Row, CCOL) = VETOR(N, CCOL)
If mColType(CCOL) = CTCheck Then
InsereCheck .Row, .Cols - 1
If VETOR(N, CCOL) = "" Then
SetCheck False
Else
SetCheck True
End If
End If
Next
.Row = .Row + 1
Next
.Col = xcol

ass. Marcio
Tópico encerrado , respostas não são mais permitidas