Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Вниз

Картинка в Richedit   Найти похожие ветки 

 
Stas1   (2003-12-09 17:46) [0]

Можно ли вставить картинку в RichEdit?
Если да, то как? Если нет, то что посоветуете в замен?
Мне нужно в текстовое поле вставить картинку.
Спасибо!


 
Adoon   (2003-12-09 17:59) [1]

function 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;

procedure TCourseForm.InsertPictureClick(Sender: TObject);
VAR i: Integer;
SS:TStringStream;
P: TPicture;
BMP: TBitMap;
jpg: TJpegImage;
BEGIN
if OpenPictureDlg.Execute then begin
try
if (Pos(".bmp", OpenPictureDlg.FileName) > 0) then begin
BMP := TBitMap.Create;
P := TPicture.Create;
P.LoadFromFile(OpenPictureDlg.FileName);
BMP.Assign(P.Bitmap);
SS := TStringStream.Create(BitmapToRTF(BMP));
try
RichEdit.PlainText := False;
RichEdit.StreamMode := [smSelection];
RichEdit.Lines.LoadFromStream(SS);
RichEdit.StreamMode := [];
finally
SS.Free;
BMP.Free;
P.Free;
end
end
else begin
jpg := TJPEGImage.Create;
jpg.LoadFromFile(OpenPictureDlg.FileName);
BMP := TBitMap.Create;
BMP.Assign(jpg);
SS := TStringStream.Create(BitmapToRTF(BMP));
try
RichEdit.PlainText := False;
RichEdit.StreamMode := [smSelection];
RichEdit.Lines.LoadFromStream(SS);
RichEdit.StreamMode := [];
finally
SS.Free;
jpg.Free;
BMP.Free;
end
end;
finally
end;
end;
end;



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

Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
6-75285
Irr
2003-09-23 19:54
2003.12.23
Что за глюк в локалке с Novell?


14-75363
Igor_thief
2003-11-29 14:32
2003.12.23
Иконки из длл


7-75408
Ал
2003-10-20 11:41
2003.12.23
Как узнать, что система в простое и как - что вышла из него?


1-75188
MuxauJl
2003-12-08 13:37
2003.12.23
Активность только окна Дэлфи


1-75157
Sliften
2003-12-08 20:15
2003.12.23
Как поменять какое-нибудь значение у всех нужных компонентов прил





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