Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows meldet jedesmal einen Fehler ->nicht ausführbar (https://www.delphipraxis.net/57073-windows-meldet-jedesmal-einen-fehler-nicht-ausfuehrbar.html)

ppirokke 15. Nov 2005 13:33


Windows meldet jedesmal einen Fehler ->nicht ausführbar
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab ein relative simples Programm geschrieben was lediglich ini-dateien benutzt. Ich selber habe Windows XP professional und habe es in ner zip-datei an freunde geschickt aber diese können es nicht ausführen obwohl sie ebenfalls windows xp haben. Jedesmal kommt dort dass das Programm beendet werden muss weil ein Fehler auftrat, bei mir läuft es jedoch einwandfrei. Habt ihr eine Lösung dazu? Hie noch der Quellcode (ist auf die schnelle entstanden also nicht gerade optimiert (; ):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls, inifiles, MPlayer, Grids;

type
  TForm1 = class(TForm)
    Label21: TLabel;
    Label23: TLabel;
    Timer1: TTimer;
    Label26: TLabel;
    Timer2: TTimer;
    MediaPlayer1: TMediaPlayer;
    PageControl1: TPageControl;
    Eingaben: TTabSheet;
    Felder: TTabSheet;
    Dorf: TTabSheet;
    Wecker: TTabSheet;
    GroupBox1: TGroupBox;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Eingabe: TGroupBox;
    Image2: TImage;
    Image4: TImage;
    Image1: TImage;
    Image3: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Image10: TImage;
    Image11: TImage;
    Image12: TImage;
    Image13: TImage;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    Label13: TLabel;
    TrackBar1: TTrackBar;
    Label9: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label10: TLabel;
    GroupBox2: TGroupBox;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Button1: TButton;
    Button2: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label28: TLabel;
    Label27: TLabel;
    Button3: TButton;
    Label24: TLabel;
    Label25: TLabel;
    Label29: TLabel;
    Panel1: TPanel;
    Image5: TImage;
    Panel2: TPanel;
    Image15: TImage;
    Panel3: TPanel;
    Image14: TImage;
    StringGrid1: TStringGrid;
    Button4: TButton;
    Image16: TImage;
    Label22: TLabel;
    ComboBox3: TComboBox;
    TrackBar2: TTrackBar;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    GroupBox3: TGroupBox;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure ImageChange(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bst_H, bst_L, bst_E, bst_G: integer;
  zt_H, zt_L, zt_E, zt_G: integer;
  pro_H, pro_L, pro_E, pro_G: real;

  lvl, dauer, ende_min, ende_h, ende_day: integer;
  produkt, zeit, zeit_min, zeit_save: string;
  ini: TIniFile;
implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);                                //Daten einlesen
begin
zeit_save:=zeit_min;
if RadioButton1.checked=true then produkt:='Lehm';
if RadioButton2.checked=true then produkt:='Holz';
if RadioButton3.checked=true then produkt:='Getreide';
if RadioButton4.checked=true then produkt:='Eisen';

lvl:=TrackBar1.Position;
                                                                                //Bestand
bst_H:=StrToInt(Edit5.text);
bst_L:=StrToInt(Edit6.text);
bst_E:=StrToInt(Edit7.text);
bst_G:=StrToInt(Edit8.text);
                                                                                //Produktion
pro_H:=StrToFloat(Edit1.text);
pro_L:=StrToFloat(Edit2.text);
pro_E:=StrToFloat(Edit3.text);
pro_G:=StrToFloat(Edit4.text);

ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'werte.ini');

ini.WriteInteger('values','bst_H',bst_H);
ini.WriteInteger('values','bst_L',bst_L);
ini.WriteInteger('values','bst_E',bst_E);
ini.WriteInteger('values','bst_G',bst_G);
ini.WriteInteger('values','pro_H',StrToInt(Edit1.text));
ini.WriteInteger('values','pro_L',StrToInt(Edit2.text));
ini.WriteInteger('values','pro_E',StrToInt(Edit3.text));
ini.WriteInteger('values','pro_G',StrToInt(Edit4.text));
ini.free;

if produkt='Holz' then                                                         //"Holz" StringBelegung
 begin
  StringGrid1.Cells[1,1]:='40';
  StringGrid1.Cells[2,1]:='100';
  StringGrid1.Cells[3,1]:='50';
  StringGrid1.Cells[4,1]:='60';
.
.
.
  StringGrid1.Cells[1,10]:='4040';
  StringGrid1.Cells[2,10]:='10105';
  StringGrid1.Cells[3,10]:='5050';
  StringGrid1.Cells[4,10]:='6060';

 end;

if produkt='Lehm' then                                                         //"Holz" StringBelegung
 begin
  StringGrid1.Cells[1,1]:='80';
  StringGrid1.Cells[2,1]:='40';
  StringGrid1.Cells[3,1]:='80';
  StringGrid1.Cells[4,1]:='50';
.
.
.
  StringGrid1.Cells[1,10]:='8080';
  StringGrid1.Cells[2,10]:='4040';
  StringGrid1.Cells[3,10]:='8080';
  StringGrid1.Cells[4,10]:='5050';

 end;

if produkt='Getreide' then                                                         //"Holz" StringBelegung
 begin
  StringGrid1.Cells[1,1]:='70';
  StringGrid1.Cells[2,1]:='90';
  StringGrid1.Cells[3,1]:='70';
  StringGrid1.Cells[4,1]:='20';
.
.
.
  StringGrid1.Cells[1,10]:='7070';
  StringGrid1.Cells[2,10]:='9095';
  StringGrid1.Cells[3,10]:='7070';
  StringGrid1.Cells[4,10]:='2020';

 end;

if produkt='Eisen' then                                                         //"Holz" StringBelegung
 begin
  StringGrid1.Cells[1,1]:='100';
  StringGrid1.Cells[2,1]:='80';
  StringGrid1.Cells[3,1]:='30';
  StringGrid1.Cells[4,1]:='60';
.
.
.
  StringGrid1.Cells[1,10]:='10105';
  StringGrid1.Cells[2,10]:='8080';
  StringGrid1.Cells[3,10]:='3030';
  StringGrid1.Cells[4,10]:='6060';

 end;


bst_H:=bst_H-StrToInt(StringGrid1.cells[1,lvl]);
bst_L:=bst_L-StrToInt(StringGrid1.cells[2,lvl]);
bst_E:=bst_E-StrToInt(StringGrid1.cells[3,lvl]);
bst_G:=bst_G-StrToInt(StringGrid1.cells[4,lvl]);

pro_H:=pro_H/60;                                                               //h -> min
pro_L:=pro_L/60;
pro_E:=pro_E/60;
pro_G:=pro_G/60;
zt_H:=Round(bst_H/pro_H)*(-1);                                                 //Defizitszeit (positiv)
zt_L:=Round(bst_L/pro_L)*(-1);
zt_E:=Round(bst_E/pro_E)*(-1);
zt_G:=Round(bst_G/pro_G)*(-1);
                                                                            //**Größtes Defizit bestimmen**
if (zt_H>=zt_L) AND (zt_H>=zt_E) AND (zt_H>=zt_G)                           //Holz
 then begin
       Label14.caption:=IntToStr(zt_H)+' Minuten';
       Label15.caption:='('+FloatToStr(bst_H)+' Defizit an Holz)';
       Label17.caption:= IntToStr(zt_H div 60);
       Label18.caption:= IntToStr(zt_H-(60*(zt_H div 60)));
      end;
if (zt_L>=zt_H) AND (zt_L>=zt_E) AND (zt_L>=zt_G)                           //Lehm
 then begin
       Label14.caption:=IntToStr(zt_L)+' Minuten';
       Label15.caption:='('+FloatToStr(bst_L)+' Defizit an Lehm)';
       Label17.caption:= IntToStr(zt_L div 60);
       Label18.caption:= IntToStr(zt_L-(60*(zt_L div 60)));
      end;
if (zt_E>=zt_H) AND (zt_E>=zt_L) AND (zt_E>=zt_G)                           //Eisen
 then begin
       Label14.caption:=IntToStr(zt_E)+' Minuten';
       Label15.caption:='('+FloatToStr(bst_E)+' Defizit an Eisen)';
       Label17.caption:= IntToStr(zt_E div 60);
       Label18.caption:= IntToStr(zt_E-(60*(zt_E div 60)));
      end;
if (zt_G>=zt_H) AND (zt_G>=zt_L) AND (zt_G>=zt_E)                           //Getreide
 then begin
       Label14.caption:=IntToStr(zt_G)+' Minuten';
       Label15.caption:='('+FloatToStr(bst_G)+' Defizit an Getreide)';
       Label17.caption:= IntToStr(zt_G div 60);
       Label18.caption:= IntToStr(zt_G-(60*(zt_G div 60)));
      end;

ende_min:=StrToInt(copy(TimeToStr(Now), 4, 2))+StrToInt(Label18.caption);      //Endzeitberechnung
ende_h:=StrToInt(copy(TimeToStr(Now), 0, 2))+StrToInt(Label17.caption);

while ende_min > 59 do
 begin
  ende_min:=ende_min-60;
  ende_h:=ende_h+1;
 end;

while ende_h > 24 do
 begin
  ende_h:=ende_h-24;
  ende_day:=ende_day+1;
 end;



if (ende_h>0) AND (ende_min>0) then
begin
Label24.Caption:='um '+IntToStr(ende_h)+':'+IntToStr(ende_min)+':0';
Label25.Caption:='kann ausgebaut werden';
end;

if ende_day>0 then Label26.caption:='(in '+IntToStr(ende_day)+' Tagen)'
              else Label26.caption:='';


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Visible:=true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label23.caption:=TimeToStr(Now);
end;

procedure TForm1.FormCreate(Sender: TObject);                                  // Werte aus INI lesen
var k:integer;
begin

StringGrid1.cells[0,0]:='Level';
for k:=1 to 20 do StringGrid1.Cells[0,k]:=IntToStr(k);
StringGrid1.cells[1,0]:='Holz';
StringGrid1.cells[2,0]:='Lehm';
StringGrid1.cells[3,0]:='Eisen';
StringGrid1.cells[4,0]:='Getreide';

ende_day:=0;
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'werte.ini');

