![]() |
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 |
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 :)
|
Re: Durchsuchenbefehl, um eine Datei auszuwählen
Hab ich schon gesehen ... nur weiß ich nicht so recht wie das funktioniert :(
|
Re: Durchsuchenbefehl, um eine Datei auszuwählen
ganz einfach:
Delphi-Quellcode:
if OpenDialog1.Execute then
EditDatei.Text := OpenDialog1.FileName; |
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:
machen, oder?
var
pfad: string; {...} pfad := Edit1.Text; Dann könnte ich die Variable in den ShellExecutebefehl reinstecken und mein Programm würde starten,, oder? :gruebel: |
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.
|
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),.....);
|
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); |
Re: Durchsuchenbefehl, um eine Datei auszuwählen
Also ich hab es jetzt so gemacht:
Delphi-Quellcode:
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?
ShellExecute(Application.Handle, 'open', PChar(pfad), nil, nil, SW_SHOW)
|
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 ( ![]() [/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr. |
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