VCL Delphi

Title: How to get the amount of data in a memo control
Question: How do you tell the amount of data contained in a TMemo component?
Delphi has a finite TMemo limit and I want to check the available
size before adding new text. If the TMemo is too close to the l
Answer:
You could do something like this:
function GetTotalTextLength(var MyMemo : TMemo) : LongInt;
begin
{Lock all screen updates to prevent flickering}
LockWindowUpdates(Parent.Handle);
with MyMemo do begin
SelectAll;
Result := SelLength;
SelStart := 0;
SelLength := 0;
end;
LockWindowUpdates(0);
end;
What's happening above is that the screen is locked so that no
updates can be made during the course of the function's run.
Then all the text is selected in the memo with the SelectAll
method. The length of the selected text (SelLength) is then
assigned to the function's Result, then the cursor is moved
to the beginning of the memo. After that, LockWindowUpdate is
called with a zero-value handle, to unlock the screen.
Conceivably, this _should_ give you the length of the total
text. I haven't tried this myself, but it should work.
And if not, then just play with it. The idea is to select
all the text, then get the length. You might even try doing
this:
str := Memo1.Text;
TextLength := Length(str);
str := '';
However, this will take up resources.