Страница 5 из 6

Re: Компонент Richmemo

Добавлено: 01.09.2016 23:10:27
sn-102
скалогрыз писал(а):Пример бы кода?!


Прошу прощения - не правильно определил в какой процедуре была главная загвоздка. Основная проблема крылась в подстановке функций в процедуру onChange.
При удалении из неё - остальные процедуры заработали без зависания (только артефакты остаются).

Procedure DefineBttns;
begin With HlpFileEditorF do begin
EW.GetTextAttributes(EW.SelStart, FP);
EW.GetParaAlignment(EW.SelStart, ewAlign);
{далее код приводить не буду - большой, я его задокументировал, но толку это не дало}
end; end;

procedure THlpFileEditorF.EWChange(Sender: TObject);
begin
DefineBttns; // если убрать здесь - работает с артефактами.
EW.Tag := 1;
end;

procedure THlpFileEditorF.EWKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var c: Char;
begin
DefineBttns; // если убрать здесь или ниже то поведение как в первом моем посте
c := Chr(Key);
if (Shift=[ssAlt]) then
if (c='A') or (c='a') or (c='Ф') or (c='ф') then AddSymbCondClick(Sender) else
if (c='R') or (c='r') or (c='К') or (c='к') then ChgSymbClick(Sender);
end;

procedure THlpFileEditorF.EWMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DefineBttns; // если убрать здесь или выше то поведение как в первом моем посте
end;

скалогрыз писал(а):Eсть мнение, что проблема в использовании старой версии RichMemo - какая ревизия?

Ревизия 5112

скалогрыз писал(а):Ещё я бы рекомендовал вместо OnMouseUp, OnKeyUp использовать OnSelectionChange.

Попробовал - толку нет. Всё то же самое.

Следующий опыт - оставил DefineBttns только в событии onChange:
Оставляя в DefineBttns GetTextAttributes получаем отсутствие артефактов и зависания, но нельзя выделять текст влево.
Оставляя в DefineBttns GetParaAlignment получаем артефакты и рекурсию отрисовки, но выделять текст влево можно.

Добавлено спустя 5 минут 15 секунд:
Следующий опыт - удалил DefineBttns из события onChange - думаю нафиг он там не нужен (был там, т.к. портировал старый дельфинский редактор в своё время написанный на скорую руку, и при этом работавший на 5), при этом оставив обе функции в DefineBttns (GetTextAttributes и GetParaAlignment). В результате рекурсии нет, но нельзя выделять текст влево, и множество артефактов текстового курсора.

Re: Компонент Richmemo

Добавлено: 01.09.2016 23:16:36
скалогрыз
sn-102 писал(а):Ревизия 5112

хмм... а если откатиться до 4971

из командной строки:

Код: Выделить всё

svn update -r 4971


проблема останется?

Re: Компонент Richmemo

Добавлено: 01.09.2016 23:35:52
sn-102
скалогрыз писал(а):а если откатиться до 4971

Я в Лазаре только осваиваюсь (чуть более недели). Раньше много на Delphi кодил. Ещё не знаю как это сделать. Где эту командную строку искать? В команды компилятора вписать параметров сборки пакета? До или после компиляции?

Re: Компонент Richmemo

Добавлено: 01.09.2016 23:47:13
скалогрыз
sn-102 писал(а):Я в Лазаре только осваиваюсь (чуть более недели). Раньше много на Delphi кодил. Ещё не знаю как это сделать. Где эту командную строку искать? В команды компилятора вписать параметров сборки пакета? До или после компиляции?

хм. понятно.
А RichMemo как скачал по ссылке из вики или из репозитория через svn?

Re: Компонент Richmemo

Добавлено: 01.09.2016 23:49:28
sn-102
скалогрыз писал(а):хм. понятно.
А RichMemo как скачал по ссылке из вики или из репозитория через svn?

На сколько я помню, из вики.

Re: Компонент Richmemo

Добавлено: 02.09.2016 00:07:56
скалогрыз
Сделай копию той что есть у тебя, и попробуй вот эту! Это та самя r4971

Re: Компонент Richmemo

Добавлено: 02.09.2016 00:33:13
sn-102
скалогрыз писал(а):Сделай копию той что есть у тебя, и попробуй вот эту! Это та самя r4971

Артефакты почти пропали (один упорно остаётся), но не в них проблема - они легко затираются командой refresh после вызова процедур GetTextAttributes и GetParaAlignment. Все остальные неприятности, как то рекурсия и не возможности выделить текст слева от курсора остались на месте.

Добавлено спустя 3 минуты 36 секунд:
Рекурсия появляется в событии onChange

Re: Компонент Richmemo

Добавлено: 02.09.2016 06:41:54
скалогрыз
sn-102 писал(а):но нельзя выделять текст влево

проблема должна быть решена в r5117 (в аттаче, или сутки подождать и по ссылке с вики скачать можно)

Re: Компонент Richmemo

Добавлено: 02.09.2016 09:57:19
sn-102
Да, всё отлично. И в рекурсию не впадает в onChange, и выделение работает и артефактов нет. Огромное спасибо!

Re: Компонент Richmemo

Добавлено: 25.09.2017 14:49:25
Лекс Айрин
Разбираю пример с принтером из стандартной поставки. Собрал, запустил и пытаюсь распечатать на pdf принтер...

Если поля печати выставить по нолям, то все нормально, а если их выставить свои, то создает кучу пустых страниц (для крайнего файла 1857) с небольшим кружком.

Это нормально или где-то косяк?
win 7, сегодняшний транк Lazarus. правда, fpc староват.

Re: Компонент Richmemo

Добавлено: 25.09.2017 20:18:51
скалогрыз
Лекс Айрин писал(а):Собрал, запустил и пытаюсь распечатать на pdf принтер...

это стандартный pdf принтер или какой-то дополнительный (из ms office)

есть мнение что косяк

Re: Компонент Richmemo

Добавлено: 26.09.2017 08:13:16
Лекс Айрин
это foxit reader-овский принтер + потом пользовался doPDF. Если вручную задавать границы страницы, то печатает нормально, если убрать встроенную процедуру выставления границ, конечно.

Re: Компонент Richmemo

Добавлено: 28.10.2021 16:55:49
AlexEr81
Здравствуйте. Подскажите пожалуйста как установить этот компонент. Скачал с Github, распаковал в lazaruscomponentsrichmemo-master. Открыл richmemopackage.lpk . Нажал компиляция. После успешной компиляции, жму "Использовать". Пункт установить недоступен. Lazarus 2.0.12 x64

Добавлено спустя 41 минуту 50 секунд:
AlexEr81 писал(а):дравствуйте. Подскажите пожалуйста как установить этот компонент. Скачал с Github, распаковал в \lazarus\components\richmemo-master\. Открыл richmemopackage.lpk . Нажал компиляция. После успешной компиляции, жму "Использовать". Пункт установить недоступен. Lazarus 2.0.12 x64

Увидел "сетевой диспетчер пакетов" через него поставил

Re: Компонент Richmemo

Добавлено: 25.07.2025 18:20:15
kotompazb
Здрасьте.
А что? Richmemo нельзя установить в 4.2? Открываю lpk. Пункт Установить недоступен.

Re: Компонент Richmemo

Добавлено: 26.07.2025 20:17:38
svk12
AlexEr81 писал(а):Открыл richmemopackage.lpk
Этот пакет не для установки, его нужно просто скомпилировать. А потом установить /ide/richmemo_design.lpk.