Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Text compilieren (https://www.delphipraxis.net/55973-text-compilieren.html)

spike0 29. Okt 2005 21:13


Text compilieren
 
Ich habe ein Editor (TSynEdit, oder auch ein normales TMemo). Jetzt möchte ich das, was ich in dem Editor drin

stehen habe, mit dem Delphi Compiler compilieren und anschließend diese Datei öffnen.
Bisjetzt habe ich das so gemacht:
1. Im Ordner mit meinem Programm einen neuen Ordner erstellt (mit dem Namen Ordner) und dort ein neues Projekt

erstellt und gespeichert.
2.:
Delphi-Quellcode:
var path,files:string;
f:textfile;
begin
files:=aaa+'Delphi\Unit1.pas'; //variable aaa beinhaltet den Pfad zu meinem Programm
path:='C:\Programme\Borland\Delphi7\Bin\dcc32.exe'; //Pfad zum Delphi-Compiler
assignFile(f,files);
rewrite(f);
writeln(f,Editor.Text);
closefile(f);
// --> Unit1 besteht jetzt aus dem text asu dem Editor
shellexecute(handle,'open',pchar(path),pchar(files),nil,sw_normal); // Unit1 compilieren
shellexecute(handle,'open',pchar(path),pchar(aaa+'delphi\Project1.dpr'),nil,sw_normal); //das ganze Projekt compilieren
shellexecute(handle,'open',pchar(aaa+'delphi\project1.exe'),nil,nil,sw_normal); // die Datei öffnen
Nun das Problem: Die Unit1 wird verändert, so wie es sein soll. Aber es wird nicht richtig kompiliert, das Programm

öffnet sich mit der alten Datei (also Unit1 vor der Veränderung).

Wo liegt der Fehler?

Net7 29. Okt 2005 22:24

Re: Text compilieren
 
Ist denn das Projekt was du compilieren willst, das gleiche Projekt was du gerade ausführst?

Wenn dem so ist kann der Compiler das Projekt nicht compilieren, da er die projekt1.exe nicht schreiben kann da sie bereits ausgeführt wird.

SirThornberry 29. Okt 2005 22:25

Re: Text compilieren
 
ist da vielleicht eine DCU? Wenn ja lösche diese weg damit der Compiler gezwungen ist neu zu compilieren. Ansonsten kann es sein das die dcu (vorcompilat) verwendet wird.

jbg 30. Okt 2005 07:50

Re: Text compilieren
 
Zitat:

Zitat von SirThornberry
ist da vielleicht eine DCU? Wenn ja lösche diese weg damit der Compiler gezwungen ist neu zu compilieren. Ansonsten kann es sein das die dcu (vorcompilat) verwendet wird.

Dafür gibt es den -B Parameter (-B wie Build, statt -M wie Make)


Ich denke das Problem liegt am ShellExecute. Das wartet nämlich nicht, bis das gestartete Programm beendet ist. Also wird die Anwendung gestartet bevor der Compiler überhaupt angefangen hat zu kompilieren.


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