Delphi-PRAXiS

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/)
-   -   Prism Datei automatisch anzeigen lassen (https://www.delphipraxis.net/67928-datei-automatisch-anzeigen-lassen.html)

richie 21. Apr 2006 23:35


Datei automatisch anzeigen lassen
 
Hallo Leute!

Nachdem ich heute schon ein kleines Problem mit meinem Programm hatte, hab ich noch eine weitere Frage. Es geht darum, dass ich mein selbstgeschriebens Programm, welches RTF-Dateien bearbeiten kann (praktisch als Editor), als Standartprogramm definiere. Öffne ich jetzt eine *.rtf-datei, öffnet sich das Programm. Allerdings wird die Datei nicht automatisch geöffnet. Wie kann ich nun lesen, welche Datei angeklickt wurde, um diese gleich zu öffnen? :?:

Ich hoffe ihr versteht mich! :oops:

P.S.: Wenn ich bei diesem Öffne-mit-Dialog mein eigenes Prog auswähle, hat dieses keine Beschriftung. :shock: Wie kann ich das ändern? Der Formtitel und Programmnamen tun's ja nicht.

Luckie 22. Apr 2006 00:04

Re: Datei automatisch anzeigen lassen
 
Die Datei wird als erster Parameter übergeben. Im Application Namespace dürfte eine Methode zu finden sein, die dir die Parameter ausliest.

richie 22. Apr 2006 10:31

Re: Datei automatisch anzeigen lassen
 
Der Namespace "Application" ist nicht vorhanden. Hat sonst keiner eine Idee? :(

richie 22. Apr 2006 20:32

Re: Datei automatisch anzeigen lassen
 
Hat keiner eine Ahnung?
Könnte es sein das ich den Namespace System.IO brauche? :?:

Phistev 22. Apr 2006 20:43

Re: Datei automatisch anzeigen lassen
 
Delphi-Referenz durchsuchenBorland.Delphi.System.ParamStr(1) ist das, was du brauchst.

/edit: Oder Delphi-Referenz durchsuchenSystem.Environment.GetCommandLineArgs

richie 22. Apr 2006 21:01

Re: Datei automatisch anzeigen lassen
 
Danke, das war's! :thumb:

:dp:

Phistev 22. Apr 2006 21:16

Re: Datei automatisch anzeigen lassen
 
Nachtrag: Die Beschriftung kannst du im Quelltext des Projektes einstellen (etwa Zeile 40)
Delphi-Quellcode:
[assembly: AssemblyTitle('Test-Anwendung')]

richie 22. Apr 2006 21:41

Re: Datei automatisch anzeigen lassen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mh, das scheint es nicht zu sein, jedenfalls stellt sich keine Änderung ein. Ich hab mal ein Bild angehangen, aber das ist jetzt nicht mehr das Problem, ich kann auch so damit leben. :wink:

Phistev 22. Apr 2006 21:54

Re: Datei automatisch anzeigen lassen
 
Das macht der Cache von Windows (HKEY_CURRENT_USER\Software\Microsoft\Windows\Shel lNoRoam\MUICache). Löschen und gut is.

ichbins 22. Apr 2006 22:03

Re: Datei automatisch anzeigen lassen
 
Probier mal eine Datei namens

C:\Test Datei.txt zu öffnen (mit Leerzeichen dazwischen).

Das wird nicht funktionieren.

Paramstr(1) wird 'C:\Test' und Paramstr(2) 'Datei.txt' sein.

du musst die paramstrs (mit Leerzeichen dazwischen) solange aneinanderkleben bis der paramstr(next) leer ist.


//edit:

zu deinem neuen Problem: bei Delphi4Win32 gibt's unter Projektoptionen eine Seite wo du Metadaten für deine EXE eingeben kannst. Vllt. gibts das ja auch unter .NET.

Phistev 22. Apr 2006 22:08

Re: Datei automatisch anzeigen lassen
 
Oder man schreibt bei der Zuordnung "%1", dann hat sich das auch erledigt.

richie 23. Apr 2006 11:53

Re: Datei automatisch anzeigen lassen
 
ichbins:

hab das jetzt so gelöst:

Delphi-Quellcode:
procedure TWinForm.TWinForm_Load(sender: System.Object; e: System.EventArgs);
var
  PrmStr : integer;
begin
  RichTextBox1.Clear;
  if Borland.Delphi.System.ParamStr(1) = '' then   //Testen ob mittels Datei geöffnet wird
  begin                                             //wenn nicht, ein paar Initalisierungen
    SaveFileName := '';
    OpenFileName := '';
    MenuItemRedo.Enabled := false;
    MenuItemUndo.Enabled := false;
  end
  else                                              //sonst Dateipfad lesen
  begin
    PrmStr := 1;
    OpenFileName := '';
    repeat
        OpenFileName := Borland.Delphi.System.ParamStr(PrmStr) + ' ';
        PrmStr := PrmStr + 1;
    until Borland.Delphi.System.ParamStr(PrmStr) = '';
    RichTextBox1.LoadFile(OpenFileName);            //öffnen
  end;
end;
Ist das so gut gelöst?

Bei den Projektoptionen könnte man einen Titel eingeben, dass ist aber irgendwie deaktiviert. :gruebel:


phistev:

1. Ich hab keine Ahnung von der Registry. Kann ich das da einfach löschen?

2. Was für eine Zuordnung meinst du? :gruebel:

Phistev 23. Apr 2006 12:11

Re: Datei automatisch anzeigen lassen
 
zu 1.: AFAIR den Eintrag ja

zu 2.: Extras -> Ordneroptionen -> Dateitypen -> <Dein Typ> -> Erweitert -> open

xZise 23. Apr 2006 12:15

Re: Datei automatisch anzeigen lassen
 
  • Start
    Ausführen
    "regedit" (Enter)
    HKCR (HKEY_CLASSES_ROOT)
    Endung suchen
    Wert von Standard suchen
    Shell >>> Open >>> Command
    Wert von Standard folgendermaßen setzten: "Pfad der exe" "%1"
(Info zum Wert setzen: Den Pfad in "" setzen!)

Beispiel an ".FMap"
Ab Schritt4:
Ich suche .FMap
Der Wert ist "FreggelsMap" und suche den.
Dann gehe ich auf die Ordnerstruktur: Shell - Open - Command (nun: HKCR/FreggelsMap/Shell/Open/Command)
Ich setzte den Wert von Standard auf: "C:\Programme\Freggels\MapEditor.exe" "%1"
fertig!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 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