Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

OnClick по картинке в RichEdit.   Найти похожие ветки 

 
Pavelkq   (2009-01-03 11:40) [0]

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


 
Pavelkq   (2009-01-04 23:12) [1]

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

[Code]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;[/Code]

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


 
KilkennyCat ©   (2009-01-04 23:34) [2]

а зачем?


 
Pavelkq   (2009-01-05 16:26) [3]

Чтобы при нажатии на картинку (это миниатюра) в новой ворме открывалась вся картинка (идентификация по номеру).


 
KilkennyCat ©   (2009-01-05 18:05) [4]

дык может лучше html?


 
Pavelkq   (2009-01-05 21:55) [5]

Хм, может и так. Но если честно, я это пока не умею. Т.е. открыть сгенерированную страничку в браузере по-умолчанию смогу, а в окне формы... Какой компанент юзать?
А кроме того возникают еще вопросы:
Оригеналы картинок хратятся в БД (акцеса). Если работать с обычными компанентам, то добраться до БД очень легко (я делаю это через АДО). Но как сделать, чтобы ссылка с миниатюры вела на содержимое БД, если это будет ХТМЛ? Или придется извлекать картинки во временную папку, а затем вывешивать ссылки именно на них?
Далее, мне нужен импорт в Ворд. Есть ли такая возможность (не считая открытия ХТМЛ-я прямо в Ворде)? Может буфер обмена поюзать? Или можно как-то средствами Дельфи сконвертировать ХТМЛ в формат Ворда?


 
KilkennyCat ©   (2009-01-06 00:14) [6]

нда... погляди компонент ричедита от Ткаченко.


 
Pavelkq   (2009-01-07 11:19) [7]

Победил задачу! При клике на картинке мышью она выделяется. Остается ее скопировать в буфер обмена и посмотреть его содержимое на предмет картинности. Жаль, что при этом буфер обмена затирает то, что там могло быть до того, но это тоже решаемо, думаю через OleContaner.
procedure TOKBottomDlg.RichEdit1MouseUp(Sender: TObject;
 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 RichEdit1.CopyToClipboard;
 if Clipboard.HasFormat(CF_BITMAP) then ...


 
имя   (2009-01-24 05:21) [8]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
6-1199882403
DmitriyG.
2008-01-09 15:40
2009.03.15
Dump IP сообщения


15-1232171080
KilkennyCat
2009-01-17 08:44
2009.03.15
Специально для Б


2-1232618365
Тимоха
2009-01-22 12:59
2009.03.15
матрица, record


8-1192181973
deswan
2007-10-12 13:39
2009.03.15
gif анимация


15-1231952163
TMichael
2009-01-14 19:56
2009.03.15
SSH