Показать сообщение отдельно
  #1  
Старый 03.01.2009, 11:44
pavelkq pavelkq вне форума
Прохожий
 
Регистрация: 03.01.2009
Сообщения: 1
Репутация: 10
По умолчанию OnClick по картинке в RichEdit

Вставил в RichEdit картинки с помощью модуля re_bmp. Как отследить событие нажания мыши по рисункам? Отмечу, что сейчас при клике эти рисунки выделяются (рамочка появляется). Я понимаю, что вероятнее всего это необходимо делать в обработчике OnClick самого RichEdit-a, но как понять, что под курсором именно картинка? Пробовал анализировать содержимое по RichEdit1MouseMove с помощью Perform, но удалось лишь выцепить номер строки и номер символа. А как узнать, что там именно картинка?

Вот немного раскапал. Пока удалось раздобыть количество картинок в RichEdite, но как определить, который из них кликнут мышью? Вот код:

Код:
type
  TReobject = record
    cbStruct: DWORD;
    cp: ULONG;
    clsid: TCLSID;
    poleobj: IOleObject;
    pstg: IStorage;
    polesite: IOleClientSite;
    sizel: TSize;
    dvAspect: Longint;
    dwFlags: DWORD;
    dwUser: DWORD;
  end;
...
Function ItBmp(hWnd:HWND) :integer;
var IREO:IRichEditOle;
    ReObject:TReObject;
    Count:Integer;
    Position:LongInt;
begin
   Count:=0;
// получить IrichEditOle интерфейс
   SendMessage(hWnd, EM_GETOLEINTERFACE, 0, Longint(@IREO));
   Count:=IREO.GetObjectCount; // число оле объектов в т.ч. картинок
   ZeroMemory(@ReObject,SizeOf(ReObject));
   ReObject.cbStruct := SizeOf(ReObject);
   if Succeeded(IREO.GetObject(0, ReObject, $00000001)) then
// если удается получить первый объект
   begin
     Result:=Count;
     IREO.????  
   end;
end;

Какой метод применить, чтобы узнать, выделен ли он, или находится ли над ним курсор мыши? Или как получить координаты этого рисунка из его свойств (струкруты TReObject)?
Ответить с цитированием