Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListBox => ItemAtPos-Probleme (https://www.delphipraxis.net/99644-listbox-%3D-itematpos-probleme.html)

Tommy1988 15. Sep 2007 09:30


ListBox => ItemAtPos-Probleme
 
Hallo D'ler.

Mit folgendem Code kann ich mir die Position eines Items in einer ListBox anzeigen lassen (PopUpMenu)

Delphi-Quellcode:
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
 Idx: Integer;
 Name: String;
begin
 Idx := ListBox1.ItemAtPos(Point(X,Y), True);
 if Idx<>-1 then
  begin
   Titel1.Caption := Format('%d', [Idx]);
   Name1.Caption := Format('%s', [Name]);
   Ordner1.Caption := Format('%s', [Dir]);
  end
 else
   Titel1.Caption := 'Keine Angabe';
   Name1.Caption := 'Keine Angabe';
   Ordner1.Caption := 'Keine Angabe';
end;
Das Problem besteht jetzt darin, dass ich nicht den Namen ([Name]) des Items und dessen
Speicherort ([Dir]) angezeigt bekomme.

Was mache ich falsch?

Matze 15. Sep 2007 09:36

Re: ListBox => ItemAtPos-Probleme
 
Hallo,

erstmal fehlt nach dem else begin und end.

Woher kommen denn [Dir] und [Name]?

Ich zitiere aus der OH, was ItemAtPos macht:

OH:
Mit ItemAtPos können Sie feststellen, ob an einer bestimmten Stelle des Steuerelements ein Eintrag vorhanden ist.

Der Parameter Pos gibt in Koordinaten relativ zum Fenster den Punkt innerhalb des Steuerelements an. Wenn Pos unterhalb des letzten Eintrags liegt, bestimmt der Parameter Existing den Rückgabewert. Wenn Existing true ist, gibt ItemAtPos -1 zurück, was bedeutet, dass an diesem Punkt kein Eintrag vorhanden ist. Ist Existing false, gibt ItemAtPos den um 1 erhöhten Index des letzten Eintrags zurück.

DP-Maintenance 15. Sep 2007 09:38

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Es geht um eine TListBox -> VCL

Bubblegum 15. Sep 2007 09:45

Re: ListBox => ItemAtPos-Probleme
 
Alt:
Delphi-Quellcode:
Name1.Caption := Format('%s', [Name]);
Also den Inhalt von diesem ListboxItem bekommst du mit:
Neu:
Delphi-Quellcode:
Name1.Caption := ListBox1.Items[idx];
Format brauchst du nicht.

Da weiß ich nicht was meinst!???
Delphi-Quellcode:
Ordner1.Caption := Format('%s', [Dir]); ???

Tommy1988 15. Sep 2007 09:56

Re: ListBox => ItemAtPos-Probleme
 
Was ItemAtPos macht wusste ich, es wahr tatsächlich das Begin und End :/

Jetzt aber noch etwas anderes:
Ich bekomme bei
Name1.Caption := ListBox1.Items[Idx];
einen kompletten Pfad zurück. Ich habe damals schon etwas mit Canvas herumgespielt wobei man den Pfad kürzen konnte.

Ist es aber auch irgentwie möglich das noch in Name1.Caption := ListBox1.Items[Idx]; zu integrieren? (ExtraxtFileName)


Edit:
Wieso frage ich eigentlich?
Name1.Caption := ExtractFilename(ListBox1.Items[Idx]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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