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
BGRABitmap - showcase -
by
circular
[
Today
at 11:35:16 am]
Autentication Oracle
by
TRon
[
Today
at 11:29:46 am]
Automatize build system
by
Чебурашка
[
Today
at 10:34:42 am]
Anyone interested in test...
by
ad1mt
[
Today
at 10:14:50 am]
TWSButton descendance
by
lagprogramming
[
Today
at 09:07:36 am]
lazarus controlling compi...
by
Thaddy
[
Today
at 08:21:16 am]
Unique Instance Terminate...
by
Weitentaaal
[
Today
at 07:38:49 am]
Chinese input in edit and...
by
myisjwj
[
Today
at 05:06:00 am]
Export Stringgrid to an x...
by
majid.ebru
[
Today
at 04:02:17 am]
[SOLVED] How to stay in t...
by
egsuh
[
Today
at 04:00:01 am]
Using tabs instead of spa...
by
Nadar
[
Today
at 03:50:30 am]
Fpcupdeluxe
by
Tony Stone
[
Today
at 02:53:15 am]
[SOLVED] TLabeledEdit.Edi...
by
dsiders
[
Today
at 02:08:20 am]
Stimulus Control: a teach...
by
cpicanco
[
Today
at 02:07:11 am]
Conscious Artificial Inte...
by
cpicanco
[
Today
at 01:18:43 am]
How to convert Real to Bi...
by
ad1mt
[December 06, 2023, 11:24:07 pm]
Small Status Bar Demo
by
MonsterMaze
[December 06, 2023, 09:04:06 pm]
Lazarus Release Candidate...
by
dedrasta
[December 06, 2023, 07:21:58 pm]
[Solved] i can't inatall ...
by
majid.ebru
[December 06, 2023, 06:55:28 pm]
ControlsCodePage presents...
by
Gercino
[December 06, 2023, 06:20:40 pm]
TStringGrid with stretche...
by
wp
[December 06, 2023, 05:54:54 pm]
Mac OS 3.0RC2 throws __da...
by
sawtelle
[December 06, 2023, 05:10:57 pm]
Battery Operations
by
Hansaplast
[December 06, 2023, 04:26:54 pm]
CORDIC algorithms
by
Curt Carpenter
[December 06, 2023, 04:23:32 pm]
Lazarus 3.9.9 Variable Wa...
by
Martin_fr
[December 06, 2023, 03:55:01 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: TMemo text width (Read 302 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: 11482
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