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
Inc operator overloading ...
by
TRon
[
Today
at 03:15:38 pm]
ANN: Native X.509, RSA an...
by
abouchez
[
Today
at 02:45:57 pm]
syncobjs.TEventObject cla...
by
AlexTP
[
Today
at 02:12:48 pm]
Problem with typing Shift...
by
Martin_fr
[
Today
at 01:58:18 pm]
RayLib 5.0
by
YiannisKam
[
Today
at 01:02:58 pm]
Feature announcement: Fun...
by
Zoran
[
Today
at 01:02:25 pm]
BGRA Controls
by
petevick
[
Today
at 12:08:48 pm]
Writing error when select...
by
Martin_fr
[
Today
at 11:49:41 am]
There is no iconv static ...
by
a8265348
[
Today
at 11:25:24 am]
Dynamical creation of obj...
by
maxerist
[
Today
at 11:17:54 am]
BGRABitmap - showcase -
by
circular
[
Today
at 11:09:24 am]
Stringgrid check only one...
by
Hansvb
[
Today
at 10:11:20 am]
BottomAxis Height
by
kapibara
[
Today
at 08:46:39 am]
AI cheetah
by
avra
[
Today
at 05:41:36 am]
LAMW 0.8.6.3
by
jmpessoa
[
Today
at 04:20:59 am]
SELECT - Criar sequencial...
by
CapitaoVirgulinoFerreira
[
Today
at 04:02:01 am]
Online Package Manager
by
dbannon
[
Today
at 12:43:21 am]
[Solved]Last page on Grid...
by
bobonwhidbey
[December 09, 2023, 11:58:42 pm]
likely/unlikely — will it...
by
furious programming
[December 09, 2023, 06:58:03 pm]
Fpcupdeluxe
by
fafafooey
[December 09, 2023, 06:22:39 pm]
Telegram bots API Wrapper
by
Renat.Su
[December 09, 2023, 05:18:43 pm]
Convertor PNG to TGA
by
BIT
[December 09, 2023, 03:45:34 pm]
Lazarus Release Candidate...
by
Martin_fr
[December 09, 2023, 03:05:56 pm]
LAMW - paintshader sample
by
Mongkey
[December 09, 2023, 02:20:44 pm]
Anyone interested in test...
by
ad1mt
[December 09, 2023, 01:37:36 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: TMemo text width (Read 303 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: 11485
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