Einzelnen Beitrag anzeigen

SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#1

ListBox: Hint = Item @ Mouse

  Alt 1. Feb 2011, 08:41
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).

Geändert von SvenLittkowski ( 1. Feb 2011 um 09:29 Uhr)
  Mit Zitat antworten Zitat