Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

RichEdit 3.0


olafpalmer ©   (2002-06-21 16:19:00) 

Люди! Работаю с TRichEdit компонентом и понадобилось мне приостанавливать запись действий в UNDO буфер и запускать ее снова. В TRichEdit такой возможности нет. Но MSDN сказала, что в RichEdit 3.0 компоненте вообщето такая возможность реализована.


pITextDocument->Undo(tomSuspend,NULL); //Suspends Undo.

pITextDocument->Undo(tomResum! e,NULL); //Resumes Undo.


Т.е. нужно как-то использовать интерфейс ITextDocument. Знаю, что компонент лежит в riched20.dll.
Как оттуда вытащить этот интерфейс и заставить его работать в DELPHI?
Или есть какой другой способ?


pj   (2002-06-21 18:36:00) [1]

TMyRichEdit = class(TMemo)
Protected
procedure CreateParams(var Params: TCreateParams); override;
Public
End;


procedure TMyRichEdit.CreateParams(var Params: TCreateParams);
Const
RichEditModuleName = "RICHED20.DLL";
HideScrollBars: array[Boolean] of DWORD = ($00002000, 0);
HideSelections: array[Boolean] of DWORD = (ES_NOHIDESEL, 0);
ES_DISABLENOSCROLL = $2000;
ES_VERTICAL = $400000;
TB_ENABLEBUTTON = $401;
Var
Res: TColor;
Begin
if ModuleHandle(RichEditModuleName) = 0 then
begin
FRichEditModule := LoadLibrary(RichEditModuleName);
If FRichEditModule <= HINSTANCE_ERROR then
FRichEditModule := 0;
end;
Inherited CreateParams(Params);
CreateSubClass(Params, "RichEdit20W");
with Params do
begin
Style := Style or HideScrollBars[FHideScrollBars] or
HideSelections[HideSelection] or ES_MULTILINE;
ExStyle := ExStyle;// or WS_EX_TRANSPARENT;
WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
end;
End;


Наверх

Титульная страница Поиск, карта сайта Написать письмо