Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SynUniHighlighter и SynEdit > Проблема с WordWrap в SynMemo


Автор: rusbtr 14.6.2007, 16:18
Всем привет.
Если включен WordWrap,  то при написании строчки и переходе на другую, после того, что я пишу, появляется его копия. (см приаттаченную картинку). Причём, это не текст, выделить и удалить это нельзя. По всей видимости, какой-то глюк отображения.
Если скопировать туда большой текст, который тоже wrap'ится, на перенесённых строчках происходит то же самое.

UPD: Проблема появляется, когда выполняется определение хайлайтера у SynMemo (SynMemo.Highlighter:= SynUniSyn )
Пробовали не на одном компьютере, результат такой же, не только в моей программе, но и в Demos/LightEditor

UPD: м-да.. очень жаль, что здесь всем на всё пофиг.. 


Автор: Newskoe 10.7.2007, 21:29

 ! 
Vitalik
Предупреждение за флуд

Автор: mr.Anderson 22.7.2007, 17:18
rusbtr, в этом разделе вообще редко отвечают, самому не нравится.

По вопросу темы предложить особо ничего не могу, разве что попробовать использовать TSynEdit вместо TSynMemo? По возможностям они не различаются (ну, или почти - я отличий найти не смог), но SynEdit считается основным компонентом. Может, там этой проблемы не будет.

Автор: BoikovSoft 6.12.2007, 13:38
НЕТ проблема от этого не решилась.  smile 
Причем такая фишка только с TSynUniSyn, значит проблема гдето внем. 

Изучаю компанент уже 2 дня. smile 

Особо не разбираясь с кодом я добавил у себя вот че:

procedure TForm1.SynEdit1Change(Sender: TObject);
begin
  if LEngth(synEdit1.Lines[synEdit1.CaretY-1])=synEdit1.CaretX-1 then
    synEdit1.Lines[synEdit1.CaretY-1]:=synEdit1.Lines[synEdit1.CaretY-1]+' ';
end;

Хотя бы при вводе проблема решилась.

Все равно это не решение проблем.   smile  Да и реализация очень не красивая. Надо бы изнутри TSynUniSyn исправить, но где пока несоображу.

Знатаки наверно сюда не заходят. Очень печально.

СПЕЦИАЛИСТЫ ОТКЛИКНИТЕСЬ!!!  Помогите начинающим кодерам.

Автор: BoikovSoft 6.12.2007, 14:03
Нашел решение проблемы оно описано вот тут:    http://forum.vingrad.ru/forum/topic-105717.html

Seldon писал:

[quote]
в файле SynUniHighlighter.pas в методе TSynUniSyn.Next надо найти строкукод Pascal/Delphi

Код

FEol := True; // We are at the end of line


и вставить после неё строкукод Pascal/Delphi

Код

FTokenPos:=Length(FLine);


[/quote

Реально помогло! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)