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

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

Вопрос о динамическом создании RichEdit [Delphi, Windows]


4kusNick ©   (2004-04-26 14:49:00) 

Уважаемые профессионалы, хотелось бы решить такую задачку:
Решил я значит создать рич динамически:
...
procedure TMain.KOLForm1FormCreate(Sender: PObj);
 ...
begin
...
 If WrdWrp then //WrdWrp - пременная типа булеан - перенос длинных строк
   Main.RichEdit:= NewRichEdit(Main.Form, [eoNoHScroll])
 else
   Main.RichEdit:= NewRichEdit(Main.Form, []);

 Main.RichEdit.Align:= caClient;
...
end;

И столкнулся с проблемой: как же мне теперь с "невидимым" до создания формы ричем ассоциировать стандартные события типа OnRightMouse, OnDrop и т.д.? Подскажите, как быть?


4kusNick   (2004-04-30 21:54:00) [1]

Усек. Спасибо. :)
Глупый вопрос.


GuAV   (2004-04-30 21:52:00) [2]

>If Mouse.Button = mbRight then RichEditMenu.popup(Mouse.X,Mouse.Y)I>

Зачем?
RichEdit.SetAutoPopupMenu(RichEditMenu);


4kusNick   (2004-04-30 19:23:00) [3]

Ok понял. Уже сделал.

И еще вопрос:

Описал я значит, событие при RightClick'е на Rich'е а вот меню почему - то появляется не совсем там, где надо.
Вот кусок кода:
------------------CUT-------------------------
If Mouse.Button = mbRight then RichEditMenu.popup(Mouse.X,Mouse.Y)
------------------CUT-------------------------

В итоге меню появляется чуть выше и левее, а когда я изменил эту строку таким образом
If Mouse.Button = mbRight then rem.popup(Mouse.X+какое-то число,Mouse.Y+какое-то число),
то положение меню зависит уже от размеров окна программы.
Что не так?


Владимир Кладов   (2004-04-26 19:01:00) [4]

неохота руками написать свой метод с нужными параметрами и присвоить его событию? Есть решение проще: бросить на форму такой же контрол, создать для него событие через Object Inspector, написать в теле что-нибудь, чтобы он не исчез сам собой. Теперь можно удалить контрол, и где надо присвоить этот метод в качестве обработчика:
MyRich.OnChange := RichEdit1Change;

Собственно, ничего специфического для KOL/MCK, в VCL это тоже работает.


Наверх

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