Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RichEdit ... Out of Resources? (https://www.delphipraxis.net/4539-richedit-out-resources.html)

Pseudemys Nelsoni 3. Mai 2003 20:19


RichEdit ... Out of Resources?
 
Liste der Anhänge anzeigen (Anzahl: 1)
hi,

ich habe in meinem irc client lediglich mein Memo durch ein richedit ersetzt, und ich erhalte die fehlermeldung, wenn ich text einfüg:

phlux 3. Mai 2003 20:26

hi!
ich bin mir nicht sicher aber vllt war die zeile zu lang fürs memo:?:

mfg chris

mirage228 3. Mai 2003 20:28

ich würde für langetexte nicht "Lines.Add", sondern

Richedit1.Text := Richedit1.Text + NeuerText; // hinzufügen

sonst Richedit1.Text := NeuerText;

nehmen

den fehler hatte ich nämlich auch ma

Pseudemys Nelsoni 3. Mai 2003 20:35

fängt das nich an lahm zu werden? ich meine sagen wir mal es sind 1000 zeilen, und für jeden neuen text den ich dann hinzufüge müssen die anderen 1000 auch wieder hinzu?

mirage228 3. Mai 2003 20:38

RichEdit1.Text := RichEdit1.Text + NeuerText;

ist im Prinzip das gleiche, wie

Richedit1.Lines.Add(NeuerText);

phlux 3. Mai 2003 20:38

nee wird auch mmit der emthode einfach da dran gehangen wie mit add. nur anders halt.

Pseudemys Nelsoni 3. Mai 2003 20:43

muss ich dann + #10 + #13 an jedes ende anfügen?

mirage228 3. Mai 2003 20:45

ja musst du, falls du eine zeile anfangen willst, aber das ist kein allzugroßer aufwand ;-)

Pseudemys Nelsoni 3. Mai 2003 20:46

ok danke :)


bte wofür genau steht die #10?

#13 = enter das weiss ich <g>

mirage228 3. Mai 2003 20:50

#10 = Ans Ende der Zeile
#13 = Neue Zeile anfangen

so isses glaub ich

Pseudemys Nelsoni 3. Mai 2003 21:31

also wenn ich:

RichEdit1.Text := RichEdit1.Text + 'HierDerText' + #10 + #13;

mache, und text hinzu kommt, sieht das so aus:

Zeile 1

Zeile 2

Zeile 3

also mit zwischen räumen, hab ich wieder was verkehrt? *g

mirage228 4. Mai 2003 06:33

lass das #13 ma weg, dann gehts

Luckie 4. Mai 2003 08:21

So. Unter was für einen Betriebssystem läuft das zur Zeit?

Ich habe mal in der Delphi-Hilfe und im PSDK nachgelesen und konnte folgendes für ein RichEdit rausfiltern:
Wenn man bei MaxLength null an gibt, dann bedeutet das Laut Delphi-Hilfe:
Zitat:

A value of 0 indicates that there is no application-defined limit on the length.
So, im PSDK steht aber::
Zitat:

The EM_EXLIMITTEXT message sets an upper limit to the amount of text the user can type or paste into a rich edit control.
Mit folgender Erklärung:
Zitat:

lParam
Specifies the maximum amount of text that can be entered. If this parameter is zero, the default maximum is used, which is 64K characters. A Component Object Model (COM) object counts as a single character.
Bzw. bei den Remarks:
Zitat:

Before EM_EXLIMITTEXT is called, the default limit to the amount of text a user can enter is 32,767 characters.
So, ich denke mal dein RichEdit ist schlicht und ergreifend voll oder wenn du unter Windows98/ME arbeitest, der Speicher nicht mehr zu läßt.

Daniel B 4. Mai 2003 10:47

Hallo,

und ab nach VCL-Komponenten.

Grüsse, Daniel :hi:

Pseudemys Nelsoni 18. Mai 2003 11:11

Zitat:

So, ich denke mal dein RichEdit ist schlicht und ergreifend voll oder wenn du unter Windows98/ME arbeitest, der Speicher nicht mehr zu läßt.

heisst das ich kanns nicht mit lines.add machen?

Daniel B 18. Mai 2003 11:16

Hallo,
Zitat:

Zitat von silent
heisst das ich kanns nicht mit lines.add machen?

Das hat nicht damit zutun, wie Du es da rein bringst, sondenr mit der Datenmenge.

Grüsse, Daniel :hi:

Pseudemys Nelsoni 18. Mai 2003 12:03

hm ok, dann hab ich noch ne frage brb =)

Christian Seehase 18. Mai 2003 13:16

Moin Zusammen,

mit der Eigenschaft Text zu arbeiten sollte nach Möglichkeit vermieden werden, da dies stark auf die Performance gehen kann.
Jedesmal, wenn Text ausgelesen wird, so werden alle Zeilen zu dieser Eigenschaft zusammengesetzt, und wenn Text geschrieben wird, wird der zu übergebende Wert in Zeilen aufgespalten. In letzterem Falle werden erkannte Zeilen übrigens intern auch mit Add hinzugefügt.

Ausserdem sollte man als Zeilenendemarkierung immer #13#10 verwenden, da dies die unter Windows übliche Markierung ist.
(#13 => Carriage Return => An den Anfang der Zeile, #10 => Line Feed => Zeilenvorschub)

Luckie 18. Mai 2003 15:38

Wenn die Wassertonne voll ist, dannkannst du werder mit dem Zahnputzbecher noch mit dem 10-Liter-Eimer was reinschütten.

Unter NT-basierenden Systemen sollten aber bis zu 2 GB an Daten reinpassen. Wie viel steht denn schon drin?

Pseudemys Nelsoni 18. Mai 2003 16:21

es steht am anfang nichts drin, aber da es ein chat ist wirds immer voller. wären 64k denn viel?

KochFolie 18. Apr 2004 20:58

Re: RichEdit ... Out of Resources?
 
hab dasselbe problem,
eine 1,51kb .rtf kann ich nicht einfügen, aber eine 1,13kb .txt -.-

so ok, hier steht jetz richedit is voll.. hab XP an 98 liegts auch nicht... also kann man das irgendwie umgehen? :(
gibt es eine alternative zu richedit oder..

Bernhard Geyer 20. Apr 2004 18:09

Re: RichEdit ... Out of Resources?
 
1, Falls ein paar € kosten darf: TRichView

2, Evtl reicht auch schon die modernere Kapslung des RichEdit-Controls in der Jedi Code Library

3, Hast Du schon daran gedacht evtl. statt RTF, HTML zu nehmen? Dann könntest Du z.B. das IE-Control zur Anzeige nehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz