Hallo Leute!
Bitte helft mir ich sitze gerade an einem Kontaktmanager und es kommen massig Probleme auf mich zu!
Zum Verständnis:
Ich speichere die Daten (Name, Nachname, Alter, Wohnort, usw..) in einen Stream Diese Daten speichere ich dann in
einen Unterordner da es viele verschiedene Kontakte(Torben, Otto, Hans, Peter) sind benenne ich die Daten in 1.OKM, 2.OKM, 3.OKM,
4.OKM, usw. Die Zahl ist abhängig von dem Listbox.ItemIndex d.h.:
Peter hat den Index 0 also Speichert er Peter als 0.OKM!
Zum Anfang werden diese Kontakte in einer Schleife geladen. Genau diese Schleife funktioniert nicht!
Hier der Quelltext:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
I : Integer;
S : String;
U : String;
begin
Form2.Listbox1.Items.LoadFromFile(ExtractFilePath(Application.ExeName)+'Speicher\LB.OKI');
S := Form2.Listbox1.Items.Strings[0];
Form2.ListBox1.Clear;
for I := 0 to StrtoInt(S) do
begin
Count := Count + 1;
Loadanfang;
Listbox1.Items.Add(Edit13.Text+' '+Edit14.Text);
end;
U := ExtractFilePath(Application.ExeName)+'Speicher\LB.OKI';
DeleteFile(U);
Application.OnIdle := IdleHandler;
Listbox1.ItemIndex := 0;
Laden;
end;
So das ist die OnShow procedure diese ruft in der Schleife die procedure
Loadanfang; auf:
Delphi-Quellcode:
procedure TForm1.Loadanfang;
var
Daten: TDatenArray;
Stream: TStream;
I: Integer;
Len: Longint;
begin
Stream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(Count)+'.OKM', fmOpenRead);
try
Stream.Read(Len, SizeOf(Len));
SetLength(Daten, Len);
for I := 0 to Len - 1 do
begin
Stream.Read(Daten[I].ID, SizeOf(Daten[I].ID));
Stream.Read(Len,SizeOf(Len));
SetLength(Daten[I].Name, Len);
Stream.Read(PChar(Daten[I].Name)^, Len);
end;
finally
Stream.Free;
end;
Edit13.Text := Daten[0].Name;
Edit14.Text := Daten[1].Name;
end;
Und hier ist noch die IdleHandler procedure:
Delphi-Quellcode:
procedure TForm1.IdleHandler(Sender: TObject; var Done: Boolean);
begin
Count := Listbox1.ItemIndex;
Sleep(1);
Done:= false;
end;
So vielleicht steigt ihr ja durch und findet einen Fehler!
Wenn euch was unklar ist dann fragt ruhig!!!