Insert bitmap in TRichEdit

4 отговора 209 прегледа
#1

Insert bitmap in TRichEdit

Някой знае ли как мога да вмъкна bitmap изображение в TRichEdit
и после да запазя или принтирам съдържанието в TRichEdit компонентата?
Благодаря ви предварително за мненията

Отговор
в отговор на DayDio #2

Re: Insert bitmap in TRichEdit

В борландския TRichEdit не можеш
Тука съм си правил разни тестове. Не помня до къде я докарах, но ето ти кода

procedure TForm1.Button1Click(Sender: TObject);
var
SS: TStringStream;
BMP: TBitmap;
begin
BMP := TBitmap.Create;
BMP := Image1.Picture.Bitmap;
SS := TStringStream.Create(BitmapToRTF(BMP));
try
PutRTFSelection(RichEdit1, SS);
finally
SS.Free;
//BMP.Free;
end;
end;

function TForm1.BitmapToRTF(pict: TBitmap): string;
var
bi,bb,rtf: string;
bis,bbs: Cardinal;
achar: ShortString;
hexpict: string;
I: Integer;
begin
GetDIBSizes(pict.Handle,bis,bbs);
SetLength(bi,bis);
SetLength(bb,bbs);
GetDIB(pict.Handle,pict.Palette,PChar(bi)^,PChar(bb)^);
rtf := '{\rtf1 {\pict\dibitmap ';
SetLength(hexpict,(Length(bb) + Length(bi)) * 2);
I := 2;
for bis := 1 to Length(bi) do
begin
achar := Format('%x',[Integer(bi[bis])]);
if Length(achar) = 1 then
achar := '0' + achar;
hexpict[I-1] := achar[1];
hexpict[ i ] := achar[2];
Inc(I,2);
end;
for bbs := 1 to Length(bb) do
begin
achar := Format('%x',[Integer(bb[bbs])]);
if Length(achar) = 1 then
achar := '0' + achar;
hexpict[I-1] := achar[1];
hexpict[ i ] := achar[2];
Inc(I,2);
end;
rtf := rtf + hexpict + ' }}';
Result := rtf;
end;

Ако е само за преглед, а не за редакция можеш да ползваш RichView компонентите. Наскоро видях, че са си пуснали версия 0.5.2 безплатно със сорс. А RichView-то е готин контрол
[линк]

Редактирано от andrew_nikoloff на

Отговор
в отговор на DayDio #3

Re: Insert bitmap in TRichEdit

Можеш да опиташ ActiveX-а от Visual Studio 6.0.
Пробвал съм-работи.

Отговор
в отговор на DayDio #4

Re: Insert bitmap in TRichEdit

Целта ми е да запазя текст (препоръчително в rtf формат) с картинка/и
Някой знае ли как може да стане?

Отговор
в отговор на DayDio #5

Re: Insert bitmap in TRichEdit

moje da go vmyknesh chrez OLE, no kak imenno, ne znam.
(win32 richedit supports OLE objects insertion).

Отговор