Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли в TRichEdit вывести текст с фоном произв. цвета? [D7]


mmms ©   (2006-11-27 14:39:00) 

Т.е. часть текста под одним цветом фона, часть под другим?


programania   (2006-11-27 20:35:00) [1]

Сделайте в Wodr что нужно
Сохрание в rtf
Прочитайте в RichEdit:  RichEdit1.Lines.Add('...')
Выкиньте лишнее


Gydvin   (2006-11-27 19:58:00) [2]


> Для рисования на поверхности TMemo необходимосоздать  
> собственный компонент

Это кто Вам такое сказал, забросайте его кирпичами


Gydvin   (2006-11-27 19:56:00) [3]


> mmms   (27.11.06 19:52) [4]
>
> Спасибо, если рисовать, то это совсем другое, думал текст
> с цветным фоном так же легко написать как и сам цветной
> текст.

Это несложно. Поищите и удивитесь


mmms   (2006-11-27 19:52:00) [4]

Спасибо, если рисовать, то это совсем другое, думал текст с цветным фоном так же легко написать как и сам цветной текст.


Leonid Troyanovsky   (2006-11-27 18:05:00) [5]


> alex810 ©   (27.11.06 15:56) [2]

> собственный компонент, наследованный от TMemo и переопределить
> в нём рисование.


С тем же успехом (или, даже, с большим успехом)
можно рисовать на TWin/Control.

Кстати, тебя, видимо, уже утомило ссылаться на
тот самый справочник, а это уже не очень хорошо.

Кроме того, упомянутый справочник вполне возможно
высылать заинтересованным лицам по почте, если уж
ты занял столь альтруистическо-спамерскую позицию.

--
Regards, LVT.


alex810   (2006-11-27 15:56:00) [6]


> Можно. В гугле ищем "Рисовать на tmemo" "Рисовать на tedit"

Для рисования на поверхности TMemo необходимо создать создать собственный компонент, наследованный от TMemo и переопределить в нём рисование. Примерно так:

type
 TMyMemo = class(TMemo)
 protected
   procedure WMPaint(var message: TWMPaint); message WM_PAINT;
end;

А теперь добавьте реализацию этой процедуры:

procedure TMyMemo.WMPaint(var message: TWMPaint);
var
 MCanvas: TControlCanvas;
 DrawBounds : TRect;
begin
 inherited;
 MCanvas:=TControlCanvas.Create;
 // Работаем с временной записью TRect.
 DrawBounds := ClientRect;
 try
   MCanvas.Control:=Self;
   with MCanvas do
   begin
     Brush.Color := clBtnFace;
     FrameRect( DrawBounds );
     InflateRect( DrawBounds, -1, -1);
     FrameRect( DrawBounds );
     FillRect ( DrawBounds );
     MoveTo ( 33, 0 );
     Brush.Color := clWhite;
     LineTo ( 33, ClientHeight );
     PaintImages;
   end;
 finally
   MCanvas.Free;
 end;
end;

Процедура PaintImages рисует картинки на канвасе Memo.

procedure TMyMemo.PaintImages;
var
 MCanvas: TControlCanvas;
 DrawBounds : TRect;
 i, j : Integer;
 OriginalRegion : HRGN;
 ControlDC : HDC;
begin
 MCanvas:=TControlCanvas.Create;
 // Работаем с временной записью TRect.
 DrawBounds := ClientRect;
 try
   MCanvas.Control:=Self;
   ControlDC := GetDC(Handle);
   MCanvas.Draw(0, 1, Application.Icon);
 finally
   MCanvas.Free;
 end;
end;


Gydvin   (2006-11-27 15:25:00) [7]

Можно. В гугле ищем "Рисовать на tmemo" "Рисовать на tedit"


Наверх

Титульная страница Поиск, карта сайта Написать письмо