Moin Moin.
In einem Listview mit Ordnernamen soll beim bewegen der Maus über einen Eintrag eine Information angezeigt werden. Diese Info wird in einem extra Formular angezeigt, weil für die HINT Zeile sind die Informationen (JOSN) zu lang und es sieht sch...lecht aus.
Dazu verwende ich die Ereignisroutine OnInfoTip. Klappt anstandslos.
Delphi-Quellcode:
Procedure TMainForm.FilesInfoTip(Sender: TObject; Item: TListItem; var InfoTip: string);
Var
SelectedDirectory : String;
begin
SelectedDirectory := Item.Caption;
Infotip := '';
if Not(Tfile.Exists(MODPath + SelectedDirectory + '/modinfo.json')) then
begin
HintForm.ModNameLabel.Caption := SelectedDirectory;
CreateEmptyJSON(MODPath + SelectedDirectory);
ReadJSONModInfo(MODPath + SelectedDirectory + '/modinfo.json');
end;
if Tfile.Exists(MODPath + SelectedDirectory + '/modinfo.json') then
begin
ReadJSONModInfo(MODPath + SelectedDirectory + '/modinfo.json');
end;
end;
procedure TMainForm.FilesMouseLeave(Sender: TObject);
begin
HintForm.Hide;
end;
procedure TMainForm.FilesMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
HintForm.Left := MainForm.Left - HintForm.Width - 5;
HintForm.Top := MainForm.Top + MainForm.Files.Top;
HintForm.show;
end;
In Item ist der ItemIndex des jeweils «berührten» ListView Eintrages enthalten. Genau solange bis ein neuer Eintrag «berührt» wird.
Mein Problem:
Wenn der Anzeigebereich des ListViews größer ist als die Anzahl der Einträge, brauche ich im quasi leeren Bereich des ListViews eben diese Info : Wo der Mauszeiger momentan gerade ist - da ist nichts.
Aber woher? Jemand eine Idee?
geldis