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

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

вывод текста через канвас [D7, XP]


likenoother ©   (2007-05-08 19:23:00) 

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


{RASkov}   (2007-05-09 11:21:00) [1]

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

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


homm   (2007-05-09 11:06:00) [2]

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

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


{RASkov}   (2007-05-08 20:16:00) [3]

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

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


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

> [3] likenoother   (08.05.07 19:57)

Memo.ReadOnly:=True?

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

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


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

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


{RASkov}   (2007-05-08 19:46:00) [6]

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

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


{RASkov}   (2007-05-08 19:44:00) [7]

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


Наверх

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