Einzelnen Beitrag anzeigen

Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: TListbox und TBalloonHint

  Alt 21. Mär 2012, 05:42
ohne Daten, aber im Prinzip ...
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.HintPause :=0;
  Application.HintHidePause :=2000;
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
 ANewHint:String;
 i:Integer;
begin

  i := ListBox1.ItemAtPos(Point(x,y), True);
  if i>-1 then
      begin
      ANewHint := ListBox1.Items[i];
      if ANewHint<>Listbox1.Hint then
        begin
          Listbox1.Hint:=ANewHint;
          Application.ActivateHint(Point(x,y));
        end;

    end;

end;
Guten Morgen ihr Lieben,

danke erstmal für die Denkanstöße.

Bummi, deine Version ist ja fast die gleiche wie meine und leider brachte sie auch nicht den erwünschten Erfolg. Die Daten sind immer noch die vom vorherigen Datensatz, auf dem die Maus war. Auch muss ich immer noch 'raus aus der Listbox, um einen neuen Hint zu bekommen.
Ich würde ja am liebsten verbissen daran weiterarbeiten, bis das funktioniert, aber ich weiß nicht so recht, wo da der Fehler liegen könnte, da ich den Quelltext schon mehrere Male durch den Debugger jagte und eigentlich auch an der Stelle lst1.Hint:=neuerHint; die richtige Adresse in der Variable angezeigt wird.
Ein Kollege vermutete, dass das MouseMove-Ereignis auch vielleicht noch so ganz das richtige dafür ist, was ich da basteln möchte. Aber sowas wie MouseOver gibt es ja leider nicht bei der Listbox. -.- Mir jetzt selber so ein Ereignis zu schreiben, ist mir für diese Sache eigentlich auch zu aufwendig, da würde ich mir lieber eine andere Art überlegen, die Adresse anzeigen zu lassen.

EDIT!
So, Maya Sherlock Holmes hat zugeschlagen und geht der Sache jetzt auf 'n Grund. Ich hab jetzte infach mir 'n Label noch mit hingeklatscht und wenn ich jetzt über die Liste fahre, funktioniert das mit dem Label so wie ich das will, dass immer aktuell die Adresse des anvisierten Namen angezeigt wird. Ein weiterer Test bestätigte mir, dass das Problem bei dem TBalloonHint liegt. Als ich den aus dem CustomHint von der Listbox 'rausnahm, funktionierte das einwandfrei mit dem Standardhint! Die Schrift ist mir von dem aber zu klein, weswegen ich den BalloonHint nehmen möchte.

Jemand einen Tipp, was ich bei den Eigenschaften ändern muss? Den Delay habe ich schon 'runtergesetzt, kann aber z.B. nicht so recht was mit der Eigenschaft "HideAfter" anfangen und die OH empfinde ich da jetzt auch nicht als hilfreich.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya (21. Mär 2012 um 06:05 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat