Lazarus
Programming => General => Topic started by: flori on March 29, 2020, 06:47:35 pm
-
Hi everyone. I have a small software, wich I made lazarus 1.8, but when I installed the new lazarus 2.0.6 I get tangled forms, fonts.
Does anyone know why ?
Im attached 2 pic .
THX
-
Check of the font names of the original form are the same.
-
Yes. I checked it. put everything back together
-
You might also want to check font metrics. font.size and font.height are different concepts that may occasionally generate characters of equal size, but this may change with different versions of the LCL, the operating system, the platform and even the user's settings. Make sure to consistently use either font.size or font.height.
See https://wiki.lazarus.freepascal.org/Font (https://wiki.lazarus.freepascal.org/Font) for reference.
-
unfortunately the whole thing is slipped apart >:( >:( >:(
-
Perhaps your system has a DPI-scaling other than 100%?
After Lazarus 1.8 the DPI-scaling was introduced for design time (and unfortunately is enabled by default).
It can be deactivated in the IDE settings.
-
Where is the DPI? :(
-
?? I set all fonts default!!!! >:( >:( >:( >:(
-
Please calm down and stop showing us these angry smileys. It not clear to me from reading the scarce description what is the problem. Is there an issue with scaling? LCL scaling works very well - Lazarus is the best proof for this statement.
Here is my recipe for scaling, I wrote some cross-platform applications recenty they work fine with it:
- Make sure that the option "Use LCL scaling" in the project options is set. On Windows, also select one of the "on" options in the "High DPI awareness" combobox. Note that v1.8 hat LCL scaling off by default, while it is on since v2.0 - this may have caused some of your trouble.
- Make sure that the property "Scaled" of the forms is set to true. (it is true by default, though)
- Do not design your forms with floating controls, I mean always use the Anchor Editor to align controls to each other. Your screenshot shows that labels are misaligned with respect to the associated edit controls. Using the Anchor Editor you can avoid this. And make excessive use of AutoSizing; use the Constraints properties to set up limits for Autosized controls if they should shrink to zero size. Sometimes you may have to add code to determine, for example, the longest one of a stack of labels. The only disadvantage is that once all controls are anchored you cannot move and rearrange them with the mouse any more. This was the reason why I did not use it for a long time. But the benefits of perfectly layed-out forms outweighs it. It is the only way to get independent of font metrics.
- Do not switch between machines of different resolutions. Recalculating coordinates back and forth can introduce error. I always develop on 96 ppi, and use VMs at other resolutions only for testing.
- When you design at a higher resolution and create controls at runtime you may have to add conversion routines for the coordinates. (https://wiki.lazarus.freepascal.org/High_DPI#High_DPI_in_Lazarus_1.8_and_above).
- Be careful with third-party controls. Many of them still are not yet ready for the LCL scaling.
Please study the attached demo which scales perfectly. Maybe I should mention also that there is the component TChemText in OPM, which was designed for displaying chemical formulas (at the expense of a slight centering error due to the higher control) and was used in the Win7-screenshot
-
ok thank you. Sorry I'm a research biologist!
I did not study programming at university!!!!
The problem was LCL! ;)
-
No need to be sorry. I am a physicist and did not study programming either. It's just a matter of not giving up.
You say the problem was "LCL". What do you mean? The "LCL scaling" checkbox?
-
Yes. LCL check was inactive. Just work :) thank you friend