Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei?!?!?!??! (https://www.delphipraxis.net/2603-datei.html)

eddy 30. Jan 2003 19:38

Hallo Daniel B,

vielen Dank für den Link !! Hier muß keiner dumm sterben, selbst ich nicht!

Habe meinen Programmpunkt angepaßt:

Delphi-Quellcode:
begin
  s := AppBkSp(DokuPath) + 'Hinweis1.doc';
  ShellExecute(Handle, nil, PChar(s), nil, nil, SW_SHOW);
end;
Positiver Nebeneffekt: man landet sofort in Word, in der Version mit WinExec wurde Word zwar gestartet, aber mein Programm behielt den Focus.


Hallo Chakotay1308,

beim nächsten Mal bitte eine Link :P :mrgreen:
Hab' die 5 Seiten durchgesehen, man könnte denken, Ihr seid alle nicht ausgelastet ... Auch wenn es "nur" Klatsch & Tratsch ist, ich habe mich köstlich amüsiert. Wenn ich gewußt hätte, wieviel Spaß man bei Euch haben kann, hätte ich mich schon viel eher im Forum gemeldet. Ich werd' mir wohl auch noch so einen Namen zulegen: pkg2000 !!!


mfg
eddy

Daniel B 30. Jan 2003 19:46

Hallo eddy,
Zitat:

Zitat von eddy
Hier muß keiner dumm sterben, selbst ich nicht!

Natürlich nicht. :mrgreen:
Zitat:

Positiver Nebeneffekt: man landet sofort in Word, in der Version mit WinExec wurde Word zwar gestartet, aber mein Programm behielt den Focus.
Auch eines der Gründe, warum Borland sagt das man WinExec nicht mehr benutzen soll.
Heute hab ich auch noch in der D3Prof. Hilfe folgendes gefunden:
Zitat:

Die Windows-API verfügt über eine Funktion namens ShellExecute, die Anwendungen ausführt. Dafür sind jedoch viele Parameter erforderlich, die in Anwendungen unter Delphi überflüssig sind. Die Unit FMXUtils stellt eine besser einsetzbare Alternative namens ExecuteFile zur Verfügung.
ExecuteFile arbeitet auf zweierlei Weise. Wird der Name einer ausführbaren Datei übergeben, führt ExecuteFile diese Anwendung aus. Wird der Name eines Dokuments, das mit einer Anwendung verknüpft ist, übergeben, führt ExecuteFile die Anwendung aus und öffnet das Dokument automatisch mit der Anwendung.
Habe es aber selbst noch nie probiert.

Grüsse, Daniel :hi:

Luckie 30. Jan 2003 19:48

Zitat:

Zitat von eddy
"einfach mal suchen" ist super, aber eine Begründung und ein Beispiel wären mir lieber

Beispiel steht mit in der Library, wenn ich mich nicht irre.
Zitat:

(am Besten gleich mit meinen Vorgaben).
So nicht. :warn: Wir helfen gerne bei Problemen, aber erwarte nicht, dass wir dir dein Programm programmieren. Wenn du dein Programm programmiert haben willst, dann wende dich an eine Software-Firma, die induvidual Software entwickelt.
Zitat:

Ich bin schon zufrieden, daß die WinExec-Version funktioniert!! Und der gefundene Hilfetext für ShellExecute hilft mir nicht wirklich weiter (entspricht nicht meiner Logik oder ich bin zu dummdumm).
Ich weiß nicht, wo du gekuckt hast, aber wenn man etwas englisch kann, sollte der Text mit dem Beispiel klar werden.

eddy 30. Jan 2003 21:14

Hallo Daniel B,

habe jetzt auch noch ExecuteFile ausprobiert. Die PAS-Datei ist unter ...\Delphi5\Demos\Doc\Filmanex vergraben. Parameter haber ich unter
http://tipp.delphiclub.de/Scripts/Sh...pID=34&KatID=3 unter Nutzung von Google gefunden, da meine Hilfe (F1) nichts geliefert hat.

Delphi-Quellcode:
begin
  s := AppBkSp(DokuPath) + 'Hinweis1.doc';
//  ShellExecute(Handle, nil, PChar(s), nil, nil, SW_SHOW);
  ExecuteFile( s,'','',SW_SHOW);
end;
Interessanterweise wird in dem entsprechenden Programmteil ebenfalls ShellExecute aufgerufen:

Delphi-Quellcode:
function ExecuteFile(const FileName, Params, DefaultDir: string;
  ShowCmd: Integer): THandle;
var
  zFileName, zParams, zDir: array[0..79] of Char;
begin
  Result := ShellExecute(Application.MainForm.Handle, nil,
    StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
    StrPCopy(zDir, DefaultDir), ShowCmd);
end;
Optisch sieht es auf jeden Fall besser aus.



Hallo Luckie,

ist wohl heute nicht Dein Tag!!

Du irrst nicht, DanielB hat weiter oben doch den Link eingeblendet. Weder ShellExecute noch WinExec waren das Problem - nur ein Gedankenaustausch!
Deine Reaktion über meinen Wunsch: "Am besten gleich mit meinen Vorgaben" ist auch überzogen, aber ich schreibe beim nächsten Mal dahinter, wenn ich Spaß mache. Außerdem ist meinem Text von 20:38 ja zu entnehmen, daß ich es geschafft habe, meine Vorgaben selbst einzusetzen. Nirgendwo stand etwas in der Art: Programmiert mir doch bitte mein Programm .... Vielleicht schießt Du ja öfters Mal mit Kanonen auf Spazen! Wünsche wird man wohl noch äußern dürfen, auch wenn manche nicht in Erfüllung gehen.

Was das Beispiel betrifft: ich habe nicht weit genug gescrollt, die Beispiele habe ich erst gefunden, nachdem ich Deine Bemerkungen gelesen hatte.

Ich hoffe, das war es nun zu diesem wenig effektiven Teil.

An beide:
mfg
eddy

Daniel B 30. Jan 2003 21:29

Hi eddy,
Zitat:

Zitat von eddy
habe jetzt auch noch ExecuteFile ausprobiert. Die PAS-Datei ist unter ...\Delphi5\Demos\Doc\Filmanex vergraben.

Ja tatsächlich, habe ich auch unter D6PE und D3Pro. :P

[Code snippsel gesnippt]
Ja macht Sinn, man muss nur weniger Parameter übergeben. Eigentlich nicht schlecht, man müsste sich noch die Unit anschauen, was noch dabei ist, sonst hat man nur deswegen wieder eine Unit eingebunden die das Programm nur grösser macht.
Muss ich mir mal in Ruhe anschauen.
Danke für die Info!http://n-digital.info/Bilder/daumen.gif

Grüsse, Daniel :hi:

Luckie 30. Jan 2003 21:35

Kuckt euch mal an, was ExecuteFile macht:
Delphi-Quellcode:
function ExecuteFile(const FileName, Params, DefaultDir: string;
  ShowCmd: Integer): THandle;
var
  zFileName, zParams, zDir: array[0..79] of Char;
begin
  Result := ShellExecute(Application.MainForm.Handle, nil,
    StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
    StrPCopy(zDir, DefaultDir), ShowCmd);
end;
Und was ist so schwer daran Shellexecute aufzurufen? :roll:

Daniel B 30. Jan 2003 21:40

Naja, man übergibt drei Parameter weniger.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Seite 2 von 2     12   

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