realbasic-nug.it
[Top] [All Lists]

Re: Listbox

To: REALbasic NUG Italian <realbasic-nug dot it at lists dot realsoftware dot com>
Subject: Re: Listbox
From: Lucio Liberi <lucioing at tin dot it>
Date: Wed, 17 Jan 2007 00:30:41 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot it at lists dot realsoftware dot com
References: <3C32ACD8-27F8-496B-937A-3D8AB7C6BAF8 at tin dot it> <8B1F4257-80DE-4852-B2DB-05B4E61E59E8 at tin dot it> <8BF04970-710A-4257-B919-A2B70DA88E2C at yahoo dot it>
Sei un fuoriclasse... Grazie, Massimo...
Approfitto per chiedere un'altra cosa...
Ho un database con una colonna <Importo>
Voglio fare la somma della colonna <Importo>... Tu dirai: E che ci vuole? Si... Infatti. Il problema riguarda la formattazione dei numeri che sono reali con due decimali, come si conviene alla nostra valuta.
Allora...
Se formatto 1.234,00 faccio le somme correttamente, ma quando ordino 1200, viene dopo 12 e non dopo 600, cioe' 12, 1200, 600
Se formatto   1,234.00 ordino correttamente ma ho problemi con le somme.
Naturalmente se da sistema cambio le formattazioni, utilizzando quelle USA, tutto torna a posto... Ma non e' naturale.
Cosa fare e... come?

Grazie e a presto.

Lucio




Il giorno 17/gen/07, alle ore 00:00, Massimo Valle ha scritto:


On 16/gen/07, at 22:57, Lucio Liberi wrote:

Mi rispondo da solo...
Allora. Non si puo' fare niente, a meno che... a meno che, non si fissino le dimensioni delle colonne
in modo definitivo e si lasci lo spazio per la scrollbar.
listbox larga 500 pti
allora bisogna fissarla in 500-16=484 pti.

Se qualcuno ha un'idea migliore, si faccia avanti...
Ciao a tutti.

Mai rispondersi da soli. Il meglio che si riesca a fare e confermare le proprie ipotesi.

Infatti ci sono almeno due modi per fare quello che vuoi.

1. Impostando la proprietà AutoHideScollbars = false, la scrollbar è sempre visibile e non hai bisogno di spostare il totale.

2. La proprietà ListBox.DefaultRownHeight ti può dire l'altezza di una riga. Per fare ciò devi però impostarla tu a un valore definito perchè il default è -1. Una volta impostata (ad esempio a 18), misurata l'altezza dell'header (se usato), tu puoi fare una semplice divisione. L'altezza della Listbox - la dimensione dell'header / l'altezza delle righe ti dice quante righe sono visibili. Ottenuto questo dato che chiamiamo N tu sai che quando la listbox ha più di N righe la scrollbar diventa visibile e devi spostare il totale. Come fare a monitorare il numero di righe: semplicemente crea una sottoclasse di Listbox e fai l'override del metodo AddRow. Qualcosa del genere:

Sub AddRow(item as String)

  Super.AddRow item

  if me.listCount > NUMERO_RIGHE_VISIBILI then
    StaticText.left = StaticText.left -16
  end if
End Sub

Dovrai fare l'override anche degli altri metodi che agiscono sul numero di righe (InsertRow, RemoveRow, DeleteAllRows, ecc.)

Non ho provato ma dovrebbe funzionare.

Ciao

Massimo Valle

Chiacchiera con i tuoi amici in tempo reale!
http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com



<Prev in Thread] Current Thread [Next in Thread>