Вниз
Скачать: CL | DM;

Цвет фона   Найти похожие ветки 

← →
$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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
1-83588
vsu
2003-05-14 13:20
2003.05.26
RxLoginDialog и с чем его едят


4-83801
bobo
2003-03-25 19:06
2003.05.26
Как сделать ПЛАВНУЮ прокрутку в Rich Edit control ?


1-83475
MainKaif
2003-05-15 11:47
2003.05.26
Отлов нажатия клавиши


11-83435
Sam Stone
2002-08-18 17:18
2003.05.26
ScrollBox


3-83400
Солер
2003-05-06 16:59
2003.05.26
Как отменить запрос?




   Наверх