Autor |
Beitrag |
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Mo 23.06.08 00:01
HI,
ich hab mir n Prog geschrieben wo man die Sachen die man erstellt hat in ner Datei speichern kann. Die Datei hat n eigenen Typ von mir bekommen, also keinen dem Windows schon kennt.
Nun die Frage: Ist es möglich beim Doppelklick auf die Datei das Programm zu öffnen und gleichzeitig die Datei zu laden?
Wenn ja, wie geht das?
Schonma danke für die Hilfe.
MfG & Thx Bergmann.
Moderiert von Christian S.: Überflüssige Zeilenumbrüche entferntModeriert von Christian S.: Topic aus VCL (Visual Component Library) verschoben am Mo 23.06.2008 um 00:03
|
|
optikandy
      
Beiträge: 20
|
Verfasst: Mo 23.06.08 00:25
du kannst bei windows einstellen, dass sich dateien mit bestimmten endungen auch mit bestimmten programmen öffnen lassen...
z.B. ".doc" wird normal mit "microsoft word" geöffnet... du kannst es aber auch so einstellen, dass diese datei mit dem programm von open office geöffnet wird.
aber keine ahnung, wie der diese datei dann auch laden kann...
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 23.06.08 00:30
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Mo 23.06.08 00:46
HI,
wie man das im Win-Explorer ändert weiß ich, aber ich wollte das gern mein Programm erledigen lassen, denn nich jeder User weiß wie das geht^^
Sowas wie Xentar verlinkt hat such ich...THX!
Jetzt muss ich nur noch in erfahrung bringen wie ich die Datei dann laden kann, wenn ich sie per Doppelklick geöffnet hab!
MfG & Thx Bergmann.
Moderiert von Narses: überflüssige Zeilenumbrüche entfernt
|
|
optikandy
      
Beiträge: 20
|
Verfasst: Mo 23.06.08 01:12
bei dem link von xentar steht doch ganz unten, wie man eine solche datei öffnet.
so wie ich das sehe, musst du den Parameter im zusammenhang von assingfile beutzen.
musst das mal ausprobieren, habe kp ob das klappt
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: Mo 23.06.08 07:41
Der Dateiname und Pfad wird in dem fall als parameter der datei beim start mitgegeben. wie man das dann auffängt weiss ich allerdings nich
edit: hier dürftest du was finden www.tutorials.de/for...rogramm-oeffnen.html
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mo 23.06.08 12:34
Dateiname wird als erster Parameter übergeben, also
Delphi-Quelltext 1:
| If ParamCount>0 then ShowMessage(ParamStr(1)); |
(zeigt dir z.B. den Dateinamen an)
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 23.06.08 14:52
Timosch hat folgendes geschrieben: | (zeigt dir z.B. den Dateinamen an) |
Das ist etwas irreführend. Der Dateiname des aufrufenden Programmes wird mit ParamStr (0) angezeigt. Wird dieses Programm mit einem oder mehreren Parametern aufgerufen, dann wäre der erst davon ParamStr (1)
_________________ Gruß
Hansa
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mo 23.06.08 14:54
hansa hat folgendes geschrieben: | Timosch hat folgendes geschrieben: | (zeigt dir z.B. den Dateinamen an) |
Das ist etwas irreführend. Der Dateiname des aufrufenden Programmes wird mit ParamStr (0) angezeigt. Wird dieses Programm mit einem oder mehreren Parametern aufgerufen, dann wäre der erst davon ParamStr (1) |
Sag ich doch. Wenn über Öffnen mit eine Datei mit deinem Programm geöffnet wird, steht der Name dieser Datei in ParamStr(1), also dem ersten Parameter. ParamStr(0) ist ja kein Parameter, sondern der Programmname selbst.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 29.06.08 21:31
Hi,
hab folgendes Problem:
Ich hab das jetzt alles in meinem Prog eingebaut, die Dateiendung Regestriert und das Prog
geht auch auf wenn ich die Datei anklick.
Nur wird sie nich geladen! Und das is noch nich alles: das komiche ist, wenn ich die Datei
nich anklick, sondern auf die Exe zieh, dann gehts??! VERWIRRENT!!
Wenn ich mich richtig erinner, dann ging das mit anklicken in meinem Test-Programm auch.
kp was ich falsch mach!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if ParamCount > 0 then if ParamSTR(1) <> '' then if ExtractFileExt(ParamSTR(1)) <> '.mdb' then begin MessageDLG('Unbekanntes Format',mtError,[mbOK],0); Close; end else begin Daten.Clear; Daten.LoadFromFile(ParamSTR(1)); MessageDLG('Laden erfolgreich!',mtInformation,[mbOK],0); end; |
Kann jmd helfen?
MfG Bergmann.
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 29.06.08 21:42
gibt es denn eine fehlermeldung beim falschen format?
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 29.06.08 21:44
ne eben nich, das Programm geht einfach auf, so als ob ich ganz normal auf die exe geklickt hätte...
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 29.06.08 22:13
jetzt gehts...?!
vorher
Delphi-Quelltext 1:
| InstallExt('.XXX','XXX-Datei','XXX',ExtractFilePath(ParamStr(0))+'XXX.exe','',0) |
nachher
Delphi-Quelltext 1:
| InstallExt('.XXX','XXX-Datei','XXX',ExtractFilePath(ParamStr(0))+'XXX.exe','"%1"',0) |
und jetzt wird der name übergeben, aber nur bis ein Leerzeichen kommt. dann muss ich den nächsten ParamStr nehmen, komisch!
auf jedenfall sieht das jetzt so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| if ParamCount > 0 then begin if FileExists(ParamStr(1)) then FileName := ParamStr(1) else begin FileName := ''; for i := 1 to ParamCount do begin FileName := FileName + ParamStr(i); if i <> ParamCount then FileName := FileName + ' '; end; end;
if ParamSTR(1) <> '' then if ExtractFileExt(FileName) <> '.mdb' then begin MessageDLG('Unbekanntes Format',mtError,[mbOK],0); Close; end else begin Daten.Clear; Daten.LoadFromFile(FileName); MessageDLG('Laden erfolgreich!',mtInformation,[mbOK],0); end; end; |
MfG Bergmann.
|
|
eins.null
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 29.07.08 09:38
Hallo
Sobald ein Leerzeichen im Parameter-String auftaucht, wird dies als neuer Parameter gewertet. Somit wird auch 'Eigene Dateien' als zwei Parameter gewertet.
Als Lösung schlage ich dir vor, alle Pfade und Dateinamen immer in Anfüruhrungszeichen zu setzen.
(So wie du das schon mit '"%1"' gemacht hast)
Beste Grüße
Matthias
|
|
Wolle92
      
