| 
| 
 | Вопрос # 1 847/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Мне необходимо использовать битмап в качестве фона (так что бы компонент не выделялся на форме, а выглядел так как будто текст печатается на самой форме) для reachedit или SynEdit, как это можно сделать?
 Заранее спасибо.
 
|  |   Вопрос задал: VIRUS (статус: Посетитель)Вопрос отправлен: 26 августа 2008, 20:02
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Feniks Здравствуйте, VIRUS!Возможно код в Приложении вам поможет или подскажет путь, в котором надо копать.
 
 P.S. Желаю удачи.
 Приложение:Переключить в обычный режим procedure RichEditToCanvas(RichEdit: TRichEdit; Canvas: TCanvas; PixelsPerInch: Integer);varImageCanvas: TCanvas;fmt: TFormatRange;beginImageCanvas := Canvas;with fmt dobegin   hdc:= ImageCanvas.Handle;   hdcTarget:= hdc;   // rect needs to be specified in twips (1/1440 inch) as unit   rc:=  Rect(0, 0,               ImageCanvas.ClipRect.Right * 1440 div PixelsPerInch,               ImageCanvas.ClipRect.Bottom * 1440 div PixelsPerInch             );   rcPage:= rc;   chrg.cpMin := 0;   chrg.cpMax := RichEdit.GetTextLen;end;SetBkMode(ImageCanvas.Handle, TRANSPARENT);RichEdit.Perform(EM_FORMATRANGE, 1, Integer(@fmt));// next call frees some cached dataRichEdit.Perform(EM_FORMATRANGE, 0, 0);end; procedure TForm1.Button1Click(Sender: TObject);begin  RichEditToCanvas(RichEdit1, Image1.Canvas, Self.PixelsPerInch);  Image1.Refresh;end;
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 27 августа 2008, 11:01
 
 |  Ответ #2. Отвечает эксперт: Паровоз Здравствуйте, VIRUS! Попробуйте следующий код:var
 ws:integer;
 bm:TBitmap;
 begin
 bm:=TBitmap.Create;
 bm.LoadFromFile('..........');
 RichEdit1.Brush.Bitmap:=bm;
 ws:=GetWindowLong(RichEdit1.Handle, GWL_EXSTYLE);
 ws:=ws or WS_EX_TRANSPARENT;
 SetWindowLong(RichEdit1.Handle,GWL_EXSTYLE,ws);
 end;
 
|  | Ответ отправил: Паровоз (статус: 10-ый класс)Время отправки: 27 августа 2008, 17:57
 
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 27 августа 2008, 00:00; участников в обсуждении: 1. 
|   | Вадим К (статус: Академик), 27 августа 2008, 00:00 [#1]:если надо что бы RichEdit не выделялся из формы и форма одного цвета, то это очень просто сделать. надо выставить такие свойства BorderStyle = bsNone
 Color = clBtnFace
 
 Теперь будет "заподлицо".
 А вот фон установить в виде картинки и/или прозрачным сделать - в стандартном невозможно (или лучше написать сложно). Надо писать наследника или скачать готовые компоненты, которые уже имеют данную функциональность.
 Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |