Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2010, 00:33   #1
Mick_14
Пользователь
 
Регистрация: 23.10.2010
Сообщений: 12
По умолчанию Прозрачность Bitmap

помогите плиззз!!!!!
Рисуется в image rectangle;
Поверх него нужно нарисовать окружность, но так чтобы она на НЕ затирала его!!!! как сделать???
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}

Graphics::TBitmap*  gBm = new Graphics::TBitmap;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Canvas->Rectangle(250,250,200,200);
 gBm->Width=Image1->ClientWidth;
 gBm->Height=Image1->ClientWidth;
 gBm->Canvas->Brush->Style=bsClear;
 Image1->Canvas->Pen->Width=1;
 Image1->Canvas->Brush->Style=bsClear;
}

bool pict;
POINT t1,t2;
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  t1.x=X;
  t1.y=Y;
  t2.x=X;
  t2.y=Y;
  pict=true;
}

void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
 pict=false;
 gBm->Canvas->Ellipse(t1.x,t1.y,t2.x,t2.y);
}


void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
if(pict==true)
{
 Image1->Canvas->Draw(0,0,gBm);
 Image1->Canvas->Pen->Color=clWhite;
 Image1->Canvas->Ellipse(t1.x,t1.y,t2.x,t2.y);
 t2.x=X;
 t2.y=Y;
 Image1->Canvas->Pen->Color=clGreen;
 Image1->Canvas->Ellipse(t1.x,t1.y,t2.x,t2.y);
 }
 }
Безымянный.jpg
Mick_14 вне форума Ответить с цитированием
Старый 17.11.2010, 00:53   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

М... Это билдер?
Цитата:
Поверх него нужно нарисовать окружность
Тогда рисовать его каждый раз перед рисованием окружности... Либо на битмапе его нарисовать...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.11.2010, 01:48   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Попробуйте перед выводом окружности написать
Код:
Image1 -> Canvas -> Brush -> Style = bsClear;
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 17.11.2010, 12:38   #4
Mick_14
Пользователь
 
Регистрация: 23.10.2010
Сообщений: 12
По умолчанию

Да уже в Bimap все нарисовал))) а как отчистить канву после рисования, и оставить только одно из нарисованных изображений???

Heeeeellllppp!!!!
Как сделать так чтобы при нажатии кнопки, на Image оставалось только одно изображение, а все те которые были нарисованы в Bitmap и отображены в image стерлись???????7

Последний раз редактировалось Stilet; 18.11.2010 в 09:25.
Mick_14 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Bitmap _-Re@l-_ Мультимедиа в Delphi 2 21.07.2010 19:08
из-за чего появляется полоса (на скрине) при вставке BitMap в TImage? - Проблема с Bitmap Grey@2009 Мультимедиа в Delphi 2 02.01.2010 20:23
Bitmap? HunterMan Общие вопросы .NET 7 27.12.2008 19:02
Рисунок в BitMap-е Altera Мультимедиа в Delphi 3 11.03.2008 13:42
BitBtn и ее Bitmap Yogik™ Помощь студентам 2 19.11.2007 17:12