??Hints in Tabellenzellen des StringGrid??
-
Hallo,
ich möchte in einem StringGrid für jede Zelle einen anderen Hint anzeigen lassen. Für das StringGrid gibt es zwar die Eigenschaft Hint, wird aber auf das komplette Grid angewandt und nicht für jede Zelle einzeln.
Hat jemand 'ne Idee wie man sowas verwirklichen könnte
-
Hallo
machs selbst
DefaultDrawing / OnDrwaCell
wenn du nicht weiterkommst schau zu dem Thema in die FAQ
ich glaube da war schon mal etwasMfG
Klaus
-
Vielen Dank für den Hinweis
ich dachte es muss nicht extra erwähnt werden das der Blick in die FAQ das erste ist wenn man hier was sucht. Hab die Suche und die FAQ vorher bemüht aber weder unter Hint noch Tooltip in der Suche noch unter StringGrid in den FAQ was zu dem Thema gefunden.
Was hat das zeichnen der Zellen mit dem Hint zu tun den ich anzeigen möchte
Welches Ereigniss ist für die Anzeige des Hint verantwortlich? Gibt es da vielleicht eine Möglichkeit an die Position der Maus heranzukommen und damit die entsprechende Zelle zu berechnen? Hatte vor den Hintinhalt in die Zelle zu packen.
-
Hallo,
Das Ereignis zum Anzeigen des Hint heisst OnHint. Das ist der Appliction zugeordnet. Es gibt in der Borland Hilfe sogar ein Beispiel dazu.
TStringGrid hat eine Funktion namens MouseToCell. Vielleicht hilfte das ja etwas.Ciao
-
Zellenspezifischer Tooltip im StringGrid so gehts
im Headerclass TfrmXY : public TForm { __published: TStringGrid *StringGrid1; public: __fastcall TfrmXY(TComponent* Owner); void __fastcall MyOnShowHint(AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo); };
in der cpp
__fastcall TfrmXY::TfrmXY(TComponent* Owner):TForm(Owner) { Application->OnShowHint = MyOnShowHint; } void __fastcall TfrmXY::MyOnShowHint(AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo) { int lnCol = 0; int lnRow = 0; StringGrid1->MouseToCell(HintInfo.CursorPos.x,HintInfo.CursorPos.y, lnCol, lnRow); if (lnCol == -1) //freie Fläche im Grid { CanShow = false; } else { CanShow = true; HintStr = "Col:" + IntToStr(lnCol) + ", Row:" + IntToStr(lnRow); } }
Braunstein:
danke du hast den richtigen Anstoss gegeben
lustig wirds wenn zwei StringGrids in einem Formular Hints anzeigen sollen. Dann könnte man über
if (HintInfo.HintControl->Name == "StringGrid1") {}
abfragen um welches Grid es sich im Event handelt