Я играю с FireMonkey просто, чтобы проверить пару вещей. Один из которых представляет собой «очень простой» рисунок на холсте. например, Line, Rectangle и т. д.FireMonkey PenMode эквивалент - DrawLine
Первый вопрос: есть ли эквивалент демоверсии graphex для VCL для FireMonkey?
В противном случае, для целей упражнения, я пытаюсь воспроизвести эту демонстрацию в FireMonkey и только сейчас, рисунок линии. Я могу заставить рисунок линии работать так, как если бы я перемещал мышь вокруг линии, то рисовал там, где это ожидалось. К сожалению, я не могу заставить его автоматически стирать старую строку, которая была нарисована в предыдущей точке, где была мышь. По-видимому, это связано с свойством TPenMode свойства TPen, которое, насколько я могу судить, является свойством TStroke в FireMonkey. т.е. установка свойства pmXor во время рисования (перемещение мыши), а затем установка его на pmCopy по завершении.
Как бы я сделал что-то подобное с FireMonkey?
Вот процедура, которая вызывается при событии MouseMove в виде TImage:
FDrawSurface.Bitmap.Canvas.BeginScene;
try
case FShapeToDraw of
doLine:
begin
FDrawSurface.Bitmap.Canvas.DrawLine(PointF(TopLeft.X, TopLeft.Y), PointF(BottomRight.X, BottomRight.Y), 100);
end;
end;
finally
FDrawSurface.Bitmap.Canvas.EndScene;
FDrawSurface.Bitmap.BitmapChanged;
end;
FDrawSurface является TImage. TopLeft - это TPoint, который содержит X и Y, где мышь была как захват в событии OnMouseDown TImaeg и BottomRight - это текущие координаты X и Y из события OnMouseMove.
Так что каждый раз, когда я перемещаю мышь, я получаю «дополнительные» линии на моем изображении.
Благодаря
Спасибо Whiler ... Пример не работал «из коробки» для меня, но дал мне указания о том, как это сделать - или, по крайней мере, подумать о решении по-другому. У меня теперь это «работает», см. Мой ответ ниже ... – Jason
Он работает на моем (я использую recBoard для рисования .. не изображение, которое используется только для проверки того, что у меня есть то, что я ожидаю в моем BMP ...). возможно, это не работает напрямую, когда вы это пробовали? :/ – Whiler