Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exe Datei hängt beim ausführen ohne IDE (https://www.delphipraxis.net/158439-exe-datei-haengt-beim-ausfuehren-ohne-ide.html)

xxsasch4xx 17. Feb 2011 16:38


Exe Datei hängt beim ausführen ohne IDE
 
Meine Exe Datei hängt manchmal beim ausführen ohne IDE, ich lade massig Bilder in mein Programm in welchem ich Bilder über die form verschieben kann.

Deswegen wollte ich wissen, ob man es unterbinden kann, dass die .exe Datei erstellt wird oder ob es vieleicht eine Lösung gibt damit die .exe Datei nicht mehr hängt.

himitsu 17. Feb 2011 16:43

AW: Exe Datei nicht erstellen
 
Garnicht?
Was es nicht gibt, das kann man nicht ansehn/starten. :stupid:

turboPASCAL 17. Feb 2011 16:43

AW: Exe Datei nicht erstellen
 
Nö.

Das Teil ist halt kein Interpreter. ;)


// Edit:

Ja, früher in den guten alten Zeiten als Drucker noch 8 Nadeln hatten und man beim Kauf noch Ohrstöpsel dazu bekam,
konnte man in Turbo Pascal den Compiler auf Memory sellen und gut wars. Mit den komplexen Teilen von heute kann man
das aber getrost vergessen...

jfheins 17. Feb 2011 16:45

AW: Exe Datei nicht erstellen
 
Du möchtest also keine exe Datei erstellen, aber trotzdem Sachen machen, die nur mit einer exe Datei gehen? Gar nicht.

Aber wenn du auf "Projekt erzeugen" oder so klickst, wird das Programm nur kompiliert (eine exe Datei wird erzeugt) aber nicht ausgeführt. Ist es das was du willst?

turboPASCAL 17. Feb 2011 16:52

AW: Exe Datei nicht erstellen
 
Zitat:

Ist es das was du willst?
Er möchte sich das fertige Ergebnis ohne Exe ansehen. ;)

Dezipaitor 17. Feb 2011 16:55

AW: Exe Datei nicht erstellen
 
turboPASCAL hat schon Recht. Früher ging das in DOS direkt. Aber in Windows ist es offiziell nicht möglich eine EXE-Datei direkt im Speicher auszuführen.

xxsasch4xx 17. Feb 2011 16:57

AW: Exe Datei nicht erstellen
 
Es wird aber auch keine Exe Datei erzeugt wenn man das Projekt noch nicht gespeichert hat auf auf den Start Button in der IDE klickt..

Phoenix 17. Feb 2011 16:58

AW: Exe Datei nicht erstellen
 
Doch, die landet nur irgendwo in den temporären Ordnern.

Klaus01 17. Feb 2011 16:59

AW: Exe Datei nicht erstellen
 
Zitat:

Zitat von xxsasch4xx (Beitrag 1082512)
Es wird aber auch keine Exe Datei erzeugt wenn man das Projekt noch nicht gespeichert hat auf auf den Start Button in der IDE klickt..

Doch die heißt dann Project1.exe

Grüße
Klaus

Satty67 17. Feb 2011 16:59

AW: Exe Datei nicht erstellen
 
Interessant wäre das warum, um etwas bessere Antworten zu finden.

geraten: Falls Read-Only Umgebung, dann die Exe eventuell in einer RAM-Disk erzeugen.

xxsasch4xx 17. Feb 2011 17:13

AW: Exe Datei nicht erstellen
 
Ich hab überlegt, dass ich ne Batch Datei ausführe beim beenden der Datei ausführe. Diese Batchdatei löscht die exe Datei und der Spuck ist vorbei xD

aber wenn der Anwender auf das Windows "X" für schließen geht wird die Batchdatei leider nicht ausgeführt.
Nur wenn er das Programm ordenlich über meine Beenden Schaltfläche beendet.

turboPASCAL 17. Feb 2011 17:17

AW: Exe Datei nicht erstellen
 
Dumme Frage meinerseits.
Was möchtest du denn eigentlich machen ? Wozu soll's gut sein ? Was willst du erreichen ?

xxsasch4xx 17. Feb 2011 17:23

AW: Exe Datei nicht erstellen
 
Ja ich weis auch nicht warum aber manchmal hängt das Programm von mir etwas und ich habe Performemance Probleme wenn ich die Exe Datei so starte.
Und wenn ich das über die IDE Starte funktioniert auf einmal alles.

Aber ich kann ja die Exe Datei wohl nicht mit einer Batch datei löschen lassen solange sie noch ausgeführt ist. Daran hab ich nicht gedacht.

WM_CLOSE 17. Feb 2011 17:51

AW: Exe Datei nicht erstellen
 
Da stimmt aber etwas nicht. Performance mit Debugger > Performance ohne Debugger ?
Oder hab ich da was falsch verstanden?
gibt es vielleicht irgendwelche Exceptions ohne Debugger?
Oder einfach nur performanceprobleme?:glaskugel:

stahli 17. Feb 2011 18:10

AW: Exe Datei nicht erstellen
 
Wenn Du Deine Exe übder die IDE ausführst, läuft ja auch die Exe.
Jedenfalls ist dann egal, ob Du sie löscht oder nicht.
Wenn Du Dein Projekt neu erzeugst, wird die alte durch eine neue Exe überschrieben.

Dass die Exe ohne Delphi langsamer ist, ist m.E. erst mal nicht erklärbar.
Irgendwo wurde mal gesagt, dass das durch Laden großer Bilder begründet sein könne (oder so).
Was macht denn Deine Exe?

lbccaleb 17. Feb 2011 22:01

