Главная страница
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.021 c
2-1199977556
Footballer
2008-01-10 18:05
2008.02.03
IP-адрес удалённого компа


2-1199963797
Smaller
2008-01-10 14:16
2008.02.03
Где отключается backup?


2-1199575318
koha overload
2008-01-06 02:21
2008.02.03
Помогите разобраться под что модуль написан?


2-1199439571
Саша
2008-01-04 12:39
2008.02.03
Как лучше организовать базу данных?


1-1192691199
Alex_Ne
2007-10-18 11:06
2008.02.03
Вызов MDICild-формы из Dll