1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TMainForm.Load_Memos; var s:string; fs:TFileStream len:integer; begin fs:=TFileStream.Create(IncludeTrailingBackSlash(ExtractFilePath(application.Exename))+'data\news.fk', fmOpenRead); // ein direkter Bezug wie Du ihn benutzt funktioniert nur begrenzt. Änderst Du den aktuellen Pfad Deiner Anwendung z.B. über chDir landest Du in einem anderen Ordner!!
fs.Read(len, SizeOf(Len)); //Länge des ersten Memofeldes lesen SetLength(s, Len); //Die Länge von S anpassen - wichtig, da wir gleich direkt auf die Speicherzellen zugreifen if Len>0 then //Bedingung ist hier wichtig, da fs.read(beliebigeVariable, 0); eine Exception wirft!!! fs.Read(s[1], Len); //schreibe an die Speicherzelle des ersten Zeichens von s den Inhalt des ersten, gespeicherten Memofeldes ueberw_memo.text:=s; //Memoinhalt ersetzen
fs.Read(len, SizeOf(Len)); //Länge des zweiten Memofeldes lesen SetLength(s, Len); //Die Länge von S anpassen - wichtig, da wir gleich direkt auf die Speicherzellen zugreifen if Len>0 then //Bedingung ist hier wichtig, da fs.read(beliebigeVariable, 0); eine Exception wirft!!! fs.Read(s[1], Len); //schreibe an die Speicherzelle des ersten Zeichens von s den Inhalt des zweiten, gespeicherten Memofeldes kauf_memo.text:=s; //Memoinhalt ersetzen
fs.Read(len, SizeOf(Len)); //Länge des dritten Memofeldes lesen SetLength(s, Len); //Die Länge von S anpassen - wichtig, da wir gleich direkt auf die Speicherzellen zugreifen if Len>0 then //Bedingung ist hier wichtig, da fs.read(beliebigeVariable, 0); eine Exception wirft!!! fs.Read(s[1], Len); //schreibe an die Speicherzelle des ersten Zeichens von s den Inhalt des dritten, gespeicherten Memofeldes verkauf_memo.text:=s; //Memoinhalt ersetzen
fs.Free; end; |