![]() |
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! |
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. |
Re: FileOpen
Schau mal nach
![]() |
Re: FileOpen
Delphi-Quellcode:
oder noch einfacher:
var
sl:tstringlist; begin sl:=tstringlist.create; sl.LoadfromFile(Formwasauchimmer.edit1.Text); ...... { Hier eintragen was auch immer Du machen willst} sl.free; end;
Delphi-Quellcode:
Ist es das was Du suchst?
procedure xxxxxbutton1click
begin Memo1.Lines.loadfromfile(Edit1.text); end; Gruß K-H |
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. |
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 |
Re: FileOpen
Hallo,
der Hinweis von mkinzler auf Shellexecute scheint hier genau der passende zu sein. |
Re: FileOpen
Allerdings muss dazu mindestens die Endung mit eingegeben werden, in dem meisten Fällen wohl eher der vollständige Dateipfad.
|
Re: FileOpen
Also führt
Delphi-Quellcode:
ein Programm aus?
ShellExecute(Handle, nil, 'meine.exe', nil, nil, SW_SHOW);
Was muss ich für 'meine.Exe' einsetzeen? NUr den Namen der exe oder auch den Pfad? |
Re: FileOpen
Wenn die Datei im Suchpfad bzw. im aktuellen Verzeichnis liegt, kannst Du den Pfad weglassen, ansonsten nicht.
|
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.
|
Re: FileOpen
sry aber ich brauche noch etwas erklärung
|
Re: FileOpen
Und wozu genau?
|
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
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
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...; |
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.
|
Re: FileOpen
Für den Beginn (!) würde ich es so machen:
Delphi-Quellcode:
Beachte dass du für ShellExecute in der 'uses' shellapi hinzufügen musst, sonst findet der Compiler den Befehl nicht.
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; 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: |
Re: FileOpen
Geht doch so schon unter jeder Windows-Version.
Start -> Ausführen... Noch schicker wurde es mit Vista/Win 7 fertig :mrgreen: |
Re: FileOpen
[WIN]-R geht schneller ;)
|
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:
|
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:01 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 by Thomas Breitkreuz