Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
Why does this happen
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
Forum Rules
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Lazarus Main and Gnome/Wa...
by
dbannon
[
Today
at 04:54:01 am]
FPC Unleashed (inline var...
by
440bx
[
Today
at 01:25:18 am]
Splitting Picture into Qu...
by
ADMGNS
[June 06, 2026, 10:44:04 pm]
[New Component] ExtTabCtr...
by
wp
[June 06, 2026, 10:19:06 pm]
water filling simulation
by
ADMGNS
[June 06, 2026, 09:54:50 pm]
Array of structure -> str...
by
Seenkao
[June 06, 2026, 09:44:44 pm]
Very rough version of a s...
by
Hansvb
[June 06, 2026, 08:56:35 pm]
Portable verion of FPC an...
by
backprop
[June 06, 2026, 08:40:34 pm]
GDB 17 for Windows
by
Martin_fr
[June 06, 2026, 08:26:24 pm]
TStringGrid Question
by
J-G
[June 06, 2026, 08:05:52 pm]
Benchmark: converting arr...
by
LemonParty
[June 06, 2026, 03:25:25 pm]
Read/Parse PDB file to ge...
by
marcov
[June 06, 2026, 02:48:12 pm]
[SOVLED]Curved text in La...
by
paweld
[June 06, 2026, 11:00:52 am]
Fast Canvas Library V1.05...
by
microxa
[June 06, 2026, 07:03:07 am]
"Identifier idents no mem...
by
Thaddy
[June 06, 2026, 05:43:52 am]
[SOLVED] TPrintDialog Pro...
by
spuds
[June 06, 2026, 01:30:20 am]
TPairsplitter could be be...
by
jamie
[June 06, 2026, 12:36:34 am]
FloatToStr issue
by
J-G
[June 06, 2026, 12:06:38 am]
Release ray4laz 6.0
by
Fred vS
[June 05, 2026, 09:06:27 pm]
Pascal for AI Agent CLI T...
by
Martin_fr
[June 05, 2026, 08:01:11 pm]
storing assets for releas...
by
flowCRANE
[June 05, 2026, 07:30:13 pm]
Benchmark aligned vs unal...
by
LeP
[June 05, 2026, 06:33:08 pm]
TstringGrid read cell col...
by
hedgehog
[June 05, 2026, 06:29:11 pm]
Range checks and `Move` o...
by
ASerge
[June 05, 2026, 05:17:19 pm]
Why is var after type in ...
by
Warfley
[June 05, 2026, 02:36:17 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: Why does this happen (Read 1052 times)
Ten_Mile_Hike
Full Member
Posts: 140
Why does this happen
«
on:
May 19, 2025, 10:20:59 pm »
Why does the following code produce Tmemo lines
as short as 7 to as long as 26 characters when
wordwrap is on?
There are no #13 or #10 chars in the string- S
The font is monospaced
Attached is a picture of Tmemo
Code: Pascal
[Select]
[+]
[-]
var
S
:
String
=
''
;
begin
Repeat
S
:
=
S
+
Chr
(
Random
(
95
)
+
32
)
;
//32..126
until
Length
(
S
)
>
10000
;
Memo1
.
Text
:
=
S
;
end
;
Logged
When any government, or any church for that matter, undertakes to say to its subjects, This you may not read, this you
must not see, this you are forbidden to know, the end result is tyranny and oppression no matter how holy the motives.
Robert A. Heinlein
Fibonacci
Hero Member
Posts: 994
Behold, I bring salvation - FPC Unleashed
Re: Why does this happen
«
Reply #1 on:
May 19, 2025, 10:28:37 pm »
Because there has to be a line break somewhere, and the preferred place is a space character (32)
Logged
FPC Unleashed
- inline vars, tuples, statement expressions, array equality, compound assignments, indexed/lazy labels, no-RTTI & more. ⭐
Star it on GitHub!
Bart
Hero Member
Posts: 5727
Re: Why does this happen
«
Reply #2 on:
May 19, 2025, 10:31:02 pm »
And if there are no suitable breaking characters, Windows will break the line where it sees fit.
Bart
Logged
Ten_Mile_Hike
Full Member
Posts: 140
Re: Why does this happen
«
Reply #3 on:
May 19, 2025, 11:00:48 pm »
A simple fix for uniform line lengths is
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
Button1Click
(
Sender
:
TObject
)
;
var
x
:
Integer
;
s1
,
s2
:
String
;
begin
s1
:
=
''
;
s2
:
=
''
;
Memo1
.
Clear
;
Repeat
S1
:
=
S1
+
Chr
(
Random
(
95
)
+
32
)
;
//32..126
until
Length
(
S1
)
>
=
10000
;
For
x
:
=
1
To
Length
(
S1
)
Do
Begin
s2
:
=
s2
+
s1
[
x
]
;
if
x
mod
20
=
0
then
s2
:
=
s2
+
#13
#10
;
end
;
Memo1
.
Text
:
=
S2
;
end
;
But I never knew that #32 could be used as a line break by windows
Logged
When any government, or any church for that matter, undertakes to say to its subjects, This you may not read, this you
must not see, this you are forbidden to know, the end result is tyranny and oppression no matter how holy the motives.
Robert A. Heinlein
dbannon
Hero Member
Posts: 3822
Re: Why does this happen
«
Reply #4 on:
May 20, 2025, 01:47:37 am »
Quote from: Ten_Mile_Hike on May 19, 2025, 11:00:48 pm
...
But I never knew that #32 could be used as a line break by windows
No, its not being used as a line break, its just a suitable place to insert a line break.
Davo
Logged
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project -
https://github.com/tomboy-notes/tomboy-ng
and my github -
https://github.com/davidbannon
Ten_Mile_Hike
Full Member
Posts: 140
Re: Why does this happen
«
Reply #5 on:
May 20, 2025, 07:26:51 am »
To be clear; is this a Windows thing or a TMemo thing?
Logged
When any government, or any church for that matter, undertakes to say to its subjects, This you may not read, this you
must not see, this you are forbidden to know, the end result is tyranny and oppression no matter how holy the motives.
Robert A. Heinlein
Thaddy
Hero Member
Posts: 19241
Glad to be alive.
Re: Why does this happen
«
Reply #6 on:
May 20, 2025, 08:37:26 am »
The maximum
line
length in a Windows textbox, which is the underlying widget on windows is 32,767. But note it may be affected by scrollbar settings.
In effect, that means that within limits it should not be Windows but the TMemo implementation.
«
Last Edit: May 20, 2025, 08:38:57 am by Thaddy
»
Logged
objects are fine constructs. You can even initialize them with constructors.
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
Why does this happen
TinyPortal
© 2005-2018