Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизЦвет фона Найти похожие ветки
← →
$HiC0 (2003-05-13 13:00) [0]Добрый день! Вопрос такой. Если я рисую на канве некого объекта TImage, движущийся объект, то как мне получить цвет фона, мне ведь надо стирать(для анимации), судя по всему это довольно хлопотно... окромя этого в голову приходит только переопределение методов TShape чтобы можно было рисовать более сложные фигуры и наложение его поверх TImage... может кто подскажет как поступить?
Заранее спасибо!
← →
Zergling (2003-05-13 13:32) [1]А TImageList по каким причинам не подходит?
← →
$HiC0 (2003-05-13 13:32) [2]Хорошо поставлю вопрос по другому. На объекте TImage мне необходимо с помощью мыши выделить прямоугольную область и сохранить ее куда-нибудь, например в TBitMap. Как мне нарисовать эту рамку выделения. Вот нажал я на левую кнопку, поймал координаты начала области выделения, теперь тягаю мышу и область выделения растет.... как мне отрисовывать это???
← →
LexusR (2003-05-13 13:33) [3]1.вызываете его перерисовку с цветом дополнительным к фону(стирание)
2.смещаете объект
3.рисуете объект нормальным цветом
← →
$HiC0 (2003-05-13 13:35) [4]2 LexusR
>>1.вызываете его перерисовку с цветом дополнительным к фону
>>(стирание)
Что означает сия фраза? Как получить этот цвет?
← →
Zergling (2003-05-13 13:39) [5]Будет ругаться, укажи на что
OnMouseDown
SFocusX := X; SFocusY := Y;
EFocusX := 0; EFocusY := 0;
OnMouseMove
with PB do
Begin
Pen.Mode := pmXor;
DrawFocusRect(Rect(SFocusX, SFocusY, EFocusX, EFocusY));
Pen.Mode := pmXor;
DrawFocusRect(Rect(SFocusX, SFocusY, X, Y));
EFocusX := X; EFocusY := Y;
End;
OnMouseUp
PB.Pen.Mode := pmCopy;
PB - Canvas твоего объекта
← →
АтпетыеМашеники (2003-05-13 13:53) [6]GetBkColor не подойдет?
← →
Zergling (2003-05-13 13:54) [7]Для копирования изображения BrushCopy или CopyRect
← →
$HiC0 (2003-05-13 14:06) [8]2 Zergling
Ругтсья не ругается... все хорошо... ну там я добваил кое чего, а-то он начина сразу выделять не дожидаясь нажатия на левую клавишу.. а так ничего. спасибо!
Теперь другой вопрос - это все хорошо, а как сделать, это собственно мне нужно больше всего, что-бы кфадратный контур например зеленого цвета бегал по сложному многоцветному изображению... GetBkColor не подойдет, он возвращает цвет контекста, скорее всего можно сделать с BrushCopy но как?
← →
Zerglin (2003-05-13 14:10) [9]Пунктирный бегущий контур, как в графических редакторах и т.п.?
Или что то другое?
← →
$HiC0 (2003-05-13 14:12) [10]Да нет :)
Просто квадратик, без фона, который бегал-бы по определнным участкам рисунка... я туту делаю систему распознавания и надобы чтобы када программа распознала что-то на рисунке, она сумела это показать
← →
NAlexey (2003-05-13 14:15) [11]>что-бы кфадратный контур например зеленого цвета бегал по сложному многоцветному изображению
Не пойму что тебе мешает? И зачем тебе "цвет фона"
Canvas.Brush.Color := clGreen;
Canvas.FrameRect(Rect);
← →
$HiC0 (2003-05-13 14:15) [12]Блин даже без того что-бы движущийся... просто... движущийся нужен был для шику... но сейчас уже не до него :)
Пишу:
Procedure TForm1.Target(Img: TImage; x, y, w, h: integer);
Var StartPoint : TPoint;
Rec : TRect;
Begin
Randomize;
StartPoint.x:=Random(Img.Picture.Bitmap.Width);
StartPoint.y:=Random(Img.Picture.Bitmap.Height);
With Img.Picture.Bitmap.Canvas do
Begin
Pen.Color:=clLime;
Rectangle(StartPoint.x-(w div 2),StartPoint.y-(h div 2),StartPoint.x+(w div 2),StartPoint.y+(h div 2));
End;
End;
В результате получаю дырку на исходном рисунке (Img) в виде белого квадрата с зеленной рамкой, а мне нужна только зеленая рамка :)
← →
$HiC0 (2003-05-13 14:17) [13]2 Zerglin
2 NAlexey
Спасибо большое, все понял :))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c