Edit5.Text:= IntToStr(ini.ReadInteger('values','bst_H',0));
Edit6.Text:= IntToStr(ini.ReadInteger('values','bst_L',0));
Edit7.Text:= IntToStr(ini.ReadInteger('values','bst_E',0));
Edit8.Text:= IntToStr(ini.ReadInteger('values','bst_G',0));
Edit1.Text:= IntToStr(ini.ReadInteger('values','pro_H',0));
Edit2.Text:= IntToStr(ini.ReadInteger('values','pro_L',0));
Edit3.Text:= IntToStr(ini.ReadInteger('values','pro_E',0));
Edit4.Text:= IntToStr(ini.ReadInteger('values','pro_G',0));

ini.free;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer2.Enabled:=true;
Label29.Caption:='[aktiviert]';
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

if TimeToStr(Now)=Combobox1.text+':'+ComboBox2.text+':00'
 then begin
        Label29.caption:='';
        MediaPlayer1.Play;
      end;
end;

procedure TForm1.ImageChange(Sender: TObject);
begin
Image16.Picture.LoadFromFile('pics\'+Combobox3.text+'.jpg');
Label22.Caption:=Combobox3.Text;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
zeit_save:=zeit_min;
produkt:=ComboBox3.Text;

lvl:=TrackBar2.Position;
                                                                                //Bestand
bst_H:=StrToInt(Edit5.text);
bst_L:=StrToInt(Edit6.text);
bst_E:=StrToInt(Edit7.text);
bst_G:=StrToInt(Edit8.text);
                                                                                //Produktion
pro_H:=StrToFloat(Edit1.text);
pro_L:=StrToFloat(Edit2.text);
pro_E:=StrToFloat(Edit3.text);
pro_G:=StrToFloat(Edit4.text);

ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'werte.ini');

