Autor Beitrag
zangelo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Mi 22.12.04 23:53 
Hi
Ich bin hier neu, und lerne gerade Delphi. Ich weis nicht, ob das Thema hier passend ist, aber ich weisnicht wo hin. Ich möchte Per Button1 klick eine Datei öffen, z.B. eine HTML oder EXE Datei.
Diesen Code habe ich, und weis nicht, ob er wirklich richtig ist, und wenn ja, was da noch fehlt, wo ich den Pfad hinschreiben muss, u.s.w.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.ExecuteAction();
end;

end.

Bitte helft mir. Vielen Danke.

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Do 23.12.04 00:01 
:welcome:

Inwiefern öffnen? Im Programm oder extern. Für letzteres empfehle ich eine Forensuche nach Suche in: Delphi-Forum, Delphi-Library SHELLEXECUTE oder Suche in: Delphi-Forum, Delphi-Library CREATEPROCESS

//EDIT: falls du die Dateien in deinem Programm öffnen willst: TOpenDialog.

AXMD
zangelo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Do 23.12.04 01:01 
Danke erst mal, aber der Code Shellexecute kennt mein delphi nocht, ich will das prog, oder datei auserhalb öffnen, nicht in dem prog seler.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.12.04 01:10 
ShellExecute ist in der Unit ShellAPI deklariert. Einfach in die uses aufnehmen und du kannst die API Funktion benutzen.
zangelo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Do 23.12.04 14:13 
Und wo oder wie kann ich das aufnehmen? File -> Use Unit... ?
Aber wenn ich da drauf klicke passiert leidern nichts.
Basti
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 345

Windows Vista
D2005 Pers, D7 Pers
BeitragVerfasst: Do 23.12.04 14:16 
Du hast ganz oben in deinem Quelltext eine Zeile, die mit uses beginnt. Dann folgt eine Aufzählung. Du hängst vor dem ";" am Ende einfach ein "," dran und dann "ShellApi".

Für die Zukunft: uses ist der Befehl für die Einbindung der benötigten Bibliotheken. Er kann nur an ganz bestimmten Stellen verwendet werden. Eine Bibliothek stellt verschiedene Befehle bereit, die du dann nutzen kannst. Vorteilhaft ist das ganze, weil du dadurch dein Programm nur so groß machst, wie es auch sein muss und keine Befehle einbindest, die du eh nicht brauchst.

Warum ich das geschrieben habe? Damit du auch noch ein bisschen Theorie lernst - ich kann mich ja noch an meine Anfangszeit erinnern ;)

Moderiert von user profile iconTino: Überflüssige Absätze entfernt.

_________________
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.12.04 14:43 
ein Grundlagenbuch / -tutorial an dieser stelle zu empfehlen wäre wohl nicht das verkehrteste.

-> www.delphi-groups.de
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 23.12.04 14:47 
Hier sind die Grundlagen zu finden: www.delphi-source.de/grundlagen/
zangelo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Do 23.12.04 17:42 
Danke für eure antworten, aber ich bin viel zu dumm glaube ich, ich hab in uses jetzt ShellAPI aufgenommen, aber delphi streicht mit das ShellExecute immer noch an, was ist an dem code jetzt falsch?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.ShellExecute(handle, 'open''C:/test.txt'nilnil, SW_SHOW);

end;

end.
zangelo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Do 23.12.04 17:43 
Danke für eure antworten, aber ich bin viel zu dumm glaube ich, ich hab in uses jetzt ShellAPI aufgenommen, aber delphi streicht mit das ShellExecute immer noch an, was ist an dem code jetzt falsch?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.ShellExecute(handle, 'open''C:/test.txt'nilnil, SW_SHOW);

end;

end.


sorry, wegen dem doppelpot, find den löschbutton nicht, Sorry Tino, könntest du den post löschen?


Zuletzt bearbeitet von zangelo am Do 23.12.04 17:45, insgesamt 1-mal bearbeitet
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Do 23.12.04 17:44 
Hi!

Warum schreibst du ein "Button1." vor ShellExecute?? SO kann's ja garnicht klappen ...

Alstar
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.12.04 17:44 
Shellexecute ist keine m,ethode von deinem Button. Lass das Bitton1 mal davor weg. Wie bist du eigentlich auf die Idee gekommen das davor zu schreiben? :shock:
Benutzername
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 210

Win XP Pro
Delphi 7 PE, D2005 Prof. SSL
BeitragVerfasst: Do 23.12.04 17:46 
Du darft nicht Button1.ShellExecute schreiben, du musst das "Button1." weglassen ;-)
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Do 23.12.04 17:48 
@Benutzername: Spätestens jetzt weiß er es ... :roll:

Alstar
zangelo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Do 23.12.04 17:49 
Ist ein dummer denkfehler gewesen.

und es geht!!! Vielen Dank an alle die mir so geholfen haben!
Jelzin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mo 27.12.04 10:07 
Kleiner Tipp noch zusätzlich: ShellExecute lässt sich manchmal nicht immer nach Application.Run ausführen, zumindest mein Windows2000 blockt dann den erzeugten Prozess.

In dem Fall einfach die compilierte Exe extern starten, dann sollte es gehn.

mfg Jelzin