Newsgroup: it.comp.lang.visual-basic
Titolo: E' possibile selezionare una FlexGrid da codice?

Vorrei ordinare tutti i record di una FlexGrid da 2 colonne, mantenendo 
ovviamente la corrispondenza dei record tra la prima e la seconda colonna.
Per usare la proprietà Sort=3 devo però selezionare tutte le celle e 
devo farlo da codice, perchè deve essere una cosa automatica.
C'è un modo? Nell'elenco Intellisense non ho trovato un modo! Possibile?
Grazie
PS: Vb6

 C'è un modo? Nell'elenco Intellisense non ho trovato un modo!
Come no?
da msdn
Proprietà ColSel e RowSel
  a.. ColSel: restituisce o imposta la prima o l'ultima colonna di un
intervallo di celle.
  b.. RowSel: restituisce o imposta la prima o l'ultima riga di un
intervallo di celle.
Queste proprietà non sono disponibili infase di progettazione.
Sintassi
oggetto.ColSel [= valore]
oggetto.RowSel [= valore]
La sintassi delle proprietà ColSel e RowSel è composta dalle seguenti parti:
      Parte Descrizione
      oggetto Espressione oggetto che definisce un oggetto dell'elenco "Si
applica a".
      valore ValoreLong che specifica la prima o l'ultima riga o colonna di
un intervallo di celle.
Osservazioni
Queste proprietà consentono di selezionare un'area specifica del controllo
MSHFlexGrid a livello di programmazione e di leggere tramite il codice le
dimensioni di un'area selezionata dall'utente.
Il cursore di MSHFlexGrid si trova nella cella definita dalle proprietà Row
e Col. La parte selezionata del controllo MSHFlexGrid corrisponde all'area
compresa tra le righe specificate nelle proprietà Row e RowSel e le colonne
specificate nelle proprietà Col e ColSel. Il valore di RowSel può essere
superiore o inferiore all'impostazione di Row, mentre il valore di ColSel
può corrispondere a una posizione a sinistra o a destra dell'impostazione di
Col.
Quando si impostano le proprietà Row e Col, le proprietà RowSel e ColSel
vengono reimpostate automaticamente. Il cursore diventa pertanto la
selezione corrente. Per selezionare un blocco di celle tramite il codice, è
necessario impostare prima le proprietà Row e Col e quindi le proprietà
RowSel e ColSel.
-- 
Per diventare grandi non bisogna avere paura di essere piccoli
Per rispondere in privato elimina dall'indirizzo "togliquesto"
MasterDavidex - David Ruscelli

 devo farlo da codice, perchè deve essere una cosa automatica.
Forse non c'entra nulla, ma è una cosa che può essere utile anche ad 
altri:
Impostando l'ordinamento di una flexgrid a 9 (non ricordo il nome della 
costante) 
MSFlexGrid1.Sort = 9
Ogni volta che avviene l'ordinamento viene invocata - per ogni confronto 
eseguito dalla flexgrid - l'evento compare 
MSFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As 
Integer)
all'interno di tale evento è possibile scrivere il codice che confronta 
la riga di indice Row1 e quella di indice Row2.
Alla fine del confronto basta impostare Cmp=-1, 0 oppure 1 a seconda di 
come il nostro algoritmo valuta la differenza tra le due righe.
In questo modo è possibile fare ordinamenti veramente custom.
Esempio brutale: ordinamento per data (non supportato nativamente da 
msflexgrid).
Private Sub MSFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, 
Cmp As Integer)
Dim dt As Date
Dim dt2 As Date
If Row1 = 1 Or Row2 = 1 Then Cmp = -1: Exit Sub
dt = CDate(MSFlexGrid1.TextMatrix(Row1, 0))
dt2 = CDate(MSFlexGrid1.TextMatrix(Row2, 0))
If dt = dt2 Then Cmp = 0: Exit Sub
If dt < dt2 Then Cmp = -1 Else Cmp = 1
End Sub
termoPilucco
Inviato da 
www.mynewsgate.net

 ha scritto:
[Cut Ordinamento veramente custom]
Bello!