Autor Beitrag
Radioactive
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: So 09.01.05 17:33 
Hi,

ich benutze Delphi 7 und es nervt mich total, wenn ich z.B. die Delphi-Hilfe geöffnet habe und dann die Win-SDK-Hilfe öffnen will, dass dann die Delphi-Hilfe geschlossen wird. Also habe ich folgendendes Programm geschrieben, dass ich unter D7 als Tool eingefügt und als Parameter Pfad+Dateiname zur Hilfe-Datei übergebe.
Nun die Frage:

Passt das so?

Ich kann nämlich auch "Application.Run" vollkommen weglassen und es funtioniert trotzdem. Soll ich es stehen lassen? Brauche ich es? (ich will einen möglichst kurzen und sauberen Quelltext) Oder soll ich "Application.Initialize" auch weglassen und nur den ShellExecute-Befehl stehenlassen?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
program Help;

uses
  Forms, ShellAPI, SysUtils, Windows;

{$R *.res}

begin
  Application.Initialize;
  Application.Run;
  ShellExecute(Application.Handle,'open',PChar(ExtractFileName(ParamStr(1))),nil,PChar(ExtractFilePath(ParamStr(1))),SW_SHOW);
  Application.Terminate;
end.

Thx for your Help and Time :-)

EDIT: Unnötige Zeilenumbrüche entfernt


Zuletzt bearbeitet von Radioactive am So 09.01.05 17:44, insgesamt 1-mal bearbeitet
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 09.01.05 17:44 
Hallo Radioaktiv,

wenn du eh nur den einen Befehl ausführen möchtest, dann erstell doch einfach ein Konsolenprogramm (wie früher). Wenn dir die Konsole nicht gefällt, kannst du ja einfach die Compilerdirektive weglassen. Dann einfach den Befehl ausführen und fertig, dass Programm wird deutlich kleiner sein.

Bei deinem aktuellen Programm kannst du das Application.Run getrost weglassen, da diese die Nachrichtenschleife der Anwendung startet und du brauchst diese ja gar nicht, da du jediglich den Befehl ausführen möchtest.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Radioactive Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: So 09.01.05 17:46 
Brauche ich Application.Initialize und Application.Terminate?
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: So 09.01.05 21:18 
Schreib doch einfach nur das rein, was du machen willst ;)
Das wäre dann lediglich der Aufruf von ShellExecute. Und als Units musst du dann auch nur Windows und Messages einbinden.

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind