manchr
Messages postés4Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention26 novembre 2008
-
12 nov. 2008 à 17:49
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
16 nov. 2008 à 12:48
bonjour,
Au lieu de passer par un opendialog est-il possible d'obtenir le nom d'un fichier rien qu'en cliquant dessus
par exemple une petite application qui, une fois lancée, fait apparaître le nom d'un fichier sur lequel on a cliqué
n'importe ou dans l'arborescence windows...
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 16 nov. 2008 à 12:48
function TriList(SL: TStringList; Id1, Id2: Integer): Integer;
var
Obj1, Obj2: TSearch;
begin
Obj1 := TSearch(SL.Objects[Id1]);
Obj2 := TSearch(SL.Objects[Id2]);
if Obj1.Fcr.Time < Obj2.Fcr.Time then
Result := -1
else
if Obj1.Fcr.Time > Obj2.Fcr.Time then
Result := 1
else
Result := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Fcr: TSearchRec;
SrObj: TSearch;
SL: TStringList;
i: integer;
Path: string;
begin
Path := DirectoryListBox1.GetItemPath(DirectoryListBox1.Itemindex) + '\' + '*.*';
Memo1.Clear;
SL := TStringList.Create;
try
if FindFirst(Path, faAnyFile - faDirectory, Fcr) = 0 then
begin
repeat
SrObj := TSearch.Create;
SrObj.Fcr := Fcr;
SL.AddObject(DateTimeToStr(FileDateToDateTime(Fcr.Time)) + ' - ' + Fcr.Name, SrObj);
until FindNext(Fcr) <> 0;
FindClose(Fcr);
end;
SL.CustomSort(TriList);
Memo1.Text := SL.Text;
finally
for i := SL.Count - 1 downto 0 do
SL.Objects[i].Free;
SL.Free;
end;
end;
dans cet exemple, tu sélectionne uniquement le dossier et la liste des fichiers triés apparaît dans le Memo.
ensuite, il est facile sur l'évènement double-clic ou Click du memo de tester l'item sélectionné et de le coller dans un edit :
procedure TForm1.Memo1DblClick(Sender: TObject);
begin
Edit1.Text : = Memo1.SelText;
end;