Вниз
Скачать: CL | DM;

вывод текста через канвас   Найти похожие ветки 

 
likenoother   (2007-05-08 19:23) [0]

доброго дня,такой вопрос,есть Tmemo текс из него через канвас пишеться на Timage но есть проблема,одна то что в конце каждой строки ставиться вертикальные черты,возможно ли от них как нибудь избавиться??


 
{RASkov} ©   (2007-05-08 19:44) [1]

> [0] likenoother   (08.05.07 19:23)

Возможно...
Текст выводи построчно с Мемо на Канву Image с увеличением координаты Y на TextHeight(Строки)...
Но может тебя устроит:
begin
 Image.Height:=Memo.Height;
 Image.Width:=Memo.Width;
 Memo.PaintTo(Image.Canvas, 0, 0);
end;


 
{RASkov} ©   (2007-05-08 19:46) [2]

> проблема,одна то что в конце каждой строки ставиться вертикальные черты

Может я и не правильно понял.... сорри. Приведи пример твоего кода.


 
likenoother   (2007-05-08 19:57) [3]

код такой:
image1.canvas.textout(memo1.left,memo1.top,memo1.text);
просто мемо находиться на том месте где дожлен быть текст и при двойной щелчке появляется мемо в нем редавктируется текст и уже потом выводиться на Image.
это если в одну строку,если в две я думаю надо будет разбивать мемо построчно и каждую отдельно выводить на имейдж,только вот от символов в конце строки бы избавиться.


 
{RASkov} ©   (2007-05-08 20:11) [4]

> [3] likenoother   (08.05.07 19:57)

Memo.ReadOnly:=True?

> если в две я думаю надо будет разбивать мемо построчно и
> каждую отдельно выводить на имейдж

Он уже "разбит" :) См. Lines


 
{RASkov} ©   (2007-05-08 20:16) [5]

> [3] likenoother   (08.05.07 19:57)

procedure TForm1.Memo1DblClick(Sender: TObject);
begin
*  Image1.Height:=Memo1.Height;
*  Image1.Width:=Memo1.Width;
*  Image1.Left:=Memo1.Left;
*  Image1.Top:=Memo1.Top;
 Memo1.PaintTo(Image1.Canvas, 0, 0);
 Memo1.Hide;
end;

procedure TForm1.Image1DblClick(Sender: TObject);
begin
 Memo1.Show;
end;

:))) Извращенец.
Строки со * каждый раз нет необходимости делать :)


 
homm ©   (2007-05-09 11:06) [6]

> *  Image1.Height:=Memo1.Height;
> *  Image1.Width:=Memo1.Width;
> *  Image1.Left:=Memo1.Left;
> *  Image1.Top:=Memo1.Top;

В КОЛ есть свойство Bounds: TRect. Вроде и в VCL было.


 
{RASkov} ©   (2007-05-09 11:21) [7]

> [6] homm ©   (09.05.07 11:06)

Ну да... и правильнее делать так:
Image1.SetBounds(Memo1.Left, Memo1.Top, Memo1.Width, Memo1.Height);
В коде [5] мы четыре раза вызываем данную функцию, что застовляет контрол перерисоваться 4 раза :( Но я пример приводил для наглядности а не по оптимизации...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.064 c
4-1166812769
O.O
2006-12-22 21:39
2007.05.27
Количество точек на дюйм экрана


2-1178621966
Doom-2
2007-05-08 14:59
2007.05.27
ClientHeight


15-1178042772
ShadowMan
2007-05-01 22:06
2007.05.27
TFileStream


3-1173446481
Thely
2007-03-09 16:21
2007.05.27
Скрипт в IBX


1-1175014811
BigTon
2007-03-27 21:00
2007.05.27
FastReport и StringGrid




   Наверх