Wie kann ich in einer Grid-Komponente für jede Zelle einen anderen Hint ausgeben?


Ich möchte für jede Zelle eines StringGrids einen eigenen Hint anzeigen. Der Hinweistext wird aber erst aktualisiert, wenn der Mauszeiger das Grid verlässt. Wie kann ich einen neuen Hinweis anzeigen, wenn der Mauszeiger über eine neue Zelle bewegt wird?

Damit der Hint wieder auftaucht, muß man nur Application.CancelHint aufrufen - die MouseMove-Methode sieht dann wie folgt aus:

var LastCol, LastRow : longint;

procedure TForm1.StringGridMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var ACol, ARow: longint;
begin
  StringGrid.MouseToCell(X, Y, ACol, ARow);
  StringGrid.Hint:='Dieser Hinweis gilt nur für die Zelle '+IntToStr(ACol)+':'+IntToStr(ARow);
  if (ACol<>LastCol) or (ARow<>LastRow) then begin
    Application.CancelHint;
    LastCol:=ACol;
    LastRow:=ARow;
  end;
end;
Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:

Wie kann man bei einer StringGrid-Komponente mehrzeiligen Text ausgeben?
Wie kann ich bei einer Stringgrid nur bestimmte Zeilen auf Readonly setzen?
Wie kann ich ein Bild in eine Stringgrid zeichnen?


Delphi FAQ