ini.WriteInteger('values','bst_H',bst_H);
ini.WriteInteger('values','bst_L',bst_L);
ini.WriteInteger('values','bst_E',bst_E);
ini.WriteInteger('values','bst_G',bst_G);
ini.WriteInteger('values','pro_H',StrToInt(Edit1.text));
ini.WriteInteger('values','pro_L',StrToInt(Edit2.text));
ini.WriteInteger('values','pro_E',StrToInt(Edit3.text));
ini.WriteInteger('values','pro_G',StrToInt(Edit4.text));
ini.free;

if produkt='Akademie' then                                                         //"Holz" StringBelegung
 begin
  StringGrid1.Cells[1,1]:='220';
  StringGrid1.Cells[2,1]:='160';
  StringGrid1.Cells[3,1]:='90';
  StringGrid1.Cells[4,1]:='40';
.
.
.
  StringGrid1.Cells[1,20]:='23955';
  StringGrid1.Cells[2,20]:='17420';
  StringGrid1.Cells[3,20]:='9800';
  StringGrid1.Cells[4,20]:='4355';

 end;


bst_H:=bst_H-StrToInt(StringGrid1.cells[1,lvl]);
bst_L:=bst_L-StrToInt(StringGrid1.cells[2,lvl]);
bst_E:=bst_E-StrToInt(StringGrid1.cells[3,lvl]);
bst_G:=bst_G-StrToInt(StringGrid1.cells[4,lvl]);

pro_H:=pro_H/60;                                                               //h -> min
pro_L:=pro_L/60;
pro_E:=pro_E/60;
pro_G:=pro_G/60;
zt_H:=Round(bst_H/pro_H)*(-1);                                                 //Defizitszeit (positiv)
zt_L:=Round(bst_L/pro_L)*(-1);
zt_E:=Round(bst_E/pro_E)*(-1);
zt_G:=Round(bst_G/pro_G)*(-1);
                                                                            //**Größtes Defizit bestimmen**
