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
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
Minor Q: HowTo use 'Debug...
by
Martin_fr
[
Today
at 11:41:36 pm]
Time & Billing Accounting...
by
silvercoder70
[
Today
at 11:17:33 pm]
Status of GLScene for Laz...
by
silvercoder70
[
Today
at 11:10:32 pm]
Resolving procedure symbo...
by
MarkMLl
[
Today
at 10:08:15 pm]
D2Bridge Framework for La...
by
nummer8
[
Today
at 09:38:44 pm]
How do you maintain your ...
by
MarkMLl
[
Today
at 09:20:55 pm]
Run ffmpeg via TProcess
by
HobbyDev
[
Today
at 08:51:52 pm]
IContainers
by
cdbc
[
Today
at 07:28:18 pm]
fpc trunk:I can't build i...
by
zoltanleo
[
Today
at 07:09:08 pm]
Loading TIFF Files in Bgr...
by
wp
[
Today
at 05:51:54 pm]
Does not suggest function...
by
WooBean
[
Today
at 05:40:56 pm]
[SOLVED] using TForm.OnPa...
by
Remy Lebeau
[
Today
at 05:34:54 pm]
My first "tool" written w...
by
TBMan
[
Today
at 05:28:10 pm]
No access to the wiki
by
Thaddy
[
Today
at 04:55:31 pm]
UK's Online Safety Act
by
LV
[
Today
at 04:54:10 pm]
Error 403 downloading wit...
by
Thaddy
[
Today
at 03:29:23 pm]
Preparing FPC 3.2.4, poin...
by
Thaddy
[
Today
at 02:32:36 pm]
Select cell in listview /...
by
Jonny
[
Today
at 02:32:19 pm]
Post your artwork made fr...
by
circular
[
Today
at 12:41:24 pm]
[SOLVED] SetPart ?
by
circular
[
Today
at 12:28:21 pm]
Does unit recompilation r...
by
cdbc
[
Today
at 11:48:20 am]
Compile on multiple distr...
by
dbannon
[
Today
at 09:28:37 am]
Intricate LSystem Snowfla...
by
Boleeman
[
Today
at 07:59:07 am]
[SOLVED] How to add new ...
by
eolandro
[
Today
at 03:39:09 am]
BGRA Controls
by
lainz
[
Today
at 03:22:52 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: TMemo text width (Read 713 times)
Kaller
Jr. Member
Posts: 73
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: 12525
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