Newsgroup: it.comp.lang.delphi
Titolo: shell execute, forse passo male qualche parametro?!

Ciao a tutti
In questa procedura vorrei mandare in esecuzione, con un doppioclick su un 
elemento presente nella listview il file stesso! pero' non esegue nulla!!!
procedure TForm1.ListView1DblClick(Sender: TObject);       //funzione che 
con il doppio click sul file presente nel listview1 lo esegue
var
files, filespath: string;
begin
  files:= ListView1.Selected.Caption;
  confrontafile(Combobox1.Text, files);
  filespath:= stack3;                       // questo filepath contiene ad 
esempio c:\programmi\cartella\file.txt per esempio
  if FileExists(files) then
  ShellExecute(0, 'open', PChar(filespath), nil, nil, SW_SHOWNORMAL);
end;
Grazie
Daniel 

Daniel Magrini ha scritto:

Ciao io la uso così e funziona:
ShellExecute(Handle, 'open', PChar(nomefile), nil, PChar(percorso),
SW_SHOW);
oppure
ShellExecute(Handle, 'open', PChar(filespath), nil, nil, SW_SHOW);
Ciao

Ciao
Hai ragione e dovrebbe funzionare ho capito perche' non va:
E' la funzione qui sotto che mostro che nn va! Non capisco perche' mi 
riporti il percorso di dove si trova il file sbagliato cioe' mettiamo che 
gli passi la path d:\miacartella\miofile.exe lui mi ritrova il file dicendo 
che il percorso sia c:\borland\delphi7\projects\miofile.exe, ma non capisco 
il motivo???!!!
Potete dare un 'occhiata alla funzione, non riesco a capire il problema, con 
questa passo acnhe la dimensione e la data del file e quelli sono ok!!??
________________________________________________________________________________________________
procedure confrontafile(Path: String; files: string);                   // 
QUI PASSO LA PATH CORRETTA DEL FILE, E IL FILE STESSO!!!
var
TSC: TSearchRec;
 begin
  try
    if FindFirst(Path+'\*.*', faAnyFile, TSC) = 0 then
    begin
      repeat
        if (TSC.Name <> '.') and (TSC.Name <> '..') then
        begin
          if ((TSC.Attr and faDirectory) <> 0) then
           begin
           confrontafile(path+'\'+TSC.Name, files);
           end
          else
           if StrComp(PChar(Files), PChar(TSC.Name)) = 0 then //condizione 
che confronta il file passato alla procedura chiamata
 
                    //dal doppio click nel treeview1
            begin
            stack3:= ExpandFileName(TSC.Name); 
//riporta il file con la sua path per esteso
            showmessage(stack3); 
//mostra :  "c:\borland\delphi7\projects\miofile.exe"  invece di 
"d:\miacartella\miofile.exe"
            Application.ProcessMessages;
            Stack1:= (IntToStr(TSC.Size)); 
//assegna alla variabile la dimensione del file
            stack2:=DateTimeToStr(FileDateToDateTime(TSC.Time)); 
//assegna alla variabile la data del file
            end;
         end;
      until FindNext( TSC ) <> 0;
    end;
____________________________________________________________________________________________________________
Grazie a tutti
Daniel 

 Potete dare un 'occhiata alla funzione, non riesco a capire il problema
Parlo x me:
facciamo che mentre guardo la tua tu mi fai il debug di quello che IO
sto facendo in questo momento?? Dimmi di si......! :-))
A.


 Intanto dai un clpo d'occhio alla mia funzione, poi quando divento bravo, 
prometto di farti un tuo debug! :D
Ciao
Daniel