E giochino che ho fatto un po' di tempo fa, mi è servito in quanto avendo le colonne della grid molto strette non vedevo l'intera scritta, allora ho pensato di mostrarla come hint al passaggio del mouse.

Data una TDBGrid standard, biosogna utilizzare 2 workaround:

type
   TMouseGrid = class(TCustomDrawGrid);
   THackDBGrid = Class(TDBGrid);

in modo da poter utilizzare le loro property, l'evento da utilizzare è OnMouseMove nel quale andiamo a cercare l'hint da visualizzare

Il tutto è contenuto nell'evento OnMouseMove della grid:

[code]

var s: string;
    DLink : TDataLink;
    nCol,nRow:Integer;
    OldPosRecord: Integer;// vecchia posizione del cursore
  Procedure NoHint;
  begin  // nel caso di nessun hint .. lo nascondo
    DBGrid1.Hint:='';
    Application.HideHint;
  end;
begin
  nCol := -1;
  nRow := -1;
  s:= '';
  if DBGrid1.DataSource.DataSet.Active then  // solo se il dataset è aperto
  begin
    TMouseGrid(Sender).MouseToCell(X, Y, nCol, nRow);  //Mi ritorna riga colonna del mouse
    if (nCol>0) and (nRow>0) then
    begin
      DLink:=THackDBGrid(DBGrid1).DataLink;  //mi becco il datalink
      if Assigned(DLink) then  // è sicuramente assegnato .. ma ..
      begin
        OldPosRecord := DLink.ActiveRecord;  // salvo il cursore del record
        DLink.ActiveRecord := nRow - 1;  //-1 conto che ci sia l'intestazione
        if assigned(DBGrid1.DataSource.DataSet.Fields[nCol - 1]) then
          s := DBGrid1.DataSource.DataSet.Fields[nCol - 1].AsString; // prendo il valore
        DBGrid1.Hint := s;   // assegno il valore all'hint della grid
        Application.ActivateHint(DBGrid1.ClientToScreen( Point(X,Y) ));  //mostro l'hint nella posizione del cursore
        DLink.ActiveRecord := OldPosRecord; // ripristino posizione
      end
      else
        NoHint;
    end
    else
      NoHint;
  end
  else
   NoHint;

[/code]

 

Il tutto è molto semplice e chiaro, ho utilizzato Delphi7, ma credo che sia ininfluente e il codice sia valido anche per le versioni successive (e precedenti) di delphi.

G.