Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: 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 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
4-1083334118
Санёк
2004-04-30 18:08
2004.06.06
Как изменять размер окна тоская за угол формы?


1-1085565806
Yustas
2004-05-26 14:03
2004.06.06
Многоязычность


4-1083651174
Ske4er
2004-05-04 10:12
2004.06.06
Классический вопрос


8-1080035385
DeQuick
2004-03-23 12:49
2004.06.06
Бегущая строка


9-1076060971
AlexT1000
2004-02-06 12:49
2004.06.06
Исходники Castle Wolfenstain . Мож кому поможет в развитии.