xsharp.eu • DATALISTVIEW: modifica del Caption e della larghezza standart [risolto]
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
Immagine 2020-10-12 092205.jpg (22.95 KiB) Viewed 397 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