AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView - OnInfoTip

Ein Thema von geldis · begonnen am 27. Nov 2022 · letzter Beitrag vom 29. Nov 2022
Antwort Antwort
geldis

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

ListView - OnInfoTip

  Alt 27. Nov 2022, 16: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
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#2

AW: ListView - OnInfoTip

  Alt 28. Nov 2022, 15:46
TListview hat eine GetItemAt-Methode, die könntest Du im OnMouseMove-Handler des Listviews verwenden, um zu checken, ob die Maus über dem leeren Bereich ist.
Peter Below
  Mit Zitat antworten Zitat
geldis

Registriert seit: 19. Jan 2022
39 Beiträge
 
#3

AW: ListView - OnInfoTip

  Alt 29. Nov 2022, 08:26
Vielen Dank, das ist es.

Zuverlässig nur mit MouseMove, aber das geht bestens.

geldsi
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz