Текущий архив: 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