Entwickler-Ecke
Sonstiges (Delphi) - Lines.Add bei eigenem Objekt
JayEff - Di 02.11.04 04:08
Titel: Lines.Add bei eigenem Objekt
Ich habe eine Unit geschrieben, mit der man möglichst einfach Text Drucken können soll. dabei habe ich dem Objekt TEasyPrinter eine Eigenschaft Lines gegeben, die die Zeilen enthält, die gedruckt werden sollen. Um dieser Eigenschaft etwas zuzuweisen habe ich mehreres versucht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Pr.Lines.Assign/Memo1.Lines); pr.Lines.Add('hallo'); procedure TEasyPrinter.AddLines(s:TStrings); var i:integer; begin Lines.Text:=''; for i:=0 to s.Count-1 do begin Lines.Add(s[i]); end; end; ------ pr.AddLines(Memo1.Lines); |
Die versuche, im Constructor Lines:=TStrings.Create; einzusetzen und auch, als ich versuchte die Abstrakten Methoden wegzubekommen (mit TStringList) ergaben doch glatt beim schliessen Exceptionen und sogar einen Runtime Error.
Ich weis einfach nicht was ich falsch mache! das ist mir zu hoch... vielleciht ist einfach 3 uhr nachts auch die falsche Zeit zum Proggen... bis morgen..
Danke für Antworten!!!
Keldorn - Di 02.11.04 09:17
Hallo
im Constructor Lines:=TStrings.Create ist schon richtig, besser wäre lines als Tstrings zu deklarieren und Lines:=TStringlist.Create zu schreiben.
Dein PR- dingsda mußt du natürlich auch irgendwo erzeugen PR:=TEasyPrinter.create;
Mfg Frank
JayEff - Di 02.11.04 15:31
Danke! Jetzt klappt alles! Jegliche RuntimeErrors und was weis ich! Alles ist weg! Sogar die Farbänderung klappt!!! Ich dachte das ist zu hoch für mich aber ich bin ja so blöd xD
Ich wusste garnicht, dass man aTStrings:=TstringList.create benutzen kann! Dachte, das muss so erstellt werden, wie es deklariert ist (also Tstrings mit Tstrings.Create...)
Keldorn - Di 02.11.04 15:43
| JayEff hat folgendes geschrieben: |
| Ich wusste garnicht, dass man aTStrings:=TstringList.create benutzen kann! Dachte, das muss so erstellt werden, wie es deklariert ist (also Tstrings mit Tstrings.Create...) |
mußt du sogar. in Tstrings sind viele Methoden nur abstrakt und werden erst in Tstringlist eingeführt. Schreibst du nur aTStrings:=Tstrings.create wirst du öfters mal "abstrake Errors" erhalten.
Deklarierst du Var aTStrings:TstringList wirst du Probleme bei dem Zuweisen an Memos/listboxen etc. bekommen, (inkompatible Typen).
achso und wenn du Objekte erzeugst, mußt du sie natürlich asuch wieder mit free freigeben.
Mfg Frank
JayEff - Di 02.11.04 16:15
-.- oooohhh jaaaaa Abstrakte Fehler kenne ich. Als abhilfe hab ich eine TStringList genommen und aTStringList.Assign oder so benutzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!