Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] Spostare una riga in una Flexgrid, tipo Sposta su

    Ciao,
    sapete come posso fare per spostare di una posizione una riga in una Flexgrid?
    Faccio un esempio. Ho una Flexgrid1 con le seguenti righe:

    - Milano
    - Roma
    - Torino
    - Lucca
    - Messina

    vorrei che la riga 3 (Torino) alla pressione di un tasto (Sposta su) fosse posizionata prima di Roma (che sarebbe la riga 2) avendo poi come risultato:

    - Milano
    - Torino
    - Roma
    - Lucca
    - Messina

    Esiste un modo semplice per fare ciò?
    Grazie in anticipo
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  2. #2

    Re: [VB6] Spostare una riga in una Flexgrid, tipo Sposta su

    Originariamente inviato da elfocaotico
    Ciao,
    sapete come posso fare per spostare di una posizione una riga in una Flexgrid?
    Faccio un esempio. Ho una Flexgrid1 con le seguenti righe:

    - Milano
    - Roma
    - Torino
    - Lucca
    - Messina

    vorrei che la riga 3 (Torino) alla pressione di un tasto (Sposta su) fosse posizionata prima di Roma (che sarebbe la riga 2) avendo poi come risultato:

    - Milano
    - Torino
    - Roma
    - Lucca
    - Messina

    Esiste un modo semplice per fare ciò?
    Grazie in anticipo
    Certo ! Vuoi scambiare la riga R con la precedente (R-1) ?
    Basta che fai un ciclo per tutte le colonne della FlexGrid, all'interno del quale scambi il contenuto delle celle, accedendo col metodo TextMatrix...

    Qualcosa tipo (non ho sottomano VB, ora, controlla che non ci siano sviste nei nomi delle proprieta' o altro...):
    codice:
       ' r e' la riga da "swappare" con la precedente
       Dim c as Integer, x As Variant
       For c = 0 To FlexGrid1.Cols - 1
          x = FlexGrid1.TextMatrix(r, c)
          FlexGrid1.TextMatrix(r, c) = FlexGrid1.TextMatrix(r - 1, c)
          FlexGrid1.TextMatrix(r - 1, c) = x
       Next
    ...e anche meglio usare With che tutti quei FlexGrid1....

    Ciao !
    IceCube_HT (VB6 fan Club)

  3. #3
    provando mi da errore....

    subscript out of range..

    Private Sub Command2_Click()
    Dim c As Integer, x As Variant
    For c = 0 To fxg_percorsi.Cols - 1
    x = fxg_percorsi.TextMatrix(r, c)
    fxg_percorsi.TextMatrix(r, c) = fxg_percorsi.TextMatrix(r - 1, c)
    fxg_percorsi.TextMatrix(r - 1, c) = x
    Next

    End Sub

    seleziono sulla flexgrid e cliccando su sposta me lo sposta in alto.

    ma si puo' fare anche nel db che te lo sposta secondo dove decidi te?(db access)

    grazie

  4. #4
    Originariamente inviato da nikeddy
    ... ma si puo' fare anche nel db che te lo sposta secondo dove decidi te?(db access)

    grazie
    In realtà lo spostamento nella Flexgrid non è un vero e proprio spostamento ma una sostituzione di testo delle colonne.
    In effetti io cercavo una proprietà legata all'oggetto flexgrid ma si può ovviare agendo sul testo (TextMatrix) contenuto (così come suggerisce icecube).
    Per il database è un'altra cosa. Devi fare gli update al recordset.
    Ciao
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.