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
Need help with Runcommand...
by
PizzaProgram
[
Today
at 11:12:32 am]
Cannot find Online Packag...
by
ThomasK
[
Today
at 11:01:51 am]
MVP made easier.
by
cdbc
[
Today
at 10:54:32 am]
Error: Enumeration symbol...
by
440bx
[
Today
at 10:15:13 am]
Anyone interested in help...
by
ad1mt
[
Today
at 08:56:20 am]
Military Grade Directives
by
DavidL
[
Today
at 03:49:55 am]
Hashing pointers by using...
by
440bx
[
Today
at 03:16:33 am]
exception external SIGSEG...
by
dseligo
[
Today
at 02:24:28 am]
Why does the call via fun...
by
Martin_fr
[
Today
at 01:59:35 am]
[SOLVED] Is this a compil...
by
jamie
[
Today
at 01:46:54 am]
Problem installing LazPro...
by
peter.dell
[
Today
at 01:32:53 am]
AI interactions
by
Joanna
[December 13, 2025, 11:47:24 pm]
project - count source li...
by
bobonwhidbey
[December 13, 2025, 10:30:31 pm]
Recomendations for conver...
by
BlueIcaro
[December 13, 2025, 09:49:20 pm]
FPC 3.2.4-rc1 available
by
PeterBB
[December 13, 2025, 08:31:32 pm]
fpsockets error: 10047
by
parcel
[December 13, 2025, 04:03:56 pm]
So many "newbies"
by
Joanna
[December 13, 2025, 02:52:06 pm]
Is it possible to run "mo...
by
Thausand
[December 13, 2025, 02:42:56 pm]
TIBDataSet "Closing"? on ...
by
RedOctober
[December 13, 2025, 02:38:05 pm]
TLazSerial : serial port ...
by
CM630
[December 13, 2025, 02:20:24 pm]
connecting to mariadb
by
alanyoung
[December 13, 2025, 01:27:11 pm]
How to get the standard m...
by
stem
[December 13, 2025, 12:50:55 pm]
Lookup field: error list ...
by
BlueIcaro
[December 13, 2025, 12:00:10 pm]
Anchoring controls with d...
by
jamie
[December 13, 2025, 11:22:45 am]
Recompiled IDE with LCLRe...
by
AlexTP
[December 13, 2025, 05:09:56 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: How single procedure ends in different results (Read 2041 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: 7413
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