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

вывод текста в PaintBox.canvas   Найти похожие ветки 

← →
Leos   (2004-05-23 15:28) [0]

Как реализовать вывод текста в PaintBox.canvas , но не просто, а чтобы его можно было там редактировать. Затем выполнить некоторые другие действия (рисование...), а потом опять вернуться обранно.
Я имею ввиду редактирование текста как в  PhotoShop"e.


← →
jack128 ©   (2004-05-23 15:48) [1]

ну ты же где то хранишь те фигуры, линии, которые рисуешь в пайнтбоксе? Вот удаляй информацию о фигуре и Invalidate"ть PaintBox..

Например простейший пример

type
 TLine = record
   StartPoint, FinalPoint: TPoint;
 end;

var
 HasLine: boolean;
 Line: TLine;
 HasLineArhive: TBits;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
 if HasLine then
 begin
   with (Sender as TPaintBox).Canvas do
   begin
     MoveTo(Line.StartPoint.x, Line.StartPoint.y);
     LineTo(Line.FinalPoint.x, Line.FinalPoint.y);
   end;  
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 HasLine := not HasLine;
 PaintBox1.Invalidate;
end;
В более сложно случае с множеством линий можно хранить их дин массиве и удалять или добовлять линии в этот массив. То же с другими фигурами(не линиями)

Насчет отмены(тебе как я понял мужно Undo/Redo) твоя структура(переменная HasLine в моем примере или массив линий) должна уметь сохранять себя в какой нибудь массив. Тогда при Undo ты будешь брать предыдущий элемент из массива и рисовать его, а при Redo брать следущий..


← →
Leos   (2004-05-23 16:02) [2]

Нет это понятно. Может я несовсем точто выразился.
Мне нужен инструмент для вывода текста на картинку, причём с возможностью его прямо там и редактировать, вставлять и буфера обмена форватированный текст. При отключении этого инструмента текст превращается в картинку...


← →
jack128 ©   (2004-05-23 16:08) [3]

ну так создавай эдит поверх картинки , когда нужно редактировать текст, а потом укничтожай его..



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

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



Память: 0.45 MB
Время: 0.03 c
3-1084772982
ss300
2004-05-17 09:49
2004.06.06
Странная Ошибка при вызове метода Post;


14-1085290142
Сергей
2004-05-23 09:29
2004.06.06
Работа


14-1084932386
Думкин
2004-05-19 06:06
2004.06.06
С днем рождения! 19 мая


3-1084785872
AlexKont
2004-05-17 13:24
2004.06.06
Delphi7,MS SQL


1-1085634925
an-na2002
2004-05-27 09:15
2004.06.06
Как сделать невидимым или неактивным TEdit?




   Наверх