Autor |
Beitrag |
Anfänger
      
Beiträge: 128
WinXP
D3 Prof
|
Verfasst: Sa 31.01.04 15:14
Ich möchte mit meinem Programm ein weiteres Delphie-programmiertes Programm starten.
Ich habe gesucht und habe ShellExecute und ExecuteFile gefunden.
Irgendwie scheint mein Computer diese Begriffe nicht anzunehmen.
Habe überlegt, ob es vieleicht an der alten Delphi-Version liegt, aber das Hilfeprogramm kennt die Begriffe (sind alerdings keine Angaben, wie es funktioniert)
probiert hatte ich z.B.
Delphi-Quelltext 1:
| If opendialog1.execute then ShellExecute (opendialog1.Filename); |
(kennt aber wie oben schon genannt ShellExecute nicht;
Moderiert von DeCodeGuru: Topic verschoben
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 31.01.04 15:35
In den meisten Beiträgen, in denen es um ShellExecute geht, wird das Geheimnis verraten. Du musst die Unit "ShellAPI" in deine Uses-Liste aufnehmen, dann klappt´s auch.
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Sa 31.01.04 15:35
Wenn du mal nach SHELLEXECUTE gesucht hättest, hättest du auch die Lösung gefunden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| uses ..., ShellApi;
....
ShellExecute(0, 'open', pchar(OpenDialog1.Filename), nil, nil, SW_SHOW); |
|
|
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4
Win XP, gentoox
D8 Arch.
|
Verfasst: Mo 02.02.04 15:08
Wenn ich versuche (mit eingebundener ShellAPI) so shellexecute aufzurufen, bekomme ich diese fehlermeldung:
[Error] Hauptfenster.pas(245): There is no overloaded version of 'ShellExecute' that can be called with these arguments
die prozedur lautet:
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Compilelink1Click(Sender: TObject); begin ShellExecute(0,'open','d:\test.txt',nil,nil,SW_Show); end; |
Woran liegt das und wie kann ich es beheben?
Ich hoffe mal, ihr könnt mir helfen.
Moderiert von DeCodeGuru: Delphi-Tags hinzugefügt
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 02.02.04 17:10
In deinem Profil steht Delphi 8 Ar(s)chitekt ...  ... es wird vermutlich nicht funktionieren, ein VCL-Programm mit .NET schreiben zu wollen.
|
|
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4
Win XP, gentoox
D8 Arch.
|
Verfasst: Mo 02.02.04 18:06
Ich habe am Anfang schon eine "VCL Forms Application" ausgewählt, das müsste eingentlich das richtige sein, denke ich.
|
|
MaxiTB
      
Beiträge: 679
Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
|
Verfasst: Mo 02.02.04 18:15
Nop - Irrglaube.
ShellExecute ist eine Win32 API Funktion und keine VCL Funktion.
Deshalb kannst du im .NET diese Funktion auch nicht verwenden, aber da gibts eh bessere Lösungen.
Ähm - frag mich jetzt nicht welche, ich hab mein C# Büchlein zu Hause liegen und schon wieder über ein halbes Jahr nix .NETiges mehr gemacht 
_________________ Euer Mäxchen
Wer früher stirbt, ist länger tot.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 02.02.04 18:16
Kann ich nicht beurteilen, da ich noch mit D5 arbeite. Aber Delphi 8 hat sicher eine Hilfsfunktion. Und die Fehlermeldung würde ich so deuten, dass es u.U. eine ShellExecute-Funktion gibt, nur dass die Parameter nicht stimmen.
Ich bin sicher, Delphi 8 wird mit einer Hilfe ausgeliefert ... Schau doch mal, was die zum Thema ShellExecute ausspuckt. Das dürfte am schnellsten gehen, und damit könntest du der Erste werden, der das Thema "ShellExecute und .NET" hier beantwortet.
|
|
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4
Win XP, gentoox
D8 Arch.
|
Verfasst: Di 03.02.04 14:45
Ich hab schon gesucht - er findet shellexecute auch nur als Methode (heisst doch in delphi auch so?) von TCustomFileRun bzw. TFileRun.
"Add TFileRun to an action list to let your application launch an external application or dll in response to user actions."- hört sich zwar gut und genau richtig an, aber ich komm damit auch nicht zurecht.
Vielleicht könnt ihr mir ja mit der TfileRun-hilfe weiterhelfen:
Zitat: | TFileRun Class
TFileRun is the standard action for performing a specified operation on a file.
Namespace
Borland.Vcl.ExtActns
Syntax
type TFileRun = class;
Description
Add TFileRun to an action list to let your application launch an external application or dll in response to user actions. Controls linked to this action cause your application to perform the operation specified by the Operation property on the file specified by the FileName property.
Before this action fires, configure its properties to indicate what application to launch and how to launch it:
To indicate the target file to run, set the FileName property to the name of a file on which the external application operates or to the name of the application’s executable file. If you want to let the user select the file name instead when the action fires, set the Browse property to true, and an open dialog appears when the action fires.
To indicate what action to perform on the specified file, set the Operation property.
To supply parameters to the external application when it is launched, use the Parameters property.
To specify a default directory for the external application, use the Directory property.
To control how the external application’s window appears (minimized, maximized, hidden, and so on), use the ShowCmd property.
If the external application needs a parent window (to parent a dialog such as a properties dialog), or if you want to allow TFileRun to display error messages, use the ParentControl property.
Hierarchy
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
Borland.Vcl.Classes.TBasicAction
Borland.Vcl.ActnList.TContainedAction
Borland.Vcl.ActnList.TCustomAction
Borland.Vcl.ExtActns.TCustomFileRun
Properties
HInst
Methods
SetupBrowseDialog
|
[/quote]
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Di 03.02.04 15:03
In VB.NET kann man das So tun:
Quelltext 1:
| Diagnostics.Process.Start(FileName) |
Ich weiss aber nicht wie dasin D8 aussieht...
Aber auch im .NET kann man Funktionen aus der API kapseln
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Anfänger 
      
Beiträge: 128
WinXP
D3 Prof
|
Verfasst: Di 03.02.04 15:46
Beim mir funktionierts dank Wurstwasserschluerfer.
Habe ja auch nicht delphi 8
kleine Frage:
gibts das Problem nur bei Delphi 8
habe zwar keine Lösung, interessiert mich einfach.
|
|
Wurstwasserschluerfer
Hält's aus hier
Beiträge: 4
Win XP, gentoox
D8 Arch.
|
Verfasst: Di 03.02.04 15:49
Anfänger hat folgendes geschrieben: | Beim mir funktionierts dank Wurstwasserschluerfer. |
Dank mir? Hab ich denn nicht nur Fragen gestellt?
EDIT:warum werden die BBcode-tags mit den eckigen klammern dargestellt und nicht richtig?
EDIT EDIT: korrigiert
Zuletzt bearbeitet von Wurstwasserschluerfer am Di 03.02.04 17:34, insgesamt 1-mal bearbeitet
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Di 03.02.04 17:23
weil beim zweiten tag das "/" fehlt es müsste lauten
Quelltext 1:
| [quote="xyz"].....[/quote] |
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 03.02.04 18:40
Chatfix hat folgendes geschrieben: | In VB.NET kann man das So tun:
Quelltext 1:
| Diagnostics.Process.Start(FileName) |
Ich weiss aber nicht wie dasin D8 aussieht... |
Ich denke mal: genau so, oder war das nicht der große Vorteil von .NET? Ich meine, dass es auf die Sprache nicht ankommt ...
|
|
Anfänger 
      
Beiträge: 128
WinXP
D3 Prof
|
Verfasst: Di 03.02.04 18:48
Wurstwasserschluerfer hat folgendes geschrieben: | Dank mir? Hab ich denn nicht nur Fragen gestellt? |
sorry meinte Mathias Simmack
|
|