Hi, hab deinen Code meinem entsprechend angepasst. Es wird zwar kompiliert, doch wenn ich das Programm starten will (das aus der Listbox) gibts eine Zugriffsverletzung...
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
function ShellExecuteErrMessage(int_Code: INTEGER):
String;
begin
case int_code
of
0: result := '
Zuwenig Speicher, ausführbare Datei war zerstört, Relokationswerte waren ungültig';
2: result := '
Datei wurde nicht gefunden.';
3: result := '
Verzeichnis wurde nicht gefunden.';
5: result := '
Fehler beim gemeinsamen Zugriff auf eine Datei im Netz oder Fehler beim Zugriff auf eine gesperrte Datei im Netz.';
6: result := '
Bibliothek forderte separate Datensegmente für jede Task an.';
8: result := '
Zuwenig Speicher, um die Anwendung zu starten.';
10: result := '
Falsche Windows-Version.';
11: result := '
Ungültige ausführbare Datei. Entweder keine Windows-Anwendung oder Fehler in der EXE-Datei.';
12: result := '
Anwendung für ein anderes Betriebssystem.';
13: result := '
Anwendung für MS-DOS 4.0.';
14: result := '
Typ der ausführbaren Datei unbekannt.';
15: result := '
Versuch, eine Real-Mode-Anwendung (für eine frühere Windows-Version) zu laden.';
16: result := '
Versuch, eine zweite Instanz einer ausführbaren Datei mit mehreren Datensegmenten die nicht als nur lesbar gekennzeichnet waren, zu laden.';
19: result := '
Versuch, eine komprimierte ausführbare Datei zu laden.' + #13 + '
Die Datei muß dekomprimiert werden, bevor sie geladen werden kann.';
20: result := '
Ungültige dynamische Linkbibliothek (DLL).' + #13 + '
Eine der DLLs, die benötigt wurde, um die Anwendung auszuführen, war beschädigt.';
else
result := '
Ein Unbekannter Fehler ist aufgetreten. (' + IntToStr(int_code) + '
)';
end;
end;
var
Err: Integer;
lIndex: Integer;
begin
if OpenDialog1.Execute()
then
begin
lIndex := Length(MeinArray);
SetLength(MeinArray, lIndex + 1);
MeinArray[lIndex].RealFileName := OpenDialog1.FileName;
MeinArray[lIndex].DisplayName := Form4.Edit1.Text;
ListBox1.Items.Add(MeinArray[lIndex].DisplayName);
end;
if Err <= 32
then
Showmessage(ShellExecuteErrMessage(Err));
if FileExists (OpenDialog2.FileName)
then
begin
if CheckBox2.Checked
then
Application.Minimize;
end;
end;
was hab ich falsch gemacht?