Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Öffnen mit... (https://www.delphipraxis.net/57636-oeffnen-mit.html)

dataspider 24. Nov 2005 15:22

Re: Öffnen mit...
 
bzw. für mehrere Dateien:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, AppEvnts;

type
  TFRMMain = class(TForm)
    ApplicationEvents1: TApplicationEvents;
    procedure doAppIdle(Sender: TObject; var Done: Boolean);
  private
    procedure OpenRTFFile(const AFileName: String);
    { Private-Deklarationen }
  public
    procedure AfterConstruction; override;
    { Public-Deklarationen }
  end;

var
  FRMMain: TFRMMain;

implementation

uses FRMText;

{$R *.dfm}

procedure TFRMMain.AfterConstruction;
begin
  inherited;
  Application.OnIdle := doAppIdle;
end;

procedure TFRMMain.OpenRTFFile(const AFileName: String);
Var
  f : TTextForm;
begin
  f := TTextForm.Create(Self);
  f.Editor.Lines.LoadFromFile(AFileName);
  f.Show;
end;

procedure TFRMMain.doAppIdle(Sender: TObject;
  var Done: Boolean);
Var
  i : Integer;
begin
  Application.OnIdle := nil;
  for i := 1 to ParamCount do
    if FileExists(ParamStr(i)) then
      if UpperCase(ExtractFileExt(ParamStr(i))) = '.RTF' then
        OpenRTFFile(ParamStr(i));
end;

end.
Frank

robinWie 24. Nov 2005 15:48

Re: Öffnen mit...
 
ES KLAPPT :hello:
Jetzt muss ich nur noch das Problem beheben das die Datei so ca. 475 mal geöffnet wird und gut!

dataspider 24. Nov 2005 16:18

Re: Öffnen mit...
 
du hast auch ganz sicher das

Application.OnIdle := nil;

in der Methode doAppIdle stehen???

Frank

robinWie 24. Nov 2005 16:51

Re: Öffnen mit...
 
Ja hab' ich. Was kommt den da hin. Ich habe mich mit den ParamStr noch nie befasst.

dataspider 24. Nov 2005 18:51

Re: Öffnen mit...
 
Also, wenn du das mit den 400 mal Öffnen der Datei nicht findest, poste mal deinen Code.
Das darf ... kann eigentlich nicht sein.
Die Funktion ParamStr(Index): String; liefert dir die an deine Exe übergebenen Parameter.
Wenn also der Aufruf etwa so erfolgt:
MyRTFEditor Hallo Ballo
...liefert ParamStr(1) Hallo und ParamStr(2) Ballo. ParamCount ist 2.
ParamStr(0) ist immer der Exename mit komplettem Pfad bei WindowsApps.
Ich nutze das Ereignis OnIdle der Applikation als Startzeitpunkt, weil hier mit Sicherheit das MainForm komplett gezeichet ist. Ein besserer Zeitpunkt fällt mir nicht ein.
Damit nur einmal das Öffnen der TextForms erfolgt, setze ich in der Methode den Zeiger von Application.OnIdle wieder auf nil (damit eben nicht die Datei 400 mal aufgemacht wird).
Wie gesagt, ich kann mir nicht vorstellen, dass es nicht funzt.

Gruß, Frank

robinWie 26. Nov 2005 15:34

Re: Öffnen mit...
 
@ dataspider: hab die den Code als pn gepostet.


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz