Hi,
ich hatte dieses Problem schon in einem anderen Thread angesprochen: ich will dafür sorgen, daß meine ListBox als Hint immer den Inhalt des Items anzeigt, über welchem die Mouse sich gerade befindet. Der Grund ist, daß einige dieser Items die Breite der ListBox überschreiten. Die Hints sind also quasi eien "Pflicht", um meinem Benutzern zu helfen.
Klar hatte ich auch schon hier im Forum etwas recherchiert mittels der Suchfunktion. Ich bin dabei auf einen Code gestoßen, der vielversprechend war. Den habe icgh eingebaut, und tatsächlich, mein Programm wird kompiliert, und läuft sogar! Und weder mein Schreibtisch fängt Feuer, noch vergeht dise Seite der Erde in einem atomaren Feuerball! Aber leider passiert auch nichts von dem, was eigentlich passieren soltle: kein Hint erscheint bei MouseOver über jedem Item, kein Item-Inhalt im Hint. Nur der ganz normale Standard-Hint, den ich für diese Listbox bereits definiert hatte.
Nachstehend der Code. Was mache ich falsch?
Und hier der Ursprung des Codes:
http://www.delphipraxis.net/15882-on...box-items.html
Die dortigen Korrekturen kann ich mangels Erfahrung leider nicht umsetzen.
Code:
procedure TAlpha.ListBoxFromMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
ID: Integer;
OriginalHint: string;
begin
with ListBoxFrom do
begin
OriginalHint:=Hint;
ID:=ItemAtPos(Point(x,y),False);
if (ID<=Items.Count-1) then Hint:=Items.Strings[ID]
else Hint:='';
if Hint<>OriginalHint then Application.CancelHint;
end;
end;
KORREKTUR: Es funktioniert. Nur Itemstrings mit Sonderzeichen funktionieren nicht (Hint wird nicht angezeigt).