I've noticed a few differences between the exact same code compiled for WIN and Linux with either the Beagle or the Pi.
Fonts appear to be a big issue as shown by the spacing between lines on the TComboBox or the TListBox.
The TCombo box under windows also has a different behaviour from the two Linux systems. Select the first item in the TComboBox and although it shows up it doesn't generate an OnChange event in Linux but does in Windows.
For example the Open/Close buttons are hidden until a selection is made in the TComboBox. However, only if you select an entry from the second to last in the list. So to get the buttons to show up in Linux you have to select the second available port in the list. The buttons will then be set to visible in the OnChange Event handler. Now you select the TComboBox again and select the first entry.
At this point a user can select the open button to access the CANUSB device connected and dump messages while listening on the bus.
Text spacing is also an issue. All three attached screens are identical source code within the Lazarus concept of write once, compile many times. Some of the defaults like standard fonts and font size etc are different between Linux and Windows. The Beagle and the Pi appear to behave the but differently from the WIN systems. (Compiler is the same version on all three systems).
I will probably have to add something like this:
{$IFDEF LINUX}
// definitions unique to Linux.
{$ELSE}
// definitions unique to Windows.
{$ENDIF}
I don't know if there is a work-around with respect to the fonts. There are a few other issues but overall I'm impressed with how similar the systems are. The Main Form Caption shows on which system the porgram was run