if (zt_H>=zt_L) AND (zt_H>=zt_E) AND (zt_H>=zt_G)                           //Holz
 then begin
       Label34.caption:=IntToStr(zt_H)+' Minuten';
       Label35.caption:='('+FloatToStr(bst_H)+' Defizit an Holz)';
       Label37.caption:= IntToStr(zt_H div 60);
       Label38.caption:= IntToStr(zt_H-(60*(zt_H div 60)));
      end;
if (zt_L>=zt_H) AND (zt_L>=zt_E) AND (zt_L>=zt_G)                           //Lehm
 then begin
       Label34.caption:=IntToStr(zt_L)+' Minuten';
       Label35.caption:='('+FloatToStr(bst_L)+' Defizit an Lehm)';
       Label37.caption:= IntToStr(zt_L div 60);
       Label38.caption:= IntToStr(zt_L-(60*(zt_L div 60)));
      end;
if (zt_E>=zt_H) AND (zt_E>=zt_L) AND (zt_E>=zt_G)                           //Eisen
 then begin
       Label34.caption:=IntToStr(zt_E)+' Minuten';
       Label35.caption:='('+FloatToStr(bst_E)+' Defizit an Eisen)';
       Label37.caption:= IntToStr(zt_E div 60);
       Label38.caption:= IntToStr(zt_E-(60*(zt_E div 60)));
      end;
if (zt_G>=zt_H) AND (zt_G>=zt_L) AND (zt_G>=zt_E)                           //Getreide
 then begin
       Label34.caption:=IntToStr(zt_G)+' Minuten';
       Label35.caption:='('+FloatToStr(bst_G)+' Defizit an Getreide)';
       Label37.caption:= IntToStr(zt_G div 60);
       Label38.caption:= IntToStr(zt_G-(60*(zt_G div 60)));
      end;

ende_min:=StrToInt(copy(TimeToStr(Now), 4, 2))+StrToInt(Label38.caption);      //Endzeitberechnung
ende_h:=StrToInt(copy(TimeToStr(Now), 0, 2))+StrToInt(Label37.caption);

while ende_min > 59 do
 begin
  ende_min:=ende_min-60;
  ende_h:=ende_h+1;
 end;

while ende_h > 24 do
 begin
  ende_h:=ende_h-24;
  ende_day:=ende_day+1;
 end;



if (ende_h>0) AND (ende_min>0) then
begin
Label41.Caption:='um '+IntToStr(ende_h)+':'+IntToStr(ende_min)+':0';
Label42.Caption:='kann ausgebaut werden';
end;

if ende_day>0 then Label26.caption:='(in '+IntToStr(ende_day)+' Tagen)'
              else Label26.caption:='';


end;

end.

chaosben 15. Nov 2005 14:00

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
Und jetzt brauchen wir nur noch die genaue Fehler-Meldung und wenns geht die Nummer dazu.

ppirokke 15. Nov 2005 14:04

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
sorry o0 habs programm im anhang, kannst dus mal testen? ich kann grad schlecht nen freund fragen weil die alle net erreichbar sind v.v

TeronG 15. Nov 2005 14:05

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
pack doch einfach mal den Quellcode in deine Zip .. dann sucht sich's schon viel einfacher ^^

ManuMF 15. Nov 2005 14:06

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich tippe auf ein Problem mit dem Mediaplayer. Wo weist du ihm zu, was er abspielen soll?

(Anhang: Fehlermeldungen)

ppirokke 15. Nov 2005 14:11

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
oh neiiiiiin xD ich hab ohne groß zu überlegen einfach
MediaPlayer1.filename auf G:\Dokumente und Einstellungen\pirokke\Desktop\travian_progg\wecker .wav
gesetzt, kein wunder dass der die datei bei den andren nicht öffnen kann v.v DANKE FÜR DIE HILFE!

Ihr seid unschlagbar xo)

ManuMF 15. Nov 2005 14:14

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
Dann würde ich MediaPlayer.FileName (oder so) auf GetCurrentDir + '\Wecker.wav' setzen.

oder einfacher als gleich mit Mediaplayer:
Delphi-Quellcode:
uses MMSystem;

PlaySound(GetCurrentDir + '\Wecker.wav', 0, SND_ASYNC or SND_FILENAME);
Gruß,
ManuMF

TeronG 15. Nov 2005 15:54

Re: Windows meldet jedesmal einen Fehler ->nicht ausführb
 
oder:
Delphi-Quellcode:
ExtractFilePath(Application.exename)


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