Thema: Delphi ListView - OnInfoTip

Einzelnen Beitrag anzeigen

geldis

Registriert seit: 19. Jan 2022
28 Beiträge
 
#1

ListView - OnInfoTip

  Alt 27. Nov 2022, 15:14
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
  Mit Zitat antworten Zitat