Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-83664
yaJohn
2003-05-05 17:17
2003.05.26
Грабли с ИнсталШилдЕкспресс - запись бинарного поля в реестр.


7-83758
ed
2003-03-25 23:42
2003.05.26
флоп


1-83527
$HiC0
2003-05-13 15:15
2003.05.26
Рисование прямо на Bitmapе


14-83659
Ihor Osov'yak
2003-05-05 01:06
2003.05.26
Ты или Вы


8-83617
zenov
2003-02-12 15:55
2003.05.26
multimedia





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский