Показать сообщение отдельно
  #2  
Старый 02.03.2016, 08:16
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

RichEdit поддерживает вставку изображений, на рисунках можно организовать нередактируемые блоки, с гиперссылками немного сложнее, поскольку без заморочек он может открыть лишь стандартные (типа httр:\\..), есть другие, более богатые в плане возможностей редакторы, а может лучше подобный функционал воссоздать на браузерной подложке. Ну или вот частичный вариант на риче, всё что успел найти
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 s: string;
 i: integer;
 cRect: TRect;
 bm: TBitmap;
 Format: CHARFORMAT2;
begin
 with RichEdit1 do
  begin
   SelStart:= Length(Text);
   Perform(EM_SCROLLCARET, 0, 0);
   FillChar(Format, SizeOf(Format), 0);

   with Format do
    begin
     cbSize:= SizeOf(Format);
     dwMask:= CFM_BACKCOLOR;
     crBackColor:= clFuchsia;
     Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
    end;
   SelAttributes.Style:= [fsBold];
   s:= FormatDateTime('hh:nn:ss', Now);

   Windows.GetClientRect(Handle, cRect);

   bm:= TBitmap.Create;
   bm.Width:= cRect.Right;
   bm.Height:= cRect.Bottom;
   bm.Canvas.Font:= Font;

   while bm.Canvas.TextWidth(s) < CRect.Right do s:= s + '  ';
   Lines.Add(s);

   s:= Edit1.Text;
   while bm.Canvas.TextWidth(s) < CRect.Right do s:= s + '  ';
   bm.Free;

   with Format do
    begin
     cbSize:= SizeOf(Format);
     dwMask:= CFM_BACKCOLOR or CFM_LINK or CFM_PROTECTED or CFM_UNDERLINE or CFM_COLOR;

     crBackColor:= clFuchsia;
     Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));

    end;
   SelAttributes.Style:= [fsBold];
   Lines.Add(s);
   Lines.Add('');
   Lines.Add(Memo1.Text);
  end;
Ответить с цитированием