Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   FileOpen (https://www.delphipraxis.net/142900-fileopen.html)

Reap3r 5. Nov 2009 19:01


FileOpen
 
Hallo!

Ich will in ein Programm einbauen, dass per Buttenclick ein dateiname aus einem edit ausgelesen wird und anschließend geöffnet wird!

d.h. Ich gebe z.B. delphi in das edit ein, drücke dann den button und es wird delphi geöffnet.

wie mache ich das?(sry bin noch anfänger)

Wäre über Beispiel im Code dankbar!

himitsu 5. Nov 2009 19:07

Re: FileOpen
 
Erstmal:
OH > FileOpen
Die Verwendung der nicht-nativen Delphi-Dateiroutinen wie FileCreate ist nicht zu empfehlen.


Und dann:
- um was für eine Datei handelt es sich
- und wohin soll sie geladen werden, bzw. was willst du damit machen?

TFileStream, TStringList, usw. ..... es gibt tausende Möglichkeiten, jenachdem, was man genau will.

mkinzler 5. Nov 2009 19:08

Re: FileOpen
 
Schau mal nach Delphi-Referenz durchsuchenShellExecute

p80286 6. Nov 2009 10:21

Re: FileOpen
 
Delphi-Quellcode:
var
  sl:tstringlist;


begin
  sl:=tstringlist.create;
  sl.LoadfromFile(Formwasauchimmer.edit1.Text);
  ...... { Hier eintragen was auch immer Du machen willst}
  sl.free;
end;
oder noch einfacher:

Delphi-Quellcode:
procedure xxxxxbutton1click
begin
  Memo1.Lines.loadfromfile(Edit1.text);
end;
Ist es das was Du suchst?

Gruß
K-H

Reap3r 6. Nov 2009 16:32

Re: FileOpen
 
Dateityp: Es sollen mehrere Dateitypen geöffnet bzw. ausgeführt werden können!
Außerdem sollen die Dateien, Programme nicht in Delphi geöffnet bzw. ausgeführt werden, sondern extern.
d.h. wenn ich z.B. Firefox starten will gebe ich in das Edit/Memo Firefox ein und es wird firefox gestartet.

p80286 6. Nov 2009 16:44

Re: FileOpen
 
Also du möchtest so ein bißchen was wie ein Menue?

"autoexec" die Autoexec.bat wird zur Anzeige geöffnet!?
oder soll sie ausgeführt werden?

oder was ist mit .xml-Dateien wie willst Du mit denen umgehen?
Ich schau die mir meist in einem Editor an.

Gruß
K-H

Jens Schumann 6. Nov 2009 17:27

Re: FileOpen
 
Hallo,
der Hinweis von mkinzler auf Shellexecute scheint hier genau der passende zu sein.

DeddyH 6. Nov 2009 17:29

Re: FileOpen
 
Allerdings muss dazu mindestens die Endung mit eingegeben werden, in dem meisten Fällen wohl eher der vollständige Dateipfad.

Reap3r 6. Nov 2009 17:42

Re: FileOpen
 
Also führt

Delphi-Quellcode:
ShellExecute(Handle, nil, 'meine.exe', nil, nil, SW_SHOW);
ein Programm aus?

Was muss ich für 'meine.Exe' einsetzeen? NUr den Namen der exe oder auch den Pfad?

DeddyH 6. Nov 2009 17:44

Re: FileOpen
 
Wenn die Datei im Suchpfad bzw. im aktuellen Verzeichnis liegt, kannst Du den Pfad weglassen, ansonsten nicht.

mkinzler 6. Nov 2009 17:45

Re: FileOpen
 
Wenn die exe im Suchpfad von Windows liegt reicht der Name sonst mit kompletten Pfad. Neben Exev kann man auch Dateien mit registrierten Endungen angeben; es werden dann die verknüpften Anwendungen gestartet.

Reap3r 6. Nov 2009 18:21

Re: FileOpen
 
sry aber ich brauche noch etwas erklärung

DeddyH 6. Nov 2009 18:22

Re: FileOpen
 
Und wozu genau?

isilive 6. Nov 2009 18:33

Re: FileOpen
 
Reaper, du kannst hier gerne konkrete Fragen stellen, aber bitte erwarte nicht dass dir hier alles vorgekaut wird. Momentan weiss keiner was genau du machen willst bzw. bei welchem Problem du gerade "hängst".

Wenn ich meine Glaskugel raushole, dann vermute ich dass du ShellExecute brauchen wirst und dass du die volle Pfadangabe der Programme mitreinhängen wirst müssen, so wie das hier schon gepostet wurde.

DP-Maintenance 6. Nov 2009 18:35

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

Reap3r 6. Nov 2009 18:57

Re: FileOpen
 
Also! Entschuldigung für meine Ungenauigkeit!

Also nochmal.

Aufgabe des Programms: Aus einem edit soll ein Wort ausgelesen werden.
Dieses Wort sagt dem Programm, dass eine Datei geöffnen bzw.
eine Anwendung ausgeführt werden soll.
Sodass ich ein Programm habe, von dem ich viele häufig benutzte Programme ausführen kann bzw dateien öffnen kann.

Man gibt also z.B. in das edit firefox ein und er startet firefox...

Mein Problem ist nun, dass ich nicht weiß, wie ich schreibe, dass etwas geöffnet / ausgeführt wird.

Ich weiß nicht wie es geht, aber vll könnte es ja so aussehen:

Delphi-Quellcode:
if edit1.text = 'Name des Programms/ Datei'
then ...öffne die Datei/ Strarte das Programm...;

DeddyH 6. Nov 2009 19:01

Re: FileOpen
 
Ich würde mir dazu eine Favoritenliste erstellen. Da kommt dann der Name und der komplette Pfad rein (also quasi ein Alias). Diese Aliase könnte man dann schön in einer ComboBox/Listbox oder so darstellen.

isilive 6. Nov 2009 19:08

Re: FileOpen
 
Für den Beginn (!) würde ich es so machen:

Delphi-Quellcode:
var befehl:string;
begin
  if edit1.text = 'firefox' then befehl := 'Pfad zu Firefox';
  if edit1.text = 'delphi' then befehl := 'Pfad zu Delphi';

...

  ShellExecute(Handle, nil, PChar(befehl), nil, nil, SW_SHOW);
end;
Beachte dass du für ShellExecute in der 'uses' shellapi hinzufügen musst, sonst findet der Compiler den Befehl nicht.

Wenn dies einmal funktioniert wäre es sicher schöner/einfacher wenn du dann auf eine Combobox umsteigst. Dort kannst du die Einträge dann komfortabel auswählen. :zwinker:

Sir Rufo 6. Nov 2009 19:14

Re: FileOpen
 
Geht doch so schon unter jeder Windows-Version.

Start -> Ausführen...

Noch schicker wurde es mit Vista/Win 7

fertig :mrgreen:

DeddyH 6. Nov 2009 19:16

Re: FileOpen
 
[WIN]-R geht schneller ;)

isilive 6. Nov 2009 19:21

Re: FileOpen
 
Gut, aber ich möchte nicht wissen wie viele Programme hier in der DP übrigbleiben, wenn ich alle weglasse die es schon gibt / die man praktischer lösen kann :mrgreen: :dp:

Reap3r 6. Nov 2009 20:28

Re: FileOpen
 
Danke!

Isilve hast mir sehr geholfen!

Danke für eure Hilfe!

Habs jetzt raus. :-D


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