function TCustomSynEdit.RowColumnToPixels(RowCol: TPoint): TPoint;
// converts screen position (1,1) based
// to client area coordinate (0,0 based on canvas)
And again: BlockBegin is not the screen pos, not always
ÖÖÖ SelectMe
The screen pos are as follows
1 Ö 2 Ö 3 Ö 4 space 5 SelectMe
But an "Ö" is 2 bytes.
If BlockBegin is at the "S" (including the "S" in the selection) then BlockBegin.x = 8.
---
Same with tab
--->SelectMe
"--->" is one tab, with a tabwidth of 4.
If BlockBegin is at the "S" then BlockBegin.x = 2 (tab is only 1 byte (#9)). But you can see you need a value of 4.
SynEdit.LogicalToPhysicalPos( SynEdit.BlockBegin ) gives the correct point.