Newsgroup: it.comp.lang.visual-basic
Titolo: Maniera veloce....


Per potere puoi, ma solo se la funzione e' esportata  da qualche DLL... Per
le callback puoi usare la AddressOf, istruzione che (solo per una API)
consente di passare come parametro l'indirizzo di una funzione che _deve_
trovarsi in un modulo standard.
Posta un po' del codice che useresti in C che vediamo se e' traducibile.
Ciaotutti,
Alessandro

C'è un modo veloce per ordinare gli elementi di una listview
(visualizzazione report) non secondo il testo ma numericamente?
mi spiego meglio, in una listview ho due colonne, una con del testo ed una
con delle cifre, come faccio ad ordinare la prima secondo il testo e la
seconda in ordine crescente/decrescente per le cifre???? se uso il
listview.sortkey = numero_della_colonna me li ordina tutti secondo il
testo...
So come farlo in VC++, ma uso una CallBack, non credo di poter fare la
stessa cosa anche in VB, magari voi avete già avuto un problema del genere.
Vi prego non rispondetemi dicendomi di aggiungere degli zeri prima della
cifra........
grazie dell'aiuto
VoCIOnE!

cifra........
L' unica cosa che mi viene in mente
è....prova a mettere delgi zeri prima della cifra, così dovrebbe
funzionare...forse.
Saluti...o...lutisa...forse era situla...
--------------------------------
Inviato via 
http://usenet.iol.it
 

 Saluti...o...lutisa...forse era situla...
Situla anche a te  e Grazie.

 ESATTO!!!
SBAGLIATO !!
vocione, scusa, la feature vabbe' che te l'hanno chiesta, ma prova a pensare
che ti hanno chiesto una cosa sensata... cosi' andate ad assegnare a ogni
nome un valore diverso...
se la domanda aveva un senso, era:
crescente:
pluto      25
pippo     38
minnie   69
decr:
minnie   69
pippo     38
pluto      25
per ordinare il listview tipo gestione risorse, col clic sull'header, puoi
usare un codice come qto:
Private Sub LV_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    On Error GoTo errman
    Static sOrder As Boolean
    sOrder = Not sOrder
    LV.SortKey = ColumnHeader.Index - 1
    LV.SortOrder = Abs(sOrder)
    LV.Sorted = True
    Exit Sub
errman:     MsgBox Error: Resume Next
End Sub
per quanto riguarda i numeri, non anteporre degli zeri ma degli spazi, tipo:
lSize = Len(Format(FileLen(MainPath & MyFile), "###,###,###,###"))
itmX.SubItems(2) = Space(15 - lSize) & _
    Format(FileLen(MainPath & MyFile), "###,###,###,###")
in realta' vedo adesso che si potrebbe scrivere molto meglio, ma il concetto
e' quello.
ciao, a.



Al momento non ce l'ho qui in ufficio, è tra i backup che ho a casa (ho
dovuto farlo per motivi di lavoro). Spero per domani mattina di poterlo
postare così vediamo se puoi darmi una mano.
Comunque in VC++ il click sulla colonna della listview viene intercettato e
puoi usare solo (se non sbaglio) una CallBack per ordinare gli elementi, in
questo modo hai il controllo sugli ordinamenti. In VB a meno che mi metto a
scorrere tutti gli elementi per quella determinata colonna (solo per quella)
e li rimetto nell'ordine che voglio io, non c'è soluzione?
Posso fare il subclassing del controllo ed utilizzare un algoritmo di
ordinamento mio?
Grazie per l'aiuto, appena posso posto il codice C++, ok?
CIAO
VoCIOnE!


C'e' quella prospettata da pal, che mi pare senz'altro valida :)
Unica cosa, dovresti usare un font non proporzionale in modo che ci sia un
certo allineamento dei numeri.
Ciaotutti,
Alessandro


Grazie, la soluzione era piů semplice di quanto pensassi....
Dopo aver letto la tua soluzione ho provato usando questa:
Public Function SpacePad(strStringa As String, iLen As Integer)
   SpacePad = Right(String(iLen, " ") & strStringa, iLen)
End Function
cosě quando clicco sulle colonne i numeri si ordinano correttamente.
GRAZIE!!!!!
sia a te che ad *Alessandro*
CIAO CIAO
VoCIOnE!

 certo allineamento dei numeri.
se non vuoi la perfezione al mm, non ce n'e' bisogno. io uso l'ms sans di
default e se ne stanno abbastanza bene incolonnati. col courier si andrebbe
meglio, in compenso, oltre che bruttino, spreca molto spazio.
ciao, a.

 tutti i font (o almeno in quelli standard), i numeri sono a larghezza
fissa.
Ma gli spazi no :)
Ciaotutti,
Alessandro

 certo allineamento dei numeri.
Se devi utilizzare solo numeri non serve che il font sia proporzionale. In
tutti i font (o almeno in quelli standard), i numeri sono a larghezza fissa.
Ciao
*Roby*

 Ma gli spazi no :)
Opps. Così imparo a non rispondere senza aver letto tutto il thread.
Ciao
*Roby*


Giusto :)
Ciao,
Alessandro

 Opps. Così imparo a non rispondere senza aver letto tutto il thread.
alt. ci sta venendo del casino.
con i font prop mi sa che i numeri _non_ siano a larghezza fissa. almeno, se
scrivo
111.111.111
e
000.000.000
in oe, con cominc sans, li vedo abbastanza diversi. la seconda fila e' circa
i 4/3 della prima.
se pero' nella colonna del lv si mette align=right, il padding serve solo
all'ordinamento, non alla visualizzazione, quindi gli spazi potrebbero anche
essere alternati brevi e lunghi o del tutto casuali, che je frega al lv ? :)
e la variazione nella larghezza dei caratteri si vede poco. vi mando a tutti
e due un bello snappino... ma poi non ce n'e' neanche bisogno. provate a
mettere comic sans in gestione risorse. la colonna delle date ondeggia un
filo, ma e' accettabile. allineata a dx si percepirebbe anche meno. le
dimensioni sono allineate a destra: essendo in kb si vede poco, ma se andate
in dir con file grossetti si vede che e' sopportabile.
ciao, a.