Главная страница
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.036 c
6-1082190154
AndersoNRules
2004-04-17 12:22
2004.06.06
Kak ispolizuya componenti TSocket (ili po drugomu),proveriti:Ne


3-1084840121
Lego82
2004-05-18 04:28
2004.06.06
Как перенести таблицу StringGrid в БД Paradox


1-1085486770
Delphin
2004-05-25 16:06
2004.06.06
Как вызвать процедуру


3-1084691280
Rouse_
2004-05-16 11:08
2004.06.06
Очень быстрое добавление изменение записи...


3-1084440830
Вопрошающий
2004-05-13 13:33
2004.06.06
Приведение типов