[Lazarus] How to fix slow screen refresh of TListbox?
Salvatore Coppola
coppolastudio at gmail.com
Tue Nov 22 16:13:48 CET 2022
Back to the first question. You can append your data with lb.items.text.
Just prepare your data in a string like this: strtmp:=data1+lineending+data2+lineending+.....
And append lb.items.text:=lb.items.text+lineending+strtmp
Yes it is a workaround but do the trick like beginupdate
Ciao
Ottieni BlueMail per Android
Il giorno 11 Nov 2022, 16:29, alle ore 16:29, Bo Berglund via lazarus <lazarus at lists.lazarus-ide.org> ha scritto:
>I am using a TListbox component on a form for displaying debug data
>arriving
>over a serial line at 115200 baud.
>The data are a set of MQTT telegram texts which arrive in packets of
>about 40
>lines each time (once per 10 seconds).
>I add them to the listbox as follows:
>
>procedure THanSimulatorMain.OnRxData(Sender: TObject; const Data:
>TBytes);
>var
> len, oldlen: integer;
> DataTxt: AnsiString;
>begin
> len := Length(Data); //Incoming packet
> oldlen := Length(DataBuffer);
> SetLength(DataBuffer, oldlen + len);
> Move(Data[0], DataBuffer[oldlen], len);
> SetLength(DataTxt, Length(DataBuffer));
> Move(DataBuffer[0], DataTxt[1], Length(DataBuffer));
> lbxRxData.Items.Text := DataTxt; //Add the text to the list
> lbxRxData.ItemIndex := lbxRxData.Items.Count -1; //To make it visible
>end;
>
>DataBuffer is a global TBytes container where the incoming data are
>stuffed as
>they arrive (it grows during the session).
>You see that the buffer contains the complete log history from the
>start...
>
>I have noticed that after a while the display becomes very sluggish
>when data
>arrives and I think that is due to the way the component operates.
>
>Now I wonder if there is some way to do as I did when I worked in
>Delphi with
>TListView objects, where I could use the BeginUpdate and EndUpdate
>calls to make
>all screen updates wait until it was all put in place.
>This was MUCH faster!
>
>But I can not find a BeginUpdate on the TListBox object, only
>BeginUpdateBounds,
>which does not tell me much....
>
>Any suggestions?
>
>
>--
>Bo Berglund
>Developer in Sweden
>
>--
>_______________________________________________
>lazarus mailing list
>lazarus at lists.lazarus-ide.org
>https://lists.lazarus-ide.org/listinfo/lazarus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20221122/ca964670/attachment.htm>
More information about the lazarus
mailing list