http://bugs.freepascal.org/view.php?id=19215

Please check this lines in SynTextDrawer

procedure TheFontStock.SetStyle(Value: TFontStyles);

// ASSERT(idx <= High(TheStockFontPatterns)); //Check this line


SY
Zaher Dirkey



I will look at it in due course.

In case... your clean up may be so you can add features later; and seeing you gone for TextDrawer first.

If you want to add features around drawing, here are a few of my ideas (all without any idea when..., just distant ideas)

1) Introduction of a TSynCanvas
  - More or less to wrap the TSynEdit.Handle
- The class could be known by other classes in SynEdit (without circle references) and would be used for any Invalidate, invalidateLines, invalidateRect request. - Maybe also for painting, so painting is in an event, and the handle is passed in by the caller.
    Also painting is done from other classes, more below

2) Introduction of a TSynViewPort (or TsynEditViewPort)
  represents the textarea (as opposed to gutter).
SynEdit takes care of the layout (eg Gutter AlLeft, ViewPort alClient...), and the classes are responsible for the painting, (using TsynCanvas, and the arguments to the paint event)

TSynViewPort will also be responsible to store TopLine, LeftChar, LinesInWindow, CharsInWindow
  TSynViewPort would still use TextDrawer, but some stuff may move...

----
Ideally this would even allow to have none LCL versions, like fpgui, msegui, or delphi... => but that is a long way

You are af course invited to bring up your ideas too.




--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to