Autor |
Beitrag |
Eduardo
Hält's aus hier
Beiträge: 3
|
Verfasst: So 13.03.11 04:09
Hallo erstmal alle zusammen. Wahrscheinlich ist meine Frage eine Beleidigung an alle Programmierer, aber ich hoffe ihr könnt es mir verzeihen und trotzdem helfen.
Mein Problem ist folgendes:
Ich habe ein Programm geschrieben welches ein Bild und drei Audiodateien enthält bzw. verwendet. Das Programm läuft einwandfrei, auch seperat über die erstellte exe-Datei. Nun möchte ich das Programm auch auf anderen Computern verwenden, aber leider bringen die mir immer Fehlermendungen mit "Konnte nicht ausgeührt werden ... Bericht senden? " (Typische Windows-Fehlermeldung).
Kann es sein das man noch irgenteinen Hacken setzen muss, damit irgentwas zusätzlich in die exe eingebunden wird, welches das Programm auf anderen Rechnern zum laufen bringt?
Schonmal Danke im vorraus
|
|
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: So 13.03.11 09:10
Hallo und
Da kann man so aus der Ferne nicht viel zu sagen ohne ein wenig Quelltext.
Aber eine Möglichkeit wäre, dass du den Fehler machst zu versuchen ins eigene Verzeichnis zu schreiben. Oder dass du keine absoluten Pfadangaben benutzt, sondern keinen Pfad beim Dateizugriff angibst.
Ohne Infos oder Quelltext lässt sich da aber nicht viel mehr dazu sagen...
Nur so viel, dass der Fehler zu 99% an fehlender Fehlerbehandlung im Code liegt.
|
|
Eduardo 
Hält's aus hier
Beiträge: 3
|
Verfasst: So 13.03.11 12:56
Hi erstmal danke für die Schnelle Antwort.
Also das Bild sowie die Audiodateien habe ich über den Objektinspector (links unten) in den Fotorahmen bzw. in den Mediaplayer eingebunden. Dort steht bei "FileName" der komplette Pfad (also C:\Dokumente und Einstellungen\ ... usw.).
Wenn es hilft kann ich dir auch den Quelltext geben aber dieser geht über 450 Zeilen und hat noch eine kleine zweite Unit. Brauchst du hier einen speziellen Teil oder alles ?
Hab jetzt einfach mal den oberen teil der Unit 1 gepostet.
_____________________________________________________________________________________
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Label6: TLabel;
Edit7: TEdit;
Label7: TLabel;
Edit8: TEdit;
Label8: TLabel;
Edit9: TEdit;
Label9: TLabel;
Image1: TImage;
Label10: TLabel;
Button2: TButton;
Button3: TButton;
MediaPlayer1: TMediaPlayer;
Label11: TLabel;
Button4: TButton;
Button5: TButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Timer1: TTimer;
MediaPlayer2: TMediaPlayer;
MediaPlayer3: TMediaPlayer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Zufallszahl , SpielNr, PunkteRot, PunkteBlau, ADDBlau, ADDRot: Integer;
Spiel1 , Spiel2 , Spiel3 , Spiel4 , Spiel5 , Spiel6 ,
Spiel7 , Spiel8 , Spiel9 , SpielAktuell, Spiel1A, Spiel2A, Spiel3A, Spiel4A,
Spiel5A, Spiel6A, Spiel7A, Spiel8A, Spiel9A ,GS1 , GS2 , GS3 , GS4 ,
GS5, GS6, GS7, GS8, GS9 : String;
Spiel1E, Spiel2E, Spiel3E, Spiel4E, Spiel5E, Spiel6E, Spiel7E, Spiel8E,
Spiel9E : Integer;
implementation
{$R *.dfm}
uses unit2;
_____________________________________________________________________________________
Danach kommen die Button-Proceduren etc.
Hoffe es hilft erstmal soweit ?
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: So 13.03.11 13:09
So hilft das nicht, abgesehen davon gibt es Delphi-Tags. 
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: So 13.03.11 14:02
Glaube wichtig sind die Stellen wo die Dateien eingelesen werden!
Hinzu kommt auf welchen Systhemen Vista/Win7. Wo liegt die Exe, wo liegen die Dateien(sind sie überhaupt da, wo du sie suchst? usw.....)
Gruss ALf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 13.03.11 14:05
Werden die Bibliotheken eventuell nicht mit die die Exe gelinkt? Ich weiß allerdings nicht, was Windows dann für eine Fehlermeldung ausgibt, wenn diese fehlen.
Und was die Pfade angeht, die werden doch ab Vista in die virtuellen Ordner umgebogen. Ich weiß nicht, ob es dann zu so einem Fehler kommt.
Eine andere Möglcihkeit wäre, dass die Exe auf dem Zielrechner beschädigt angekommen ist.
|
|
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: So 13.03.11 14:10
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 13.03.11 14:44
Luckie hat folgendes geschrieben : | Werden die Bibliotheken eventuell nicht mit die die Exe gelinkt? Ich weiß allerdings nicht, was Windows dann für eine Fehlermeldung ausgibt, wenn diese fehlt. |
Das ist wohl eher die Lösung: Falsche Pfade führen doch zu bekannten, anderen Fehlermeldungen.
Du kannst in den Projektoptionen einmal experimentieren.
Wenn die .exe eine bestimmte Größe unterschreitet, sollte das ein Indiz sein.
Vielleicht machst du mal ein Minimalbeispiel, indem du den Projektordner kopierst und konsequent Funktionen entfernst, bis das Problem gerade noch auftritt? Das kannst du dann ja auch sicher mit Quelltext hochladen
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Eduardo 
Hält's aus hier
Beiträge: 3
|
Verfasst: So 13.03.11 16:00
Ok erstmal danke an alle die geschrieben haben.
Dank der informationen mit dem Bezug auf die Pfadangabe, habe ich folgendes versucht...
Die Pfadangabe mit C:\Dokumente und Einstellungen\... usw. habe ich einfach durch eine Relative Pfadangabe (Musik\Datei.wav) ersetzt, die sich auf den Ordner bezieht, in der sich die exe-Datei befindet.
Und nun siehe da, wenn der gesamte Ordner in dem das Projekt inkl. exe-Datei gespeichert wurde kopiert wird. Funktioniert alles einwandfrei, auch auf anderen PC´s.
Nochmals vielen Dank an alle die geschrieben haben. *Daumen hoch für dieses Forum*
|
|
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: So 13.03.11 16:15
Eduardo hat folgendes geschrieben : | Die Pfadangabe mit C:\Dokumente und Einstellungen\... usw. habe ich einfach durch eine Relative Pfadangabe (Musik\Datei.wav) ersetzt, die sich auf den Ordner bezieht, in der sich die exe-Datei befindet. |
Vorsicht, das ist auch falsch.
www.delphi-library.d...ewtopic.php?p=499701
Das bezieht sich nicht auf den Pfad deiner Exe, sondern auf das aktuelle Verzeichnis. Das hat nichts damit zu tun wo die Exe liegt (das ist nur zufällig meistens gleich).
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 13.03.11 17:20
Aber wenn er die Dateien nicht gefunden hat, dann ist das auch ein Zeichen fehlender oder zumindest unzureichender Fehlerbehandlung! Das sollte man tunlichst ändern.
|
|
|