AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TMemo in Android "hängt'

Ein Thema von skoschke · begonnen am 24. Nov 2022 · letzter Beitrag vom 24. Nov 2022
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
436 Beiträge
 
Delphi 10.4 Sydney
 
#1

TMemo in Android "hängt'

  Alt 24. Nov 2022, 11:20
Hallo,

in einer App zur Stromzählerauslesung verwende ich ein TMemo zur Kommunikationsanzeige...

Die vom Zähler empfangenen Zeilen packe ich so in etwa ins Memo:

Delphi-Quellcode:
 
  //inbuffer sind die am COMPort angekommenen Zeichen
  p := pos(cr + lf, inbuffer);
  while p <> 0 do
  begin
    zl := copy(inbuffer, 1, p - 1);
    Memo.lines.Add(zl);
    inbuffer := copy(inbuffer, p + 2, inbuffer.Length - p - 1);
    p := pos(cr + lf, inbuffer);
  end;
  Memo.GoToTextEnd;
  Memo.GoToLineBegin;
Die beiden letzten Zeilen sollen dafür sorgen, dass immer das Ende der Daten sichtbar ist.

Bei den geschätzt ersten 4000 Zeilen geht das auch recht flüssig, danach wird es immer zäher ind das Memo aktualisiert sich nur noch etwa alle 30, zum Ende hin alle 50 Zeilen (man sieht große Sprünge)

Insgesamt sind ca. 6000 Zeilen zu bearbeiten!

Hat jemand eine Idee, wie man das flüssiger hinbekommen kann?

Ciao
Stefan
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.671 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 11:29
beginUpdate - endUpate vielleicht.
Klaus
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
436 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 12:00
wann soll das verwendet werden?
Vor Beginn und am Ende der Kommunikation?
Ich brauche die Anzeige der einlaufenden Zeilen!
Das wird so leider nichts...

Ciao
Stefan
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.671 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 12:10
.. ich hatte es so gemeint.
Delphi-Quellcode:
  memo.lines.beginUpdate;
  while p <> 0 do
  begin
    zl := copy(inbuffer, 1, p - 1);
    Memo.lines.Add(zl);
    inbuffer := copy(inbuffer, p + 2, inbuffer.Length - p - 1);
    p := pos(cr + lf, inbuffer);
  end;
  memo.lines.endUpdate;
Ob es Sinn macht, hängt auch davon ab, wieviele Zeilen addiert werden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
436 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 12:17
Ach so

Nein, in der Routine kommen teilweise nur halbe Zeilen an, erst wenn eine komplett ist, wird diese ausgegeben...

Ich suche schon nach einer anderen Komponente, aber so richtig finde ich nichts

Ciao
Stefan
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 14:08
Ich glaube nicht dass dein Kommunikationslog zu jeder Zeit sechstausend Zeilen lang sein muss.

Jeder wird damit klar kommen, im laufenden Betrieb die letzten 100-200 "Zeilen" zu sehen und sich danach evtl. durch einen großen Brocken zu wühlen.

PS: Ich habe so etwas (unter VCL) normalerweise auch immer mit zwei simplen Memos gemacht, aber ein TWebBrowser ist auch gar nicht so abwegig, je nach Protokoll kann man da auch toll Dinge zeigen wie in einem klassischen "Chat", Fragesteller rechts, Antwort links.
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
436 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TMemo in Android "hängt'

  Alt 24. Nov 2022, 14:52
Ja, so habe ich es jetzt auch umgeändert:

Ich sammle die Zeilen in einer TStringList (Protokoll), ein Label zeigt die zuletzt eingetragene Zeile an.
Damit hat man zumindest die Rückmeldung, dass sich da was "bewegt".

Am Ende der Kommunikation wird Memo.Text := Ptotokoll.Text übergeben, zum Anschauen...

Ciao
Stefan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf