Главная страница
    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.141 c
15-1232089317
Slider007
2009-01-16 10:01
2009.03.15
С днем рождения ! 16 января 2009 пятница


15-1232005368
Jeer
2009-01-15 10:42
2009.03.15
Продукт Delphi Prism


2-1232636844
Evgengold
2009-01-22 18:07
2009.03.15
QueryPerformanceFrequency задать временной интервал


2-1233048701
Golden
2009-01-27 12:31
2009.03.15
Подскажите, что выполняет данная функция?


2-1232648122
cruiser
2009-01-22 21:15
2009.03.15
Ожидание отработки операций внутри отдельного потока





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский