Entwickler-Ecke

Dateizugriff - Öffnen mit...


Andreas L. - Di 11.02.03 13:34
Titel: Öffnen mit...
Hallo,
wenn der Benutzer meines Programmes bei einer Datei mit der Endung .HTML auf Öffnen mit... klickt, und mein Proogramm auswählt soll der Inhalt der Datei im Memo1 der Anwendung erscheinen. Wie kann ich das machen?

Und wie kann ich dann mehrere Dateiendung eintragen lassen (z.B.: HTML und XML). Und wie kann ich bei falschen Endungen die Meldung "Dateiformat wird nicht unterstützt" anzeigen!

DANKE schon mal jetzt!!!!!!


maximus - Di 11.02.03 15:40

hi,

windows übergibt diese datei einfach als parameter an dein prog. Also kannst du mit paramStr(1) den dateiNamen abfragen.

Und ob dein prog das format unterstützt kannst du entweder an der endung prüfen, oder du öffnest die datei und kuckst nach :D

mfg mx


foxy - Di 11.02.03 15:49

so findest du die dateiEndung raus

Quelltext
1:
ext := ExtractFileExt(Application.ExeName);                    


oder andere variante


Quelltext
1:
ext := ExtractFileExt(ExtractFilePath(ParamStr(0)));                    


Andreas L. - Di 11.02.03 16:04

DANKE.

Muss ich den Code in den Formular reinschreiben wo das Memo ist. Wo und wie muss ich reinschreiben?


Delete - Di 11.02.03 16:06

foxy hat folgendes geschrieben:

Quelltext
1:
ext := ExtractFileExt(ExtractFilePath(ParamStr(0)));                    

:?

Quelltext
1:
2:
3:
paramstr(0)                      = "c:\lastcrap\test.html"
ExtractFilePath -> paramstr(0)   = "c:\lastcrap"
ExtractFileExt  -> "c:\lastcrap" = ?

:wink: Die "andere Variante" wäre also einfach nur

Quelltext
1:
ext := ExtractFileExt(paramstr(0));                    


foxy - Di 11.02.03 16:06

du musst doch bestimmt wo drauf klicken, um das ein zu fügen, wenn ja dann amchste das in die onclick procedure

mit if blabla = '.xml' then
xxx

hilft dir das??


Delete - Di 11.02.03 16:19

Was soll das im "OnClick" bringen?

Immerhin klickt er die HTML- oder XML-Datei im Explorer an und erwartet, dass sein Programm startet. So weit, so gut. Wenn du die Anzeige jetzt im "OnClick" übernimmst, kannst du auf die Integration im Explorer auch verzichten.

IMHO, das Anzeigen der Datei gehört ins "OnCreate":

Quelltext
1:
2:
if(paramcount = 1) and (fileexists(paramstr(1))) then
  Memo1.Lines.LoadFromFile(paramstr(1));


Delete - Di 11.02.03 16:31

Außerdem muss selbstverständlich die Endung des ersten Parameters geprüft werden. Also:

Quelltext
1:
if(ExtractFileExt(paramstr(1)) = '.html') ...                    

bswp. Die Idee von foxy

Quelltext
1:
ext := ExtractFileExt(Application.ExeName);                    

wird immer einen Fehler verursachen, weil du damit nur die Endung ".EXE" deines Programms erhältst, @onlinehome.


Andreas L. - Di 11.02.03 18:18

DANKE an euch!