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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date