Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Pascal
Expertise: Beginner
Mar 19, 1997

How can you tell the amount of data contained in a TMemo component?

Question:
How do you tell the amount of data contained in a TMemo component? Delphi1 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 limit, I can remove the first line and manage it as a kind of big buffer.

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.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date