AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Öffnen mit...

Ein Thema von robinWie · begonnen am 24. Nov 2005 · letzter Beitrag vom 26. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#1

Öffnen mit...

  Alt 24. Nov 2005, 13:31
Hi,

Ich progge gerade einen Rich-Text Editor. Aber wenn ich bei rtf-Dateien einstelle das sie mit meiem Programm geöffnet werden sollen, funzt das nicht. Meine Frage: Hat einer ne Ahnung wie man das Programmieren muss damit das geht?

Danke im Voraus
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Öffnen mit...

  Alt 24. Nov 2005, 13:36
Es sollte eigentlich reichen, wenn man den ParamStr auswertet.
Hab es aber nicht probiert.
In etwa:
Delphi-Quellcode:
if ParamCount > 1 then
  if FileExists(ParamStr(1) then
    OpenFile(ParamStr(1));
Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Öffnen mit...

  Alt 24. Nov 2005, 13:41
Ergänzend dazu: Manchmal geht es dennoch nicht, fragt mich aber nicht wieso.
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Öffnen mit...

  Alt 24. Nov 2005, 13:43
Ne funzt nicht. Es kommt zwar keine Fehlermeldung, aber passieren tut auch nichts
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Öffnen mit...

  Alt 24. Nov 2005, 13:49
Bei einem leerzeichen werden die weitere Parameter hinzugefügt. Du musst es also so machen:

Delphi-Quellcode:
procedure Form1OnCreate(sender:TObject);
var i:integer;
    s:string;
begin
  if ParamCount > 1 then
  begin
    for i := 1 to paramcount-1 do
      s := s + paramsstr(i)
    if FileExists(s) then
      OpenFile(s);
  end;
end;
mit dem "for i := 1..." bin ich mir nicht so sicher, könnte auch sein das du 0 schreiben musst.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Öffnen mit...

  Alt 24. Nov 2005, 14:11
Wenn du im OnCreate des MainForms reinschreibst:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  if ParamCount > 1 then
    ShowMessage(ParamStr(1));
end;
Zeigt er dann was an?
Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Öffnen mit...

  Alt 24. Nov 2005, 14:18
Zitat:
Wenn du im OnCreate des MainForms reinschreibst:
[...]
Zeigt er dann was an?
Frank
Nein, nix wir angezeigt.

ich habe dan mal das vom "IGEL" mit 1 und O bei "FormCreate" ausprobiert
Delphi-Quellcode:
var i:integer;
    s:string;
begin
  if ParamCount > 1 then
  begin
    for i := 0 to paramcount-1 do
      s := s + ParamStr(i);
    if FileExists(s) then
      FileOpen(s); //Einge Procedure um Dateien zu öffen
  end;
end;
funzt aber nicht.
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Öffnen mit...

  Alt 24. Nov 2005, 14:26
Folgendes Beispiel funktioniert bei mir (Form mit einem TRichEdit...
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TFRMMain = class(TForm)
    EDTRtf: TRichEdit;
  private
    { Private-Deklarationen }
  public
    procedure AfterConstruction; override;
    { Public-Deklarationen }
  end;

var
  FRMMain: TFRMMain;

implementation

{$R *.dfm}

procedure TFRMMain.AfterConstruction;
begin
  inherited;
  // ShowMessage(IntToStr(ParamCount));
  if ParamCount > 0 then
    if FileExists(ParamStr(1)) then
      if UpperCase(ExtractFileExt(ParamStr(1))) = '.RTFthen
        EDTRtf.Lines.LoadFromFile(ParamStr(1));
end;

end.
Ich hatte das mit ParamCount verhauen. ParamStr(0) ist zwar der Exename, aber ParamCount zählt den nicht mit.
Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Öffnen mit...

  Alt 24. Nov 2005, 14:54
Es passiert was! Leider nich das was passieren soll. Ich erhalte die Fehlermeldung:
Die Ausnahme "Unbekannter Softwarefehler" 0x0eedfade ist in der Anwendung an der Stelle 0x7c81eb33 aufgetreten.

Ich schreibe den Editor dals MDI-Anwendung, demnach habe ich deien Code so modifizierd:
Delphi-Quellcode:
procedure TMainForm.AfterConstruction;
begin
  inherited;
  // ShowMessage(IntToStr(ParamCount));
  with TTextForm.Create(Self) do begin //MID Formular
  if ParamCount > 0 then
    if FileExists(ParamStr(1)) then
      if UpperCase(ExtractFileExt(ParamStr(1))) = '.RTFthen
        Editor.Lines.LoadFromFile(ParamStr(1));
  end;
end;
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Öffnen mit...

  Alt 24. Nov 2005, 15:14
Bei MDI kann in AfterConstruction kein Form geöffnet werden.
Ich hab es mal im onIdle der App untergebracht, da hier auf jeden Fall das MainForm vollständig erzeugt ist.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TFRMMain = class(TForm)
    procedure doAppIdle(Sender: TObject; var Done: Boolean);
  private
    procedure OpenParamFile;
    { 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.OpenParamFile;
Var
  f : TTextForm;
begin
  if ParamCount > 0 then
    if FileExists(ParamStr(1)) then
      if UpperCase(ExtractFileExt(ParamStr(1))) = '.RTFthen
      begin
        f := TTextForm.Create(Self);
        f.Editor.Lines.LoadFromFile(ParamStr(1));
        f.Show;
      end;
end;

procedure TFRMMain.doAppIdle(Sender: TObject;
  var Done: Boolean);
begin
  Application.OnIdle := nil;
  OpenParamFile;
end;

end.
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
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