Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Durchsuchenbefehl, um eine Datei auszuwählen (https://www.delphipraxis.net/100148-durchsuchenbefehl-um-eine-datei-auszuwaehlen.html)

spox 23. Sep 2007 12:49


Durchsuchenbefehl, um eine Datei auszuwählen
 
Hallo!
Vorab: Ich bin nicht sicher, ob ich hier richtig bin. Es geht hier um einen Durchsuchenbefehl, das ist doch im Prinzip eine Systemfunktion (hab ich mir gedacht). Wie auch immer.

Ich bräuchte einen Durchsuchenbefehl, wo man eine Exe auswählt, die man daraufhin mit ShellExceute startet. Doch dafür bräuchte ich erstmal einen Befehl, um die Exe überhaupt auszuwählen. Ich habe einen Editfeld und daneben einen Durchsuchenbutton. Wenn man Durchsuchen anklickt, öffnet sich eine neue Form, bei dem ein ShellTreeView als wesentlicher Bestandteil dient. Doch wie kann ich jetzt die Datei auswählen und den Pfad (z.B.: C:/Programme/test.exe) in das Edit-Feld einträgt? :coder2:

P.S.: Ich hab Delphi 6

Nikolas 23. Sep 2007 12:57

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Ich würde dir zu einem fertigen Dialog TOpenDialog (oder so ähnlich) raten. Da hast du alles schon fertig :)

spox 23. Sep 2007 13:03

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Hab ich schon gesehen ... nur weiß ich nicht so recht wie das funktioniert :(

SirThornberry 23. Sep 2007 13:08

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
ganz einfach:
Delphi-Quellcode:
if OpenDialog1.Execute then
  EditDatei.Text := OpenDialog1.FileName;

spox 23. Sep 2007 13:16

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Super Danke! :thumb:

Hat geklappt!
Um den Pfad jetzt in eine Variable zu speichern müsste ich doch einfach

Delphi-Quellcode:
var
pfad: string;

{...}

pfad := Edit1.Text;
machen, oder?

Dann könnte ich die Variable in den ShellExecutebefehl reinstecken und mein Programm würde starten,, oder? :gruebel:

Nikolas 23. Sep 2007 13:22

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Warum machst du dann noch den Umweg über das edit? Schau dir auch mal die eigenschaft 'Filter' an, da kannst du einstellen, dass ausschließlich Exen angezeigt werden und nicht z.B. txt-Dateien.

SirThornberry 23. Sep 2007 13:22

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
genau. Da Shellexecute aber einen PChar erwartet und kein String musst du noch casten
Delphi-Quellcode:
ShellExecute(..., PChar(Variable),.....);

dominikkv 23. Sep 2007 13:22

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
direkt kannst du das auch so machen:
Delphi-Quellcode:
if OpenDialog1.execute then
  shellexecute(handle, 'open', PChar(OpenDialog1.FileName), Nil, Nil, sw_show);

spox 23. Sep 2007 13:33

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Also ich hab es jetzt so gemacht:
Delphi-Quellcode:
ShellExecute(Application.Handle, 'open', PChar(pfad), nil, nil, SW_SHOW)
Doch es startet leider nicht das Programm ... Es wird lediglich mein Delphiprogramm minimiert ... Kann das daran liegen, dass das auswählen der Datei und der Startbutton auf verschiedenen Form's liegen?

Christian Seehase 23. Sep 2007 13:37

Re: Durchsuchenbefehl, um eine Datei auszuwählen
 
Moin Spox,

wenn das Programm nicht startet, solltest Du mal den Inhalt von Pfad überprüfen.
Was das Minimieren Deines Programmes angeht: Ersetz mal Application.Handle durch self.Handle oder trag einfach eine 0 ein.

[EDIT]
Ausserdem könntest Du mal den Rückgabewert von ShellExecute prüfen.
Ist der > 32 war der Aufruf erfolgreich, ansonsten könnte Dir die Auflistung der möglichen Rückgabewerte hier (MSDN-Library durchsuchenShellExecute) weiterhelfen.
[/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz