SigSev bei Adresse 4 ? TStringlist

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Reinhard
Beiträge: 46
Registriert: Fr 26. Sep 2008, 16:56

SigSev bei Adresse 4 ? TStringlist

Beitrag von Reinhard »

Hallo, habe ein kleines Problem mit TStringlist.

Folgendes :

Ich deklariere eine Variable namens "Test" vom Typ "TStrings" (Test=TStrings)

Danach wird die variable als Stringliste erzeugt.

Code: Alles auswählen

Test:=TStringlist.create;
Danach wieder zerstört mit

Code: Alles auswählen

Test.Free;
funktioniert soweit auch korrekt, jedoch kommt nun folgendes :

Übergebe ich nun den Inhalt eines SynMemos an die variable "Test" - was auch korrekt funktioniert

Code: Alles auswählen

test:=SynEdi1.Memo.lines
kann ich die Variable "Test" nicht mehr zerstören.

( Test.Free bringt einen SigSev error an Adresse 4 ??? )

Der Fehler kommt nur wenn ich etwas in das SynMemo eingebe, erfolgt keine Eingabe in das SynMemo,kann ich die Variable "Test" trotz Zuweisung zerstören.

Das ganze sieht so aus :

Code: Alles auswählen

Var 
  Test:TStrings;
 
 
Begin
Test:=TStringlist.create;
test:=SynMemo1.lines;
Test.Free;
End.
Zuletzt geändert von Lori am So 29. Jan 2012, 17:10, insgesamt 1-mal geändert.
Grund: Highlighter

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: SigSev bei Adresse 4 ? TStringlist

Beitrag von theo »

Reinhard hat geschrieben:
Übergebe ich nun den Inhalt eines SynMemos an die variable "Test" - was auch korrekt funktioniert

(test:=SynEdi1.Memo.lines)
Tust du nicht, du hängst den Zeiger um. Was du willst ginge so:

Code: Alles auswählen

sl:=TStringList.Create;
sl.Assign(SynMemo1.Lines);
ODER
sl.Text:=SynMemo1.Text;
sl.free;

Reinhard
Beiträge: 46
Registriert: Fr 26. Sep 2008, 16:56

Re: SigSev bei Adresse 4 ? TStringlist

Beitrag von Reinhard »

theo hat geschrieben:
Reinhard hat geschrieben:
Übergebe ich nun den Inhalt eines SynMemos an die variable "Test" - was auch korrekt funktioniert

(test:=SynEdi1.Memo.lines)
Tust du nicht, du hängst den Zeiger um. Was du willst ginge so:

Code: Alles auswählen

sl:=TStringList.Create;
sl.Assign(SynMemo1.Lines);
ODER
sl.Text:=SynMemo1.Text;
sl.free;
Ahhh super so funktioniert es !

Danke

Antworten