Beiträge: 1296
Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
|
Verfasst: Di 29.07.08 12:28
Aber obwohl er es so gemacht hat, werden es mehrere parameter
_________________ 1405006117752879898543142606244511569936384000000000.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Di 10.11.09 16:54
So, da ja meine Antwort von vorhin verschwunden ist, frage ich halt nochmal:
Ist es normal, dass der Pfad der zu öffnenden Datei immer zerlegt wird, sobald man auf ein Leerzeichen trifft?
Gibt es keine andere Möglichkeit, damit man sich nicht selbst den kompletten Pfad zusammenbasteln muss?
Und warum muss man erst abfragen...
Delphi-Quelltext 1:
| If FileExists(ParamStr(1))... |
..., wenn der Pfad doch zerlegt ist? Dann kann ja nur False bei rauskommen, denn in meinem Programm ist ParamStr(1) nämlich C:\Dokumente
Gruß,
Terra
_________________ Hasta La Victoria Siempre
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 10.11.09 19:50
Und für sowas gräbst du einen ein Jahr alten Thread aus?
Pack den Parameter in "" und schon gehts.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Di 10.11.09 20:01
Ja, für sowas grabe ich einen solch alten Thread aus, denn in diesem Thread gab es ja auch augenscheinlich keine Lösung.
Was willst du eigentlich von mir? Auf der einen Seite soll man die Suche benutzen bevor man neue Threads aufmacht und auf der anderen Seite darf man dann in die gefundenen Threads nicht posten?
Ich war 5 Jahre in einem anderen Forum Moderator und ich kann deine Engstirnigkeit absolut nicht nachvollziehen. Wäre der Thread nun 2 oder 3 Jahre alt, dann ja. Aber so?
Und BTW: Meine Parameter sind in "", so wie es auch in EasyHelper gemacht wurde.
Bei mir steht also: '"%1"' und der Pfad wird trotzdem zerlegt.
Ich habe es aber inzwischen so gelöst, dass ich die Anzahl von ParamCount abfrage und den Pfad selber wieder zusammenbaue.
Terra
PS: Wenn es nicht erwünscht ist, dass man in solche Threads postet, dann solltet ihr die vielleicht schließen. Aber da hier ja auch noch keine Lösung für den Threadersteller vorhanden war (sonst hätte er das Thema ja markiert), wird man ja wohl posten dürfen, oder?
_________________ Hasta La Victoria Siempre
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 10.11.09 20:05
Ja und? Du hast doch schon einen Thread.
Fürs Protokoll: delphi-forum.de/view....php?p=584088#584088
Antwort kommt gleich, da wo sie hingehört.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Di 10.11.09 20:38
Hey,
eigentlich war das Problem behoben, habs nur nich abgehackt ^^
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
|