Ci ho messo un po', ma alla fine ho capito le tue risposte (purtroppo il mio livello è un po' basso, e ci devo ragionare su ....) !!!
Alla fine ho fatto così: subito dopo la ".Open" della query, ho aggiunto questo codice:
for IdxCol:=0 to DBGrid1.Columns.Count - 1 do begin
//Se in precedenza era stata assegnata per un'altra tabella, la reinizializzo
DBGrid1.Columns[IdxCol].Field.OnGetText:=nil;
//Se la colonna è di tipo stringa, la converto
WrkDataType:=DBGrid1.Columns[IdxCol].Field.FieldDef.DataType;
if (WrkDataType = ftFixedChar) then begin
DBGrid1.Columns[IdxCol].Field.OnGetText:=@ConvertiCampiStrInUtf8;
end;
end;
Nella procedura "ConvertiCampiStrInUtf8", ho messo il codice che mi avevi suggerito.
Grazie ancora, Mario