AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMemo

Ein Thema von MarkusT7 · begonnen am 13. Nov 2003 · letzter Beitrag vom 26. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#1

TMemo

  Alt 13. Nov 2003, 08:56
Moin !

Ich hab mal ne Frage zum TMemo.

Ich verwende 2 TMemo Felder als Anzeige für eingehende Nachrichten (Länge 10 Zeichen), die ich dann auswerte und die die TMemos schreibe. Ab einer bestimmten Anzahl von Nachrichten (2000) löscht er die 100 ältesten.

Codeauszug dazu
AString:String;
myMemo1.Lines.Append(AString); // Nachricht hinzugefügt


Jetzt kommt es vor, daß die Anzeige im TMemo stehen bleibt, d.h. es werden keine neuen Nachrichten mehr hinzugefügt. Nach einem Löschvorgang läuft es dann ganz normal weiter.
Erst dachte ich, daß es mit der Speichergröße zusammenhängt (WIN 98 - 64KB), aber das Problem tritt nur sporadisch auf egal wieviel Lines ich im Memo zulasse und ist daher um so ärgerlicher.

Danke für die Hilfe !
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TMemo

  Alt 13. Nov 2003, 15:25
Es lommt nicht auf die Zeilen, sondern auf die Anzahl der Zeichen an. Ein zeichen = 1 Byte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#3

Re: TMemo

  Alt 13. Nov 2003, 15:45
Jede Nachricht hat 20 Zeichen, also umfaßt 20 Byte.
Bei einer maximalen Größe von 64 KB (65535 Byte) wären dann
rein theoretisch 3276 Nachrichten zulässig pro Memofeld.

Ich habe aber maximal 2000 Nachrichten also 40000 Byte.
Damit ist die Obergrenze nicht erreicht.
Selbst wenn noch am Ende jedes Telegramms ein CR und ein Linefeed folgt (ASCII #13,#10) liege ich innerhalb der maximal erlaubten Speichergröße.

Summe Nachrichten + Summe (CR und Linefeed)
=44000 Byte, Max. erlaubt unter Win98 (65535)

Da ich aber nicht Win98 verwende, sondern WIN2000 ist selbst diese Speichergrenze hinfällig. Da bin ich mir aber nicht sicher und nehme deswegen erstmal 65535 Byte an.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TMemo

  Alt 13. Nov 2003, 15:48
Nein, ist sie nicht. Steht MaxLenght auf 0 ist sie auch bei Win2000 auf 64 KB begrenzt, du kannst sie aber beliebig hochsetzten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#5

Re: TMemo

  Alt 13. Nov 2003, 16:08
Damit wäre das Thema der Speicherbrenzung geklärt. Danke erstmal dafür !

Allerdings kann ich mir immer noch nicht vorstellen, warum die Aufzeichnung dann bei einer beliebigen Nachrichtenanzahl manchmal stehen bleibt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TMemo

  Alt 13. Nov 2003, 16:12
Wie sieht der restliche Speicher deiner Anwendung aus? Wenn dein Adressraum voll ist, dann kann auch das Memo nichts mehr aufnehmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#7

Re: TMemo

  Alt 13. Nov 2003, 16:44
Wie bekomme ich das denn raus ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TMemo

  Alt 13. Nov 2003, 16:46
Erstellst du Instanzen von Objekten und gibst sie nicht mehr frei? Große Arrays? Werden dynamische Arrays häufig vergrößert / verkleinert? ...
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#9

Re: TMemo

  Alt 14. Nov 2003, 07:34
Nein.
Ich arbeite mit Strings.
Ich verwende nur ein dyn.Array, welches aber während der normalen Laufzeit des Programmes nicht verwendet wird. Es wird zwar beim Programmstart initialisiert, aber nur auf die Größe 1.
  Mit Zitat antworten Zitat
MarkusT7

Registriert seit: 13. Nov 2003
8 Beiträge
 
#10

Re: TMemo

  Alt 26. Nov 2003, 12:01
Hmmm ... seit 2 Wochen keine Antwort. Es gibt also keine Lösung für dieses Problem.

Ich habe inzischen die maximal zulässige Anzahl der eingehenden Nachrichten pro Memofeld halbiert und seit dem läuft es. Kann es sein, daß die Memofelder auf den selben Speicher zugreifen und sich die 64k teilen müssen ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 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