building fastreport 5.6 and 5.6.4 with lazarus 1.8

hello
i am trying to build fastreport with the latest lazarus, maybe it is too new or something and I am seeing issues.
1:UTF related functions are depreciated and lazarus can't find them. so I replaced a few of them with generic string functions. it seems OK
2:windows printer APIs are in winspool. added it to uses

for 5.6.4, there are some more issues. some windows drawing APIs are not found in gradient code, I gave up and went back to 5.6.

so I setup a connection with IBX to the firebird 3 demo database, drop in a frxReport and frxDesigner component.

with the following code I see a strange error

TControl.InvalidatePreferredSize loop detected
CodeTB:Toolbar Bounds=l=0,t=0,r=556,b=38.

IBDatabase1.Open;
IBTransaction1.Active:=true;
IBQuery1.open;
frxReport1.DesignReport();

Comments

  • edited 12:13AM
    ok I tried with 5.6.4 again and instead of changing code, I added uses to fix missing functions.

    frxDesgnEditors.pas needs lcltype
    frxGradient.pas needs lclintf
    frxPreview.pas needs LazUTF8
    frxPrinter.pas needs winspool
    frxXML.pas needs LazFileUtils
    lazhelper.pas needs LazUTF8

    now 5.6.4 compiles but it is the same error. double click frxReport1 in a test application gives error
    TControl.InvalidePreferredSize loop detected
    CodeTB:TToolbar Bounds=l=0,t=0,r=566,b=38


  • edited 12:13AM
    Found the root cause. it is the Use "LCL scaling (Hi-DPI)" option in project options. it is new in Lazarus 1.8 I suppose.
    not fetal but I still hope you guys will fix it.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.