AW: Exe Datei nicht erstellen
 
Ich glaube du bist besser mit Fehlerkorrektur beraten, als mit "suchen nach einer Lösung das untern Tsich zu kehren".

rollstuhlfahrer 17. Feb 2011 22:12

AW: Exe Datei nicht erstellen
 
Zitat:

Zitat von Satty67 (Beitrag 1082515)
geraten: Falls Read-Only Umgebung, dann die Exe eventuell in einer RAM-Disk erzeugen.

Falsch geraten. Delphi 7 versucht standardmäßig in $Delphi\Projects (oder auch Projekte) die Ursprungs-EXE zu schreiben, solange das Programm nicht gespeichert wurde. Da in der Schule auf diesen Ordner explizit kein Schreibrecht existiert, kann er dort auch nix hinkompilieren. Er scheitert dann schon daran, die DCU zu erstellen und bricht mit "Fataler Fehler" ab.

Zum Thema Performance mit IDE > Performance ohne IDE gab es in letzter Zeit schon mal nen Thread. Hast du zufälligerweise nen Haufen an Daten, den du laden musst oder dir von irgendwo beziehst? (Oder (kleines Hirngespinst): Du versuchst den Delphi-Ordner zu sichern und mit IDE geht das natürlich schneller, weil diese ja von da geladen werden muss und dann in den Windows-eigenen Cache geht.)

Bernhard

ADD:
Zitat:

Zitat von xxsasch4xx (Beitrag 1082516)
Ich hab überlegt, dass ich ne Batch Datei ausführe beim beenden der Datei ausführe. Diese Batchdatei löscht die exe Datei und der Spuck ist vorbei xD

aber wenn der Anwender auf das Windows "X" für schließen geht wird die Batchdatei leider nicht ausgeführt.
Nur wenn er das Programm ordenlich über meine Beenden Schaltfläche beendet.

Sieht mir nach einem Konzept-Fehler aus. Startest den Batch-Job in OnClose, OnCloseQuery oder OnDestroy des Forms?

xxsasch4xx 18. Feb 2011 07:11

AW: Exe Datei nicht erstellen
 
Ja ich lade einen Haufen Bilder in mein Programm aber wennn ich das Programm dann nicht über die IDE starte dann hängt es etwas beim verschieben einiger Bilder (es ist ein Spiel)
ich weiss nicht woran das liegt, deswegn wollte ich verhindern, dass eine exe Datei erstellt wird.
Ich habe das gestern noch an einem anderem (besseren) PC getestest, da habe ich das Problem allerdings nicht dass die Exe Datei hängt.

WM_CLOSE 18. Feb 2011 07:16

AW: Exe Datei nicht erstellen
 
Du könntest ja ein neues Thema aufmachen (oder beim alten den Titel ändern), dann können wir vielleicht bei der Lösung de Problems helfen.

xxsasch4xx 18. Feb 2011 07:36

AW: Exe Datei hängt beim ausführen ohne IDE
 
Hab das Thema umbenannt. Es ist ganz kurrios manchmal wenn ich den Taskmanager aufmache, nachdem ich das Spiel ohne IDE ausführe dann hängt es nicht mehr, weil der Taskmanager auf ist. Das habe ich durch Zufall rausgefunden.

An meinem anderen PC klappt aber alles ohne Probleme. Ohne hängen auch wenn man die IDE nicht aufhat.

WM_CLOSE 18. Feb 2011 07:50

AW: Exe Datei hängt beim ausführen ohne IDE
 
:glaskugel::glaskugel::glaskugel:

Vielleicht kannst du uns sagen wo genau das prog hängt, kannst du mal messen wie lang eine Funktion dauert und uns dann mal den Source der kritischen Funktionen oder schleifen geben.So könnte man die Laufzeit einer Prozedur messen:
Delphi-Quellcode:
procedure TForm1.Form1Create(Sender:TObject);
begin
  AllocConsole;
end;
procedure TForm1.Form1Destroy(Sender:TObject);
begin
  FreeConsole;
end;

procedure TForm1.DoSth(Param1:Integer);
const
  KritischerWert=10;
var
  cTime:Cardinal;
  cDifferenz:Cardinal;
begin
  cTime:=GetTickCount

  //hier etwas machen

  cDifferenz:=(GetTickCount-cTime);
  if cDifferenz > KritischerWert then
    WriteLn(Format('Die Funktion DoSth hat %d ms gedauert Parameter: %d',[cDifferenz, Param1]));
end;

p80286 18. Feb 2011 09:12

AW: Exe Datei hängt beim ausführen ohne IDE
 
Wie wäre es denn, einmal genau zu definieren was "Hängen" bedeutet?
So funktioniert das Repaint bei Labels, die auf Autosize stehen, manchmal nicht. Da bleibt schlicht nicht genug Zeit für eine ordentliche Darstellung.
(Wird das Programm aus der IDE gestartet tritt das natürlich nicht auf)

Gruß
K-H

xxsasch4xx 18. Feb 2011 18:58

AW: Exe Datei hängt beim ausführen ohne IDE
 
Liegt warscheinlich am PC..
der ist irgentwie voll schlecht der stürzt auch öfter mal ab. ( das ist der von der schule)

rollstuhlfahrer 18. Feb 2011 19:56

AW: Exe Datei hängt beim ausführen ohne IDE
 
Dann beobachte mal deinen Prozess mit Process Explorer (Task-Manager dürfte wahrscheinlich deaktiviert sein). Ansonsten dürfte es vielleicht noch ein wenig Optimierungspotential beim Laden/Zeichnen geben.

Bernhard

PS: Oder läuft es daheim wesentlich schneller?


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