ich habe folgendes Problem mit dem OpenDialog. Unter Win XP funktioniert der Quellcode mit der 32 Bit Version von Lazarus einwandfrei. Unter Win 7 mit der 64 Bit Version kann ich zum Beispiel im Laufwerk D einen beliebigen Pfad aussuchen und dort Textdateien laden. Aber wenn ich zum Beispiel vom Desktop oder aus den eigenen Dateien eine Textdatei öffnen möchte, bekomme ich nur ne Fehlermeldung. Woran kann das liegen ?
Hier mal der Quelltext vom Aufruf
In den Properties vom Open Dialog ist ein Filter der nur Textdateien zulässt. Weiterhin ist Path must exist und file must exist eingestellt sowie of Read only.
Code: Alles auswählen
procedure THauptprogramm.DopenClick(Sender: TObject); //Event Handler
var i,z:integer;
alenhilf: integer;
begin
if OpenDialog1.Execute then
AssignFile(f,OpenDialog1.FileName );
// Fehlermeldungen ausschalten:
{$i-}
Reset(f);
{$i+}
if IOResult <> 0 then begin
ShowMessage('Fehler ...');
Exit
end;
unsortiert.items.Clear;
sortiert.items.Clear;
array1 := NIL;
i:=0;
z:=0;
alenhilf := 0;
while not eof(f) do begin Readln(f,s);
t:= s;
ergebnis:= explode(' ',t,20);
z:= Length(ergebnis);
SetLength(array1,alenhilf + z);
for i:= 0 to (z-1) do begin
array1[alenhilf + i] := ergebnis[i];
end;
alenhilf := alenhilf + z;
end;
CloseFile(f);
for i:=0 to alenhilf-1 do
unsortiert.Items[i] := array1[i];
SetLength(array2,alenhilf);
for i:=0 to High(Array1) do begin
array2[i] := array1[i];
end
end;