Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: 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 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-83446
HydraMarat
2003-05-14 18:40
2003.05.26
Оригинальный TList


3-83389
AlexA
2003-04-29 16:10
2003.05.26
происходит рестарт IB сервера.


3-83360
yurikon
2003-05-05 17:24
2003.05.26
Ошибка


7-83777
_sMile
2003-03-25 12:00
2003.05.26
Сжатие в памяти


1-83522
User
2003-05-13 12:12
2003.05.26
Сортировка в DBGridEh?