Autor |
Beitrag |
rushifell
      
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: Fr 13.05.11 23:47
Hallo,
ich habe zwei Anwendungen programmiert. Nun möchte ich die zweite Anwendung aus der ersten heraus mit Hilfe von ShellExecute starten und beim Start an diese zweite Anwendung einen Stream senden. Der Stream hat etwa eine Größe von 1000 Bytes. Kann ich den Stream einfach als Parameter übergeben?
Zur Erläuterung: Die erste Anwendung ist ein Level-Editor für ein Spiel. Zum Testen wird ein Button gedrückt und per ShellExecute die zweite Anwendung, das Spiel, gestartet. Als Parameter werden die Daten des Levels übergeben. Bisher habe ich den Umweg über das Speichern des Streams in einer temporären Datei gewählt. Der direkte Weg ist aber vermutlich besser.
Gruß
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: Sa 14.05.11 00:19
Für mich hört sich Zwischenspeichern dann doch besser an.
Dann sind bei Fehlern die Daten nicht verloren und der User kann die evtl nochmal editieren.
lg
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 14.05.11 00:52
Also ich kenn auch nur das Zwischenspeichern, was mMn auch die beste Lösung ist. Einige Leveleditoren verlangen sogar das man die Map vorher selbst speichert bevor man sie testen kann (Tomb Raider III hatte soeinen Leveleditor afair).
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 14.05.11 05:53
Ich würde eine MMF benutzen. Dann kannst du deren Namen einfach an die gestartete Anwendung übergeben.
Eine Alternative wäre eine temporäre Datei, die sich automatisch löscht, wenn sie nicht mehr gebraucht wird:
www.delphi-library.d...iewtopic.php?t=89603
Ich denke aber auch, dass es vielleicht sinnvoller ist, die Daten in die echten Datendateien zu speichern. Dann können diese bei einem Programmabsturz auch nicht verloren gehen.
Für diesen Beitrag haben gedankt: rushifell
|
|
rushifell 
      
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: Sa 14.05.11 09:12
Danke für Eure Antworten
MMF ist genau das, was ich gesucht habe. Nach Euren Antworten werde ich aber vermutlich doch bei meiner ursprünglichen Variante mit dem Zwischenspeichern bleiben. Wenn ich ein neues Levelset erstelle, werde ich sowieso immer vor dem Testen speichern. Mal eben zum schnell Testen, bietet sich für mich die Variante mit der temporären Datei oder dem MMF an.
Viele Grüße
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 14.05.11 09:27
Wenn das eine temporäre Datei ist, die nach einem Absturz eh nicht gelesen werden kann, bringt das nix. Dann kannst du auch die MMF nehmen.
|
|
rushifell 
      
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: Sa 14.05.11 10:01
Nee, ist ne normale Levelset-Datei, die nicht gelöscht, sondern einfach immer wieder überschrieben wird. Je nach Schreibrechten wird diese Datei einfach in einem Unterverzeichnis oder den "Gemeinsamen Dateien" gespeichert. Im Grunde könnte man sie zur Datenrettung neu laden. Aber ehrlichgesagt, wer nicht ständig speichert ist im Grunde selbst schuld. Das muss ich beim Programmieren schließlich auch und andere Programme verzeihen mit das "nicht speichern" auch nicht. Ich denke, ich versuch's doch mal mit MMF. Bin im Moment etwas hin- und hergerissen. Ein Datenverlust wäre zwar ärgerlich, aber bei meinem kleinen Spiel auch nicht gerade gravierend.
|
|