Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Tool-Tip eines StringGrids (https://www.delphipraxis.net/161803-tool-tip-eines-stringgrids.html)

MARGERSCH 21. Jul 2011 14:04

Tool-Tip eines StringGrids
 
Mit der Eigenschaft "Hint" kann ich den Tool-Tip eines StringGrids einstellen. Dieser gilt aber nur für das ganze Grid. Ich bräuchte hingegen einen zellenabhängigen Tool-Tip, der den Zelleninhalt darstellt, vor allem dann, wenn die Zelle zu klein ist, um den gesamten Inhalt darzustellen. Muss ich das von Hand programmieren (bei jedem Zellenwechsel neuer Tool-Tip) oder gibt es da eine "Abkürzung"
Martin

ASM 21. Jul 2011 15:38

AW: Tool-Tip eines StringGrids
 
Zitat:

Zitat von MARGERSCH (Beitrag 1112896)
... oder gibt es da eine "Abkürzung"
Martin

nein
Zitat:

Muss ich das von Hand programmieren (bei jedem Zellenwechsel neuer Tool-Tip)
Jein: nicht jedesmal komplett neu, aber den zellspezifischen Hint natürlich entsprechend deklarieren und zuordnen. Insgesamt also relativ einfach und kompakt wie folgt:

Code:
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private-Deklarationen }
    LastCol, LastRow: longint;
    Function GetGridHint(ACol,ARow: integer): String;
  public
    { Public-Deklarationen }
  end;

{....}

Function TForm1.GetGridHint(ACol,ARow: integer): String;
begin
  // nur als Beispiel:
  result := Format('Zelle: %d:%d',[ACol,ARow]);
  // bzw. hier eine Case-Struktur für die Zuordnung des Hint einbauen
end;

procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  ACol, ARow: longint;
begin
  with StringGrid1 do
  begin
    MouseToCell(X, Y, ACol, ARow);
    ShowHint := (ACol > 0) and (ARow > 0);
    if not ShowHint then exit;
    Hint:=GetGridHint(ACol,ARow);
  end;
  if (ACol <> LastCol) or (ARow <> LastRow) then
  begin
    Application.CancelHint; // wichtig !!
    LastCol := ACol;
    LastRow := ARow;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz