Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1231929479
boriskb
2009-01-14 13:37
2009.03.15
Подскажите выбор


2-1232552943
webpauk
2009-01-21 18:49
2009.03.15
Преобразование типов


4-1206607413
kolj
2008-03-27 11:43
2009.03.15
Tapi -> LineGetId


15-1231942600
Гек
2009-01-14 17:16
2009.03.15
Существует ли в Дельфи аналог функции toPrecision, округляющей


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский