Newsgroup: it.comp.lang.visual-basic
Titolo: griglia in CE

ciao a tutti!
sto programmando con Embebbed vb su un palmare con CE.
Utilizzo in varie form il controllo griglia (quello semplice
semplice.....:-( ) ,nn pretendo ke ci siano metodi e/o proprietà cme la true
db grid,ma nn riesco nemmeno a stringere/allargaere le colonne.Il layout nn
si riesce a modificare e nn si modifica nemmeno automaticamente in base alla
larghezza del campo contenuto nelal cella.......:-(((
Qualcuno sa come posso fare o mi tengo una cosa schifosa così? :-((((
Beba

 Qualcuno sa come posso fare o mi tengo una cosa schifosa così? :-((((
Ehi! Ti affliggi in fretta tu! ;-)
GridCtrl1.ColWidth(0) = [valore in twips]
così modifichi la larghezza della colonna 0
ciaociao

 ha scritto nel messaggio
news:yD1ca.9322$7y3.2...@twister1.libero.it...



Per questo temo dovrai farti una procedura che calcoli la lunghezza in twips
della stringa (in base al font utilizzato) e poi assegnarla alla colonna
P.S.
Consiglio:
impara a quotare altrimenti prima o poi qualcuno te se magna! (si risponde
SOTTO le righe del messaggio interessate e si taglia il più possibile di
quello che non serve) ;)
ciaociao

oddio..............................................

 oddio..............................................
oddio.......è per la procedura o per il P.S.?

per la procedura...........................
posso chiederti un'altra cosina sul sort della griglia gią che ci sono o č
vietato? :-*

 Prova, al massimo il diveto lo metto dopo!! :))))
ho 2 griglie in 2 form diverse,caricate con vari array....un
lavoraccio.......
in sostanza nella prima ho:
articolo (txt),nr scatole,nr buste
e l'ordinamento brutale lo faccio (dopo che ho richiamato la procedura
'carica griglia') così.:
DataGrid.Sort = flexSortStringAscending
e funziona.....(forse ..credo.....perchè articolo è un testo e quindi ordina
le righe per quel campo String).
per la seconda griglia il problema è che ho come prima colonna una data e nn
funziona.
ho provato con le altre possibilità ma nn va.
potrei fare l'ordinamento sulla seconda colonna,ma è un numerico....
venendo al dunque,nn ho una sorta di sort (hehehhhehehe....ke burlona....)
per un campo predefinito?
NON posso e sottolineo,NON posso farlo in fase di creazione.
ke scrivo?
grazie
Beba

 quello che non serve) ;)
E sottolineerei _di quello che non serve_. Se taglia tutto, non si
capisce a chi e a cosa si riferisce. :-)
Bye, G.


em.......
nn ho la proprietà text widht della griglia
dovrei scrivere una cosa tipo
DataGrid.ColWidth(iContaRec)=.textwidth di ke?
sono proprio imbranata

 DataGrid.ColWidth(iContaRec)=.textwidth di ke?
:-))
Bye, G.

 > ......> Basta usare la proprietą .TextWidth di un form, per esempio.


 Beba
ciaociao

 > Bye, G.
Effettivamente faceva un po' ridere la tua risposta, probabilmente Paperino
pensava scherzassi!
Comunque apri la guida e cerca TextWidth, così vedi a cosa serve e capisci
cosa intendeva Paperino
ciaociao

 ha scritto nel messaggio
news:Xdgca.11219$Lr4.3...@twister2.libero.it...

il problema è che carico proprio brutalmente la griglia con
    griglia.additem sLinea().......
cercherò qualche cosa .....
grazie
Beba

 Basta usare la proprietà .TextWidth di un form, per esempio.
