Page 1 of 1
DATALISTVIEW: modifica del Caption e della larghezza standart [risolto]
Posted: Mon Oct 12, 2020 7:25 am
by claudiocarletta
Un saluto a tutti,
ho due problemi con una DATALISTVIEW di VO
[*]
[*] (VERDE) ho la necessità di modificare la larghezza di default di una o più colonne di una DATALISTVIEW, essendo il loro contenuto di un solo carattere, praticamente il sistema lo nasconde completamente. Non voglio che sia l'operatore che debba allargare manualmente le colonne in questione
[*] (ROSSO) vorrei evidenziare il caption delle colonne di una DATALISTVIEW in: Font, Text color e Backgrount color, per differenziali maggiormente dal contenuto delle colonne
- Immagine 2020-10-12 092205.jpg (22.95 KiB) Viewed 419 times
Grazie a tutti
Claudio
DATALISTVIEW: modifica del Caption e della larghezza standart
Posted: Mon Oct 12, 2020 8:51 am
by wriedmann
Ciao Claudio,
per il primo problema (quello della larghezza dele colonne): su molti dei miei ListView uso il seguente metodo di AutoSize();
Code: Select all
method AutoSize() as void pascal class EnhListView
local nI as dword
self:SuspendUpdate()
for nI := self:ColumnCount downto 1
self:ColumnAutoSize( self:GetColumn( nI ):NameSym )
next
self:RestoreUpdate()
return
method ColumnAutoSize( symColumn as symbol ) as void pascal class EnhListView
local nIndex as int
local nWidth as int
nIndex := Int( self:__GetColumnIndexFromSymbol( symColumn ) ) - 1
ListView_SetColumnWidth( self:handle(), int(nIndex), shortint( _cast, LVSCW_AUTOSIZE ) )
nWidth := ListView_GetColumnWidth( self:Handle(), nIndex )
ListView_SetColumnWidth( self:handle(), int(nIndex), shortint( _cast, LVSCW_AUTOSIZE_USEHEADER ) )
if nWidth > ListView_GetColumnWidth( self:Handle(), nIndex )
ListView_SetColumnWidth( self:handle(), nIndex, shortint( _cast, LVSCW_AUTOSIZE ) )
endif
return
Per il secondo problema: è unpò più delicato perchè non previsto dal controllo sottostante - bisogna mettere il controllo in modalità OwnerDraw, e impostare le in modalità manuale i valori.
Magari si trova qualcuno che ha del codice pronto - altrimenti ti devo costruire un esempio.
Saluti
Wolfgang
DATALISTVIEW: modifica del Caption e della larghezza standart
Posted: Mon Oct 12, 2020 6:37 pm
by ic2
Ciao Claudio,
Posso aggiungere un consiglio alle risposte di Wolfgangs:
Come dice il VO file della guida
Browser dati: crea una visualizzazione elenco dati come controllo autonomo, di sola lettura, più veloce e un'alternativa a un browser dati.
Se hai bisogno di un'alternativa a un browser di dati e hai questo tipo di domande, vale davvero la pena pagare la (piccola) tariffa per acquistare
bBrowser. Puoi fare molto di più con esso che con DataListviews e c'è una versione VO e X #.
http://bbrowser.com/english/index.htm
==============================================
May I add an advice to Wolfgangs replies:
As the help file says
Databrowser: Create a data list view as a faster, read-only, standalone control and an alternative to a data browser.
If you need an alternative to a databrowser and have these kind of questions it is really worth the (small) license fee to buy bBrowser. You can do much more with it than with DataListviews and there's a VO and X# version.
Dick
DATALISTVIEW: modifica del Caption e della larghezza standart
Posted: Wed Oct 14, 2020 8:03 pm
by claudiocarletta
Grazie Dick,
si lo conosco, lo utilizzavo dodici anni fa, e lo apprezzavo moltissimo ma come ho detto precedentemente sto sviluppando qualcosa gratuitamente per la scuola e non voglio fare spese per un unico utilizzo.
Comunque, per il problema accennato, ho sbirciato l'esempio di Wolfgang ho capito cosa dovevo cercare e poi ho risolto in questo modo:
SELF:oDCDLAlunni:GetColumn(#NOMINATIVO):Width := 22
SELF:oDCDLAlunni:GetColumn(#SEZIONE):Width := 2
SELF:oDCDLAlunni:GetColumn(#CLASSE):Width := 2
e mi va bene così.
Grazie a tutti.
DATALISTVIEW: modifica del Caption e della larghezza standart
Posted: Thu Oct 15, 2020 4:18 am
by wriedmann
Ciao Claudio,
la cosa migliore per gli utenti sarebbe di salvare le larghezze alla chiusura della finestra e di reimpostarle alla riapertura - se lo fai in un file ini che si trova nel profilo dell'utente ogni utente avrà le sue impostazioni.
Saluti
Wolfgang