Autore Topic: [Spiegato perchè] Errore di Allineamento ColumnView  (Letto 873 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
[Spiegato perchè] Errore di Allineamento ColumnView
« il: 20 Maggio 2015, 18:55:17 »
 :ciao:
stavo provando ad usare una CoumnView, e in particolare l'esempio descritto al CAP8 di A Beginner's Guide to Gambas che riporto qui sotto. I valori della prima colonna risultano allinati a destra contrariamente a quelli delle altre colonne. Non riesco a capire perchè. C'è qualcuno che ha qualche suggerimento?
Codice: gambas [Seleziona]
' Gambas class file

Public Sub _new()
Dim iwidth As Integer
Dim irowcounter As Integer
Dim icolcounter As Integer

ColumnView1.Columns.count = 3
iwidth = ColumnView1.Width / ColumnView1.Columns.Count

ColumnView1.Columns[0].Alignment = Align.left

ColumnView1.Columns[0].Width = iwidth
ColumnView1.Columns[0].text = "Data"
ColumnView1.Columns[1].Width = iwidth
ColumnView1.Columns[1].text = "Valore"
ColumnView1.Columns[2].Width = iwidth
ColumnView1.Columns[2].text = "Stato"

  For irowcounter = 0 To 4      'crea 5 righe
    ColumnView1.Add(irowcounter, icolcounter)
       For icolcounter = 0 To ColumnView1.Columns.Count - 1    'crea le colonne
         ColumnView1[irowcounter][icolcounter] = "Col: " & icolcounter & "Row: " & irowcounter
       Next 'column
  Next      'row
End       'our constructor


 :ciao: :ciao: :ciao:
« Ultima modifica: 22 Maggio 2015, 13:29:44 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #1 il: 21 Maggio 2015, 00:42:34 »
Ho provato il tuo codice ed il problma si è ripetuto tale e quale al tuo.

Ho poi cambiato la ColumnView con una GridView ed adeguando opportunamente il codice ha funzionato perfettamente.
Codice: gambas [Seleziona]
Public Sub _new()

Dim iwidth As Integer  
Dim irowcounter As Integer  
Dim icolcounter As Integer  
 
GridView1.Columns.count = 3  
iwidth = GridView1.Width / GridView1.Columns.Count  
  
GridView1.Columns[0].Alignment = Align.Left
  
GridView1.Columns[0].Width = iwidth  
GridView1.Columns[0].text = "Data"  
GridView1.Columns[1].Width = iwidth  
GridView1.Columns[1].text = "Valore"  
GridView1.Columns[2].Width = iwidth  
GridView1.Columns[2].text = "Stato"  

 GridView1.Rows.Count = 5
 For irowcounter = 0 To 4      'crea 5 righe  
      For icolcounter = 0 To GridView1.Columns.Count - 1    'crea le colonne  
        GridView1[irowcounter, icolcounter].Text = "Col: " & icolcounter & "Row: " & irowcounter  
      Next 'column  
  Next      'row  
End

Trai tu le conclusioni
 :ciao:
« Ultima modifica: 21 Maggio 2015, 08:57:25 da Picavbg »
:ciao:

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #2 il: 21 Maggio 2015, 13:20:47 »
Citazione
Trai tu le conclusioni
;D
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #3 il: 21 Maggio 2015, 13:56:58 »
Non conosco l'widget specifico (mai usato) ma secondo me se si deve usare un comando a tre colonne uguali ColumnView non penso sia il comando adatto.
Credo che la prima colonna (?) debba ospitare una visualizzazione ad albero.
NB: Da prendere col beneficio dell'inventario ma siccome nessuno dei guru interviene  :'(

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #4 il: 21 Maggio 2015, 15:12:57 »
Credo che la prima colonna (?) debba ospitare una visualizzazione ad albero.
L'ipotesi di Gianluigi va verificata, poiché plausibile.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #5 il: 21 Maggio 2015, 22:58:05 »
Chiedo scusa ma non ho guardato cosa dice il libro, in compenso ho tirato giù questo codice che dovrebbe essere abbastanza esplicativo di quanto io ho capito di questo widget.
Codice: gambas [Seleziona]
' Gambas class file
Public Sub Form_Open()
  
  With ColumnView1
    .Columns.Count = 2
   ' .Columns[0].Width = ColumnView1.Width / 2
    .Columns[0].Text = "Albero"
    '.Columns[1].Width = ColumnView1.Width / 2
    .Columns[1].Text = "Valore"
    .Add("Key1", "Indice 1")
    .Add("Key1-1", "Primo sottoindice 1", Null, "Key1")
    .Add("Key1-1-1", "Primo Sotto-sottoindice 1", Null, "Key1-1")
    .Add("Key1-2", "Secondo sottoindice 1", Null, "Key1")
    .Add("Key2", "Indice 2")
    .Add("Key2-1", "Primo sottoindice 2", Null, "Key2")
    .Add("Key2-2", "Secondo sottoindice 2", Null, "Key2")    
    .Add("Key2-2-1", "Primo Sotto-sottoindice 2", Null, "Key2-2")
    .Add("Key2-2-2", "Secondo Sotto-sottoindice 2", Null, "Key2-2")
  End With
  
End

Public Sub Button1_Click()  
  
  Dim sCkey As String  
  
  Try sCkey = ColumnView1.Current.Key  
  If Error Then
    Message("Occorre selezionare una voce")
    Return
  Endif
  
  ColumnView1[sCkey][1] = "Valore relativo alla chiave " & sCkey    
  
End

Le voci width penso che non servano...
 :ciao:
« Ultima modifica: 21 Maggio 2015, 23:21:15 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #6 il: 22 Maggio 2015, 11:30:27 »
Credo che la prima colonna (?) debba ospitare una visualizzazione ad albero.

Non avevo letto la documentazione
Devo convenire che per l'uso necessario a kicco, sia adatta la GridView.
Il fatto che l'allineamento del contenuto delle caselle della prima colonna di ColumnView si mantenga sempre a destra, a prescindere del settaggio comandato da codice, ne è la dimostrazione pratica.

Debbo però schierarmi a favore di kicco, perchè nel suo post d'apertura cita testualmente:
Citazione
l'esempio descritto al CAP8 di A Beginner's Guide to Gambas
Questo significa che nemmeno l'autore dell'esempio, proprio di casa Gambas, conosce il corretto funzionamento della classe ColumnView. É stato perciò proprio quell'esempio a portare kicco e me ( :hard:   che non hio guardato con la giusta attenzione la documentazione prima di rispondere) fuori strada.

 :ciao:


:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #7 il: 22 Maggio 2015, 11:38:46 »
Questo significa che nemmeno l'autore dell'esempio, proprio di casa Gambas, conosce il corretto funzionamento della classe ColumnView.
...oppure che dopo tanti anni forse l'oggetto è stato modificato in quella sua proprietà.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #8 il: 22 Maggio 2015, 13:05:32 »
 :ciao:
grazie ragazzi!
..in effetti ero partito a testa bassa, fidandomi dell'esempio.

Citazione
...oppure che dopo tanti anni forse l'oggetto è stato modificato in quella sua proprietà.
assolutamente plausibile!

L'unica cosa che non mi è chiara è perchè questo oggetto si comporti "come" un TreeView.
Devo indagare le differenze!!!

 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #9 il: 22 Maggio 2015, 13:14:00 »
...oppure che dopo tanti anni forse l'oggetto è stato modificato in quella sua proprietà.

Mi spiace ma limitatamente a questa affermazione devo dare torto a vuott infatti qui si può vedere l'utilizzo che già nel 2010 (Gambas2) ne faceva md9327 mentre la revisione (Gambas3) del libro in oggetto contiene ancora il vecchio esempio.

nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #10 il: 22 Maggio 2015, 13:28:37 »
Ho dato un rapido occhio alla TreeView, direi che questa ColumnView potremmo chiamarla TreeColumnView!
:P
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #11 il: 22 Maggio 2015, 16:03:54 »
Mi spiace ma limitatamente a questa affermazione devo dare torto a vuott infatti ....

...infatti io ho scritto forse; ed hai fatto bene a verificare.

Le cause di una discrepanza fra manuale/WIKI/etc e prova concreta possono essere varie.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Errore di Allineamento ColumnView
« Risposta #12 il: 22 Maggio 2015, 17:25:32 »
...
Debbo però schierarmi a favore di kicco, perchè nel suo post d'apertura cita testualmente:
Citazione
l'esempio descritto al CAP8 di A Beginner's Guide to Gambas
Questo significa che nemmeno l'autore dell'esempio, proprio di casa Gambas, conosce il corretto funzionamento della classe ColumnView. É stato perciò proprio quell'esempio a portare kicco e me ... fuori strada.

Beh neanche poi così tanto fuori strada visto che avevate convenuto per la GridView...  ;)

...infatti io ho scritto forse; ed hai fatto bene a verificare.

Le cause di una discrepanza fra manuale/WIKI/etc e prova concreta possono essere varie.

So se anche gli altri sono d'accordo se valutiamo i tuoi aiuti ben oltre la media, vale a dire in quota guru, pertanto lasciaci ogni tanto credere di averti preso in castagna  :P  :angel:

 :ciao: :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro