Forum
Tipps
News
Menu-Icon

Delphi-->.exe dynamisch anlegen

hallo erstmal,
so ich hab wieder mal ein problem und zwar hab ich einw art setup-programm geschrieben indem einfache programmierbeispiele ausgewählt und anschließend auf dem pc installiert werden sollen, soweit so gut die exe anlegen klappt auch, aber wenn ich sie starten will kommt ein cpu-error, obwohl der inhalt korrekt ist(überprüft)
hier der code:

Zitat
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ComCtrls, CheckLst, Buttons,
  ShlObj, ComObj, ActiveX;

type
  TForm1 = class(TForm)
    Status: TProgressBar;
    Zahlenraten: TCheckBox;
    WerWirdMillionaer: TCheckBox;
    CaesarVerEntschluesselung: TCheckBox;
    VigenereVerEntschluesselung: TCheckBox;
    Readme: TCheckBox;
    Rechner: TCheckBox;
    Bildbetrachter: TCheckBox;
    Explorer: TCheckBox;
    Weiter: TBitBtn;
    ladebalkenstarten: TTimer;
    Hintergrund: TImage;
    Ueberschrift: TLabel;
    Verfasserbild: TImage;
    procedure installieren(Sender: TObject);
    procedure balken_an(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//-------------- Ladebalken anschalten --------------
procedure TForm1.balken_an(Sender: TObject);
begin
Status.Position := Status.Position+1;
if Status.Position = 100 then
begin
ladebalkenstarten.Enabled := false;
ShowMessage('Installation abgeschlossen.');
close;
end;
end;


//-------------- Installation starten --------------
procedure TForm1.installieren(Sender: TObject);
var  readmedatei,Target,verzeichnis : string;
var  IObject: IUnknown;
var  ILink : IShellLink;
var  IFile : IPersistFile;
var  p : PItemIDList;
var  s : array[0..MAX_PATH] of char;
var  LinkFile : WideString;
var Text_Datei,f,a : TextFile;
begin


//-------------- Timer starten --------------
ladebalkenstarten.Enabled := true;


//-------------- Shortcut anlegen --------------
fillchar(s,sizeof(s),0);
SHGetSpecialFolderLocation(Application.Handle,CSIDL_DESKTOPDIRECTORY,p);
SHGetPathFromIDList(p,@s);
Target := ExpandFileName('Installation.exe'); //Name des Programms
IObject := CreateComObject(CLSID_ShellLink);
ILink := IObject as IShellLink;
IFile := IObject as IPersistFile;
with ILink do begin
SetPath(PChar(Target));
SetWorkingDirectory(PChar(ExtractFilePath(Target)));
end;
LinkFile := s+'\Sammlung.lnk'; //Name der Verknüpfung
IFile.Save(PWChar(LinkFile),false);


//-------------- Verzeichnis anlegen --------------
verzeichnis
:= 'c:\Program Files\Sammlung';;
if NOT DirectoryExists(verzeichnis) then
ForceDirectories(verzeichnis);


//-------------- Readme anlegen --------------
if Readme.Checked = true then
begin
if not FileExists('c:\Program Files\Sammlung\Readme.txt')then
begin
assignfile(f, 'c:\Program Files\Sammlung\Readme.txt');
rewrite(f);
Writeln(f,'README');
Writeln(f,'Wählen Sie ihr Programm aus, das sie starten '+
          'möchten und klicken sie auf "START". Zum Beenden '+
          'klicken Sie auf Abbrechen');
closefile(f);
end;
end;


//-------------- Zahlenraten anlegen --------------
if Zahlenraten.Checked = true then
begin
verzeichnis := 'c:\Program Files\Sammlung\Zahlenraten';;
if NOT DirectoryExists(verzeichnis) then
ForceDirectories(verzeichnis);
if not FileExists('c:\Program Files\Sammlung\Zahlenraten\Project1.exe')then
begin
assignfile(a, 'c:\Program Files\Sammlung\Zahlenraten\Project1.exe');
rewrite(a);
writeln(a,'program Project1;');
writeln(a,'{$APPTYPE CONSOLE}');
writeln(a,'uses');
writeln(a,'SysUtils;');
writeln(a,'var zufallzahl : integer;');
writeln(a,'var antwort : string;');
writeln(a,'var ratezahl : integer;');
writeln(a,'begin');
writeln(a,'{ TODO -oUser -cConsole Main : Hier Code einfügen }');
writeln(a,'randomize;');
writeln(a,'zufallzahl := random(100) + 1;');
writeln(a,'repeat');
writeln(a,'writeln(''Geben Sie Starten, [h]Hilfe oder Beenden ein.'');');
writeln(a,'readln(antwort);');
writeln(a,'if antwort = ''s'' then');
writeln(a,'begin');
writeln(a,'writeln(''Geben Sie eine Zahl zwischen 1 und 100 ein.'');');
writeln(a,'repeat');
writeln(a,'readln(ratezahl);');
writeln(a,'if ratezahl = zufallzahl then');
writeln(a,'begin');
writeln(a,'writeln(''Richtig!!'');');
writeln(a,'end;');
writeln(a,'if ratezahl < zufallzahl then');
writeln(a,'begin');
writeln(a,'writeln(''Zu klein!!'');');
writeln(a,'end;');
writeln(a,'if ratezahl > zufallzahl then');
writeln(a,'begin');
writeln(a,'writeln(''Zu gross!!'');');
writeln(a,'end;');
writeln(a,'until ratezahl = zufallzahl;');
writeln(a,'end;');
writeln(a,'if antwort = ''h'' then');
writeln(a,'begin');
writeln(a,'Writeln(''In diesem Spiel denkt sich der Computer eine Zahl ''+');
writeln(a,'''zwischen 1 und 100 aus. Ihre Aufgabe besteht darin, ''+');
writeln(a,'''diese Zahl zu erraten.'')');
writeln(a,'end;');
writeln(a,'until antwort = ''b'';');
writeln(a,'end.');
closefile(a);
end;
end;


//-------------- Wer wird Millionär anlegen --------------
if WerWirdMillionaer.Checked = true then
begin
end;


//-------------- Caesar Ver-/Entschlüsselung anlegen --------------
if CaesarVerEntschluesselung.Checked = true then
begin
end;


//-------------- Vigenere Ver-/Entschlüsselung anlegen --------------
if VigenereVerEntschluesselung.Checked = true then
begin
end;


//-------------- Rechner anlegen --------------
if Rechner.Checked = true then
begin
end;


//-------------- Bildbetrachter anlegen --------------
if Bildbetrachter.Checked = true then
begin
end;


//-------------- Explorer anlegen --------------
if Explorer.Checked = true then
begin
end;


end;
end.




 
« Coppy.batProgrammieren die vokabeln »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Multiprozessor Rechner
Multiprozessorsysteme oder Multiprozessor-Rechner sind Computer, die mehr als einen Hauptprozessor (CPU) zur Ausführung von Aufgaben verwenden. Sie ermöglichen ...

Explorer
Der Windows Explorer, kurz Explorer, ist ein Dateiverwaltungsprogramm von Microsoft, das seit den früheren Versionen von Windows wie Windows 95 integraler Bestandt...

Verzeichnis
Verzeichnisse, oft auch als Ordner bezeichnet, sind essenzielle Strukturelemente in einem Dateisystem, um Dateien und andere Verzeichnisse übersichtlich zu organisie...