Get access to over 100 FireMonkey cross platform samples for Android, IOS, OSX, Windows, and Linux!

AndroidAppmethodCode SnippetDelphiFiremonkeyIOS

Perfect Line Thickness Using TCanvas DrawLine With Delphi XE5 Firemonkey On Android And IOS

Dlphi XE5 Firemonkey Clean LinesIf you’re using Delphi XE5 Firemonkey to do any kind of drawing on TCanvas with DrawLine you may have run into this issue. The problem is that when you draw a one pixel line what you end up with doesn’t appear as a one pixel line. I believe this issue exists on both Android and IOS. Roman Yankovsky has a blog post demonstrating the problem and showing the solution. Here is an example of DrawLine where the problem manifests:

Canvas.DrawLine(PointF(50 + I * 25, 0), PointF(50 + I * 25, ClientHeight), 1);

And here is the an example of DrawLine with the extra code that fixes the problem:

Canvas.DrawLine(PointF(50 + I * 25 – (Canvas.Stroke.Thickness / 2), 0),
PointF(50 + I * 25 – (Canvas.Stroke.Thickness / 2), ClientHeight), 1);

Roman has much more comprehensive example code on his blog and even a second method for correcting the problem.

Head over to read the full blog post about correcting DrawLine on TCanvas.

Have Delphi Firemonkey questions? Ask and get answers on StackOverflow.

Related posts
AndroidC++BuilderDelphiFiremonkeyIOSOSXWindows

Significant Update Available For Delphi FireMonkey 10.4.1 On Android, IOS, OSX, Windows, And Linux

C++BuilderDelphiIDEWindows

Professional SVG Icon Image List For Delphi 10.4 FireMonkey On Windows

AndroidC++BuilderDelphiFiremonkeyIOSLiveBindingsOSXWindows

Top Tips And Tricks To Speed Up Development With Delphi 10.4 FireMonkey On Android and IOS

C++BuilderDelphiFiremonkeyIOSLiveBindingsOSXWindows

TStringList and TFDMemTable Contribute To The Powerhouse That Is Cross Platform Delphi Development In FireMonkey

Sign up for our Newsletter and
stay informed

Leave a Reply