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

Вниз

RichEdit и OLE.   Найти похожие ветки 

 
VAD*Anti Gopn!k ©   (2008-01-06 23:53) [0]

Доброе время суток.
Вставляю картинку в RichEdit:
...
procedure TImageDataObject.InsertBitmap(Wnd: HWND; Bitmap: HBITMAP);
var
 OleClientSite: IOleClientSite;
 RichEditOLE: IRichEditOLE;
 Storage: IStorage;
 LockBytes: ILockBytes;
 OleObject: IOleObject;
 ReObject: TReobject;
 clsid: TGUID;
begin
 if (SendMessage(wnd, EM_GETOLEINTERFACE, 0, Cardinal(@RichEditOle)) = 0) then Exit;
 FBmp := CopyImage(Bitmap, IMAGE_BITMAP, 0, 0, 0);
 if FBmp = 0 then Exit;
 try
   SetBitmap(Fbmp);
   RichEditOle.GetClientSite(OleClientSite);
   if (OleClientSite = nil) then Exit;
   CreateILockBytesOnHGlobal(0, True, LockBytes);
   if (LockBytes = nil) then exit;
   if (StgCreateDocfileOnILockBytes(LockBytes, STGM_SHARE_EXCLUSIVE or STGM_CREATE or STGM_READWRITE, 0, Storage) <> S_OK) then
   begin
     LockBytes._Release;
     Exit;
   end;
   if (Storage = nil) then exit;
   OleObject := GetOleObject(OleClientSite, Storage);
   if (OleObject = nil) then exit;
   OleSetContainedObject(OleObject, TRUE);
   ZeroMemory(@reobject, SizeOf(TReobject));
   reobject.cbStruct := SizeOf(TReobject);
   OleObject.GetUserClassID(clsid);
   reobject.clsid := clsid;
   reobject.cp := REO_CP_SELECTION;
   reobject.dvaspect := DVASPECT_CONTENT;
   reobject.poleobj := OleObject;
   reobject.polesite := OleClientSite;
   reobject.pstg := Storage;
   RichEditOle.InsertObject(reobject);
 finally
   DeleteObject(FBmp);
 end
end;

procedure InsertBitmapToRE(Wnd: HWND; bmp:HBITMAP);
begin
 with TImageDataObject.Create do
 try
   InsertBitmap(Wnd, Bmp);
 finally
   Free;
 end
end;
...

При попытке прокрутить richedit ничего не получается :( Как это можно сделать?? Прокручиваю так:
RichEdit1.SelLength := 0;
RichEdit1.SelStart := Length(RichEdit1.Text);
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

Спасибо за внимание.


 
XerSon   (2008-01-08 05:25) [1]

uses Messages.

SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_LINEDOWN, 1);



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
5-1166288613
Aleksandr
2006-12-16 20:03
2008.02.03
Создание свойства нового компонента


2-1198248676
botaniQ
2007-12-21 17:51
2008.02.03
Ошибка "has encountered a problem and needs to close..."


6-1172017429
Ш-К
2007-02-21 03:23
2008.02.03
Свои "контролы" в TWebBrowser.


9-1161788337
Sholah_Weras
2006-10-25 18:58
2008.02.03
Морской, блин, бой.


2-1199846158
Vista
2008-01-09 05:35
2008.02.03
проблема с событием.