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 Directory List Box - gewählten Eintrag auslesen (https://www.delphipraxis.net/103872-directory-list-box-gewaehlten-eintrag-auslesen.html)

toyoman 23. Nov 2007 09:21


Directory List Box - gewählten Eintrag auslesen
 
...und zwar nicht den ganzen Pfad welchen ich mit dirlist.items.strings[dirlist.itemindex] = bekomme. sondern ich möchte nur den mit der Maus angewählten Wert.

Geht das überhaupt?

Als Beispiel:

c:\temp\test ist das aktuelle Verzeichnis
mit der Maus klick ich auf "test" und möchte diesen Wert haben für weitere Verwendung...

konkret verwende ich die TJvDirectoryListbox, ich denke aber es sollte identisch den anderen Directory Listboxen sein, sind ja alle abgeleitet voneinander...


Jemand eine Idee?

DeddyH 23. Nov 2007 09:31

Re: Directory List Box - gewählten Eintrag auslesen
 
Ob es da bereits eine fertige Funktion gibt, weiß ich gerade nicht, aber Du kannst es mal damit versuchen:
Delphi-Quellcode:
function LastDir(const sPath: string): string;
var temp: string;
    i: integer;
begin
  Result := '';
  temp := sPath;
  if temp[Length(temp)] in ['\','/'] then
    Delete(temp,Length(temp),1);
  i := Length(temp);
  while (i > 0) and not(temp[i] in ['\','/']) do
    begin
      Result := temp[i] + Result;
      dec(i);
    end;
end;

Progman 23. Nov 2007 09:32

Re: Directory List Box - gewählten Eintrag auslesen
 
DirectoryListBox1.Directory gibt den String des ausgewählten Verzeichnisses zurück.

Deep-Sea 23. Nov 2007 09:34

Re: Directory List Box - gewählten Eintrag auslesen
 
Zitat:

Zitat von DeddyH
Ob es da bereits eine fertige Funktion gibt, weiß ich gerade nicht, aber Du kannst es mal damit versuchen:
Delphi-Quellcode:
function LastDir(const sPath: string): string;
var temp: string;
    i: integer;
begin
  Result := '';
  temp := sPath;
  if temp[Length(temp)] in ['\','/'] then
    Delete(temp,Length(temp),1);
  i := Length(temp);
  while (i > 0) and not(temp[i] in ['\','/']) do
    begin
      Result := temp[i] + Result;
      dec(i);
    end;
end;

LastDelimiter ?! :wink:

DeddyH 23. Nov 2007 09:34

Re: Directory List Box - gewählten Eintrag auslesen
 
Zitat:

Zitat von Progman
DirectoryListBox1.Directory gibt den String des ausgewählten Verzeichnisses zurück.

Ja, aber den kompletten Pfad, den will er ja nicht.

DeddyH 23. Nov 2007 09:35

Re: Directory List Box - gewählten Eintrag auslesen
 
Zitat:

Zitat von Deep-Sea
LastDelimiter ?! ;)

Thx, ich kam einfach nicht drauf. :lol:

toyoman 23. Nov 2007 09:44

Re: Directory List Box - gewählten Eintrag auslesen
 
Zitat:

Zitat von DeddyH
Ob es da bereits eine fertige Funktion gibt, weiß ich gerade nicht, aber Du kannst es mal damit versuchen:
Delphi-Quellcode:
function LastDir(const sPath: string): string;
var temp: string;
    i: integer;
begin
  Result := '';
  temp := sPath;
  if temp[Length(temp)] in ['\','/'] then
    Delete(temp,Length(temp),1);
  i := Length(temp);
  while (i > 0) and not(temp[i] in ['\','/']) do
    begin
      Result := temp[i] + Result;
      dec(i);
    end;
end;

Sensationell!!! vielen dank!!!!!!!!!!!!

Deep-Sea 23. Nov 2007 10:01

Re: Directory List Box - gewählten Eintrag auslesen
 
Delphi-Quellcode:
function LastDir(const APath: String): String;
begin
  Result := ExcludeTrailingBackslash(APath);
  Delete(Result, 1, LastDelimiter(PathDelim, Result));
end;
Sollte ja auch gehen, oder? :gruebel: :P

DeddyH 23. Nov 2007 10:02

Re: Directory List Box - gewählten Eintrag auslesen
 
Ich denke schon, ob man von links löscht oder von rechts kopiert, sollte im Ergebnis das Gleiche sein ;)


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