Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
How single procedure ends in different results
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
[hacked for now] Changing...
by
jamie
[
Today
at 01:24:48 pm]
AI interactions
by
gidesa
[
Today
at 12:58:52 pm]
TLazSerial : serial port ...
by
dbannon
[
Today
at 12:41:12 pm]
Error: Enumeration symbol...
by
nanobit
[
Today
at 12:35:40 pm]
Recomendations for conver...
by
kompustelnik
[
Today
at 11:20:05 am]
Qt6 / X11: problem with G...
by
paweld
[
Today
at 11:14:43 am]
[Solved] Lookup field: er...
by
BlueIcaro
[
Today
at 09:59:57 am]
connecting to mariadb
by
Zvoni
[
Today
at 09:31:54 am]
delete cookies
by
tintinux
[
Today
at 09:26:01 am]
Why does the call via fun...
by
Thaddy
[
Today
at 08:57:45 am]
LCL Web Native with D2Bri...
by
egsuh
[
Today
at 08:10:14 am]
Access Violation - Databa...
by
Xenno
[
Today
at 06:21:52 am]
Question re. FCL's ssocke...
by
Curt Carpenter
[
Today
at 12:22:45 am]
SpkToolbar custom update
by
wp
[December 14, 2025, 11:55:55 pm]
MVP made easier.
by
cdbc
[December 14, 2025, 05:14:40 pm]
Lazarus is not working
by
Fred vS
[December 14, 2025, 05:14:20 pm]
TIBDataSet "Closing"? on ...
by
RedOctober
[December 14, 2025, 04:52:18 pm]
Running External Tools
by
JuhaManninen
[December 14, 2025, 04:08:28 pm]
The start of yet another ...
by
TBMan
[December 14, 2025, 03:16:21 pm]
Need help with Runcommand...
by
marcov
[December 14, 2025, 12:46:25 pm]
Military Grade Directives
by
Thaddy
[December 14, 2025, 11:46:44 am]
Cannot find Online Packag...
by
Thaddy
[December 14, 2025, 11:37:58 am]
Anyone interested in help...
by
ad1mt
[December 14, 2025, 08:56:20 am]
Hashing pointers by using...
by
440bx
[December 14, 2025, 03:16:33 am]
exception external SIGSEG...
by
dseligo
[December 14, 2025, 02:24:28 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: How single procedure ends in different results (Read 2042 times)
Marion
Full Member
Posts: 125
How single procedure ends in different results
«
on:
November 28, 2024, 12:42:47 am »
I have a procedure that dynamically adds controls to a TScrollBox with the ChildSizing.ControlsPerLine = 1 so the controls stack from top to bottom. When the ScrollBox starts empty then the child controls are the correct height (See image with empty TEdit). Once a user enters text and saves the dialog, the next time they come back to the form, I repopulate the rows and add the text but now the TEdits are short. When I add a new (empty) row, all of the rows (including the previous ones) stretch to the right height. I'd like to fix this if someone knows what's going on.
Below is the procedure used to add all of the rows to the ScrollBox:
Code: Pascal
[Select]
[+]
[-]
function
TfrmOptions
.
DiceTrayRowAdd
:
TPanel
;
var
pnlRow
:
TPanel
;
txtName
,
txtFormula
:
TEdit
;
begin
pnlRow
:
=
TPanel
.
Create
(
boxDiceTray
)
;
pnlRow
.
Parent
:
=
boxDiceTray
;
pnlRow
.
Tag
:
=
FDiceRow
;
pnlRow
.
BevelOuter
:
=
bvNone
;
pnlRow
.
ChildSizing
.
ControlsPerLine
:
=
2
;
pnlRow
.
ChildSizing
.
EnlargeHorizontal
:
=
crsHomogenousChildResize
;
pnlRow
.
ChildSizing
.
Layout
:
=
cclLeftToRightThenTopToBottom
;
//pnlRow.Name := Format('pnlDiceRow%d', [FDiceRow]);
pnlrow
.
Caption
:
=
''
;
pnlRow
.
OnEnter
:
=
@
DiceTrayRowEnter
;
txtName
:
=
TEdit
.
Create
(
pnlRow
)
;
txtName
.
Parent
:
=
pnlRow
;
//txtName.Name := Format('txtDTName%d', [FDiceRow]);
txtName
.
Text
:
=
''
;
txtName
.
MaxLength
:
=
20
;
txtName
.
OnKeyUp
:
=
@
DiceTrayRowKeyUp
;
txtFormula
:
=
TEdit
.
Create
(
pnlRow
)
;
txtFormula
.
Parent
:
=
pnlRow
;
//txtFormula.Name := Format('txtDTFormula%d', [FDiceRow]);
txtFormula
.
Text
:
=
''
;
txtFormula
.
MaxLength
:
=
40
;
txtFormula
.
OnKeyUp
:
=
@
DiceTrayRowKeyUp
;
if
txtName
.
CanFocus
then
txtName
.
SetFocus
;
FDiceRow
:
=
FDiceRow
+
1
;
result
:
=
pnlRow
;
end
;
Logged
Thank you,
Marion
(A recovering Windows programmer.)
CharlyTango
Full Member
Posts: 171
Re: How single procedure ends in different results
«
Reply #1 on:
November 28, 2024, 09:39:15 am »
You will certainly have a reason why you choose a solution with a TScrollbos, which is significantly more complex and problematic than other controls.
I would try to solve such “simple” inputs with a TStringgrid, for example
Logged
Lazarus stable, Win32/64
jamie
Hero Member
Posts: 7419
Re: How single procedure ends in different results
«
Reply #2 on:
November 28, 2024, 05:32:17 pm »
AutoSize is set to true maybe?
in any case, I am not sure how the child sizing works but best guess is it may use the FONT height. Maybe you need to set that in the EDIT fields.
Logged
The only true wisdom is knowing you know nothing
Marion
Full Member
Posts: 125
Re: How single procedure ends in different results
«
Reply #3 on:
December 03, 2024, 01:57:43 am »
I finally fixed it. I had to add a Contraints.MinHeight = 40 to each of the TEdits and now it works as expected.
«
Last Edit: December 03, 2024, 02:00:03 am by Marion
»
Logged
Thank you,
Marion
(A recovering Windows programmer.)
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
How single procedure ends in different results
TinyPortal
© 2005-2018