Autor Beitrag
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 02.11.04 04:08 
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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Pr.Lines.Assign/Memo1.Lines); //"TMemoStrings kann nicht zu Form1 zugewiesen werden
pr.Lines.Add('hallo'); //Zugriffsverletzung bei Adresse xxxxxx in Modul ..exe. Schreiben von Adresse yyyyyy (x+y beides Hexwerte)
{sogar eine eigene Procedure dafür habe ich geschrieben.:}
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);//Zugriffsverletzung bei Adresse xxxxxx in Modul ..exe. Schreiben von Adresse yyyyyy (x+y beides Hexwerte)


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
JayEff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
JayEff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.