我建立了一个SYNEDIT的专门讨论组,希望所有使用synedit的朋友能够参加并讨论.
群组号为:8838343

解决方案 »

  1.   

    很有用的东西,顶一下http://synedit.sourceforge.net/
      

  2.   

    顶一下,本群是作为讨论synedit和字符串处理方法的群组,希望有更多的人加入进来。。
    本群有synedit控件的修改者(bootini,请访问www.2ccc.com查询其放出来的修改过的控件)和filecontrolplus的作者(就是我自己)。我们已经计划自己修改或者将修改过的源代码发给synedit编程小组的方式来提高synedit的控件的可用性并且我们会将我们收集的一些有名的使用synedit写的编辑器的源代码放出来,供大家学习讨论其中包括editex编辑器和syneditor编辑器,这两个编辑器都非常的出色。。
      

  3.   

    楼主:
    我刚刚从http://synedit.sourceforge.net/这里下载了SynEdit 2.0.1 beta,试用后发现一处Bug,
    马上又下载了你的作品filecontrolplus,发现也存在此Bug。
    满足下列条件就会触发异常,
    1、将filecontrolplus调节为普通状态,即不最大化。
    2、新建一文档
    3、将此文档设为自动换行状态
    4、从第一行开始,随便输入什么字符,多输入一些,使得左边(Gutter部分)出现换行图示
    5、将输入光标定位在第一行最右边
    6、用鼠标拖住filecontrolplus的右边框,向右拖动,则跳出异常。
    小弟查看了一下SynEdit的源码,发现是在SynEdit.pas的
    Function TCustomSynEdit.GetDisplayXY: TDisplayCoord;
    begin
      Result := BufferToDisplayPos(CaretXY);
      if WordWrap and fCaretAtEOL then
      begin
        Dec( Result.Row );
        Result.Column := fWordWrapPlugin.GetRowLength(Result.Row) +1;
      end;               //这里 GetRowLength引起的
    end;
    继续跟踪到相关文件中的GetRowLength函数,看到了异常保护的代码,但那里似乎没有错误,
    似乎还是应该在上面的代码或其他地方改正。由于此处还涉及到其他地方的调用,牵一发动
    全身,加之小弟功力不够,未敢乱动。不知楼主能否改正这个Bug