da help putroppo mi dice cosi:
This method returns the width of a text string as it would be printed in the
current font of a Form or PictureBox control.
object.TextWidth(string):-(Beba

 object.TextWidth(string):-(
Giusto, č cosě anche in VB.
salvati (eventualmente) il font del form e assegna al form il font della
griglia, poi esegui
larghezza=Forma.TextWidth(tua_stringa)
rimetti a posto (eventualmente) il font del form e lavora su larghezza.
Stessa cosa per TextHeight

sto facendo qualche prova.....
se io facessi una cosa del tipo
MainForm.TextWidth ( griglia.testocella(0) )????
vorrei solo assegnare al text widht la larghezza del contenuto della prima
cella,in modo da assegnarlo alla griglia.
cosi poi per utte le altre celle.


 MainForm.TextWidth ( griglia.testocella(0) )????
dim a as single
a = MainForm.TextWidth ( griglia.testocella(0) )
griglia.columns(0).width = a (questa, a memoria, č la sintassi per vb, non so se
applicabile a ce)
la cosa migliore sarebbe "ciclare" su tutte le celle di ogni colonna per trovare
quella piů lunga
--
Salutoni
Sergio

 ha scritto nel messaggio
news:b4sbir$22gmp8$1...@ID-173193.news.dfncis.de...


 prima rispondo sopra,poi sotto.....scusate :-(((
allora, brevemente:
le regole prevedono di rispondere "sotto" e non "sopra".
ma soprattutto cancellare le parti superflue del post originale....
Comunque, da queste parti, c'è una tale scarsità di gentili donzelle, che verrai
sopportata lo stesso.
--
Salutoni
Sergio

     griglia.additem sLinea().......
ok, ma se sLinea è ordinato come interessa a te.....
io intendevo proprio creare una procedura di sort dell'array (bubble sort???
mi pare si dica così)

 > > DataGrid.ColWidth(iContaRec)=.textwidth di ke?
Allora, io ho detto "TextWidth di un form", tu mi hai chiesto
"TextWidth di che ?", io ti ho fatto rileggere quello che avevamo
scritto... č chiaro adesso ? :-)
Bye, G.


ok...chiaro. :-|
ma vorrei poter scrivere una cosa del tipo:
MainForm.griglia.ColWidth(0)=dimensione del text coontenuto nella prima
cella della griglia
controllando prima con un ciclio pero' quale č la lunghezza maggiore in modo
da assegnarla a tutti le celle.
nn so ke stringa assegnare al
MainForm.TextWidth(?)
nn posso agire direttamnte sulla griglia?
beba

 da assegnarla a tutti le celle.
Prova questa sub che ho postato tempo fa, non è il massimo
della vita ma funziona; la inserisci in un form e la richiami con:
Riallinea NomeDellaTuaGriglia
Ti ho aggiunto i necessari commenti così capisci meglio il senso,
anzi, sono più commenti che codice :-).
'*********************
Sub Riallinea(Griglia as MSFlexGrid)
' ridimensiona le colonne di una griglia a seconda del contenuto
' presuppone che si stia lavorando in Twips
' dimensioniamo un po' di variabili
    Dim LarghCol As Long
    Dim LarghColonne() As Long
    Dim N As Long
    Dim M As Long
    Dim FormFont As String
' memorizziamo il font attualmente usato dal form
    FormFont = 
Me.Font.Name
' assegnamo al form il font usato dalla griglia
 
Me.Font.Name
 = 
Griglia.Font.Name
' lavoriamo ora sulla griglia
    With Griglia
' disattiviamo l'aggiornamento per velocizzare il tutto
' e per non avere brutti effetti in video
        .Redraw = False
' ridimensioniamo la matrice al numero di colonne che ha la griglia
        ReDim LarghColonne(.Cols)
' in ogni colonna
        For N = 0 To .Cols - 1
' controlliamo, per ogni riga
            For M = 0 To .Rows - 1
' la larghezza che avrebbe il testo se fosse stampato sul form
                LarghCol = Me.TextWidth(.TextMatrix(M, N))
' memorizziamo il valore maggiore per questa colonna
                If LarghCol > LarghColonne(N) Then LarghColonne(N) = LarghCol
' proseguiamo sulla prossima riga
            Next M
' finito il ciclo, assegnamo alla colonna la larghezza massima
' trovata, aggiungendo un centinaio di Twips per dare un margine
            .ColWidth(N) = LarghColonne(N) +100
' passiamo alla prossima colonna
        Next N
' finite le colonne, possiamo rivisualizzare la griglia
        .Redraw = True
' abbiamo finito con la griglia
    End With
' rimettiamo a posto il font del form
 
Me.Font.Name
 = FormFont
' e abbiamo finito
End Sub
'*********************
Bye, G.

 MainForm.TextWidth(?)
Al ? devi assegnare la stringa contenuta nella cella di cui vuoi testare la
larghezza

 Riallinea NomeDellaTuaGriglia

 Beba
ciaociao

 ha scritto nel messaggio
news:iDHda.24073$7y3.8...@twister1.libero.it...


 scusate......sono proprio un'ignoranta!!! :-°°°°°°°°°°°°°°°°°°(((
Vabbè, per sta volta......;-))
Comunque ricorda che:
1) La guida di CE è abbastanza esaustiva (se vai su
Controlli-->ActiveX--->Grid ci sono tutte le proprietà, metodi ed eventi)
2) Se digiti il nome della griglia seguito dal punto ti compare quel
simpatico elenco che, con un po' di intuito ti fornisce spesso l'indicazione
di ciò che hai bisogno
3) RICORDATI DI RISPONDERE SOTTO E DI CANCELLARE DAL MESSAGGIO QUELLO CHE
NON SERVE!!!
(chiaramente è un urletto senza rancore ;), serve solo ad evitare che
qualcuno prima o poi ti ci mandi!! )
ciaociao