Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c