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:
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 SieStarten, [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.