Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Free Pascal
»
Beginners
(Moderators:
FPK
,
Tomas Hajny
) »
TMemo text width
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
IRC channel
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Online Package Manager
by
lainz
[
Today
at 10:34:18 pm]
BGRA Controls
by
lainz
[
Today
at 10:32:06 pm]
Windows API and wide/unic...
by
Nadar
[
Today
at 10:08:16 pm]
how to change color of a ...
by
Ten_Mile_Hike
[
Today
at 09:37:04 pm]
Lazarus 3.0 on linux does...
by
Codrut1001
[
Today
at 08:47:35 pm]
BGRA Controls Install Lat...
by
andrew Bubble
[
Today
at 08:43:54 pm]
Date-Stamp DBDateEdit
by
1HuntnMan
[
Today
at 08:35:55 pm]
What is the meaning of TF...
by
Hartmut
[
Today
at 05:35:18 pm]
ImGui FreePascal Binding ...
by
Coldzer0
[
Today
at 05:28:50 pm]
Can't build a project gro...
by
MarkMLl
[
Today
at 05:22:14 pm]
TFileStream.ReadAnsiStrin...
by
simone
[
Today
at 05:16:57 pm]
Why cannot this be inline...
by
Stefan Glienke
[
Today
at 05:05:12 pm]
TPath enhancements (Issue...
by
VisualLab
[
Today
at 04:47:46 pm]
Sleep forever
by
jollytall
[
Today
at 03:56:12 pm]
jwabcrypt unit is missing
by
fpc_2024
[
Today
at 03:08:24 pm]
Problems with accentuatio...
by
Gercino
[
Today
at 02:47:54 pm]
Lazarus Install PI5 Bookw...
by
paweld
[
Today
at 01:36:00 pm]
Conscious Artificial Inte...
by
Dzandaa
[
Today
at 01:07:14 pm]
BGRABitmap - showcase -
by
Mongkey
[
Today
at 11:14:36 am]
Patt - a small ball bounc...
by
thehay95
[
Today
at 11:06:17 am]
Huge problem with open fi...
by
dseligo
[
Today
at 10:09:29 am]
[SOLVED] TPanel slider po...
by
Thaddy
[
Today
at 09:21:09 am]
Lazarus corrupted my enti...
by
Martin_fr
[
Today
at 08:50:09 am]
GUI for ChatGPT (yarvis)
by
Thaddy
[
Today
at 07:46:19 am]
Lazarus IDE Windows "stuc...
by
Tony Stone
[
Today
at 01:47:54 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: TMemo text width (Read 300 times)
Kaller
Jr. Member
Posts: 72
TMemo text width
«
on:
September 28, 2023, 11:42:01 am »
TMemo does not seem to expose a canvas property, I want to calculate the text width of a Memo line given font etc. I was thinking maybe I need a temporary canvas or something just to do the calculation. What's the best way to go about it?
Logged
wp
Hero Member
Posts: 11445
Re: TMemo text width
«
Reply #1 on:
September 28, 2023, 12:50:05 pm »
You could temporatily create a bitmap, or a TControlCanvas for the control under investigation:
Code: Pascal
[Select]
[+]
[-]
function
GetControlTextWidth
(
AControl
:
TControl
;
AText
:
String
)
:
Integer
;
var
c
:
TControlCanvas
;
begin
c
:
=
TControlCanvas
.
Create
;
try
c
.
Control
:
=
AControl
;
c
.
Font
.
Assign
(
AControl
.
Font
)
;
Result
:
=
c
.
TextWidth
(
AText
)
;
finally
c
.
Free
;
end
;
end
;
procedure
TForm1
.
Button1Click
(
Sender
:
TObject
)
;
var
w
:
Integer
;
begin
w
:
=
GetControlTextWidth
(
Memo1
,
'Memo1'
)
;
ShowMessage
(
w
.
ToString
)
;
end
;
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Free Pascal
»
Beginners
(Moderators:
FPK
,
Tomas Hajny
) »
TMemo text width
TinyPortal
© 2005-2018