![]() |
TStrings Probleme
Hallo. Ich habe ein Memofeld per Stream abgespeichert und in einen Stream abgespeichert. Das auslesen klappt auch wunderbar über das Memofeld. Jedoch möchte ich nun an die Stringliste auch OHNE MemoFeld heran kommen. Wie geht das? Hier meine Idee.
Delphi-Quellcode:
procedure TFormDateneingabeBuecher.TabelleMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); var ACol, ARow: longint; Hint : String; StringList : TStrings; MemoryList : TMemoryStream; begin Tabelle.MouseToCell(X, Y, ACol, ARow); if (ACol = 3) then begin Hint := Tabelle.Cells[0, ARow]; Buecher[Tabelle.Row].Langbeschreibung.Position := 0; MemoryList := TMemoryStream.Create; MemoryList.LoadFromStream(Buecher[Tabelle.Row].Langbeschreibung); StringList := TStrings.Create; //Mit und ohne diese Zeile gibt es eine Fehlermeldung MemoryList.Position := 0; StringList.LoadFromStream(MemoryList); Tabelle.Hint:=Hint; if (ACol<>LastCol) or (ARow<>LastRow) then begin Application.CancelHint; LastCol:=ACol; LastRow:=ARow; end; MemoryList.Free; StringList.Free; end; end; |
Re: TStrings Probleme
Wieso der umweg über MemoryStream?
Und statt TStrings.Create einfach TStringsList.Create; - TStrings ist eine abstrakte Klasse!
Code:
procedure TFormDateneingabeBuecher.TabelleMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); var ACol, ARow: longint; Hint : String; StringList : TStrings; begin Tabelle.MouseToCell(X, Y, ACol, ARow); if (ACol = 3) then begin Hint := Tabelle.Cells[0, ARow]; Buecher[Tabelle.Row].Langbeschreibung.Position := 0; StringList := TStringsList.Create; StringList.LoadFromFile(Buecher[Tabelle.Row].Langbeschreibung); Tabelle.Hint:=Hint; if (ACol<>LastCol) or (ARow<>LastRow) then begin Application.CancelHint; LastCol:=ACol; LastRow:=ARow; end; StringList.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz