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
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Drawing with psInsidefram...
by
Jonny
[January 23, 2025, 11:57:26 pm]
UK's Online Safety Act
by
VisualLab
[January 23, 2025, 11:53:48 pm]
Painting on a control - 3...
by
TRon
[January 23, 2025, 10:52:32 pm]
Preparing FPC 3.2.4, poin...
by
PascalDragon
[January 23, 2025, 10:34:10 pm]
Generic function speciali...
by
PascalDragon
[January 23, 2025, 10:17:13 pm]
Resolving procedure symbo...
by
440bx
[January 23, 2025, 10:16:17 pm]
How C++ class multiple in...
by
PascalDragon
[January 23, 2025, 10:12:52 pm]
Assembler window colors
by
Kornelius
[January 23, 2025, 10:11:46 pm]
laz.virtualtrees.pas not ...
by
kapibara
[January 23, 2025, 10:07:25 pm]
Return nil/null of data t...
by
Warfley
[January 23, 2025, 10:03:02 pm]
Does unit recompilation r...
by
Fred vS
[January 23, 2025, 10:00:54 pm]
Out ...: Array of Somethi...
by
440bx
[January 23, 2025, 09:08:57 pm]
Generic methods inside a ...
by
PascalDragon
[January 23, 2025, 09:03:58 pm]
FPHTTPClient and SSL not ...
by
geraldholdsworth
[January 23, 2025, 08:44:33 pm]
Compiling 2 dependent pac...
by
Sergey Tkachenko
[January 23, 2025, 08:36:59 pm]
[SOLVED] Application.Proc...
by
erol
[January 23, 2025, 07:46:48 pm]
Timer difference in Linux...
by
Thaddy
[January 23, 2025, 06:51:31 pm]
مشكلة في التقارير
by
nouzi
[January 23, 2025, 06:28:58 pm]
Migrate vb.net to Lazarus...
by
Packs
[January 23, 2025, 06:16:35 pm]
Looking For Lazarus Tutor...
by
NobleStar
[January 23, 2025, 04:13:44 pm]
Getting format error load...
by
n7800
[January 23, 2025, 04:04:34 pm]
Exclude Jedi Code Formatt...
by
BrunoK
[January 23, 2025, 03:36:23 pm]
Making sense of pparser, ...
by
JernejL
[January 23, 2025, 03:16:26 pm]
No access to the wiki
by
Marc
[January 23, 2025, 02:52:43 pm]
OPC client with Lazarus
by
Truffaldino
[January 23, 2025, 01:18:34 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: How single procedure ends in different results (Read 1140 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
Jr. Member
Posts: 91
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: 6791
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