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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2010, 13:59   #1
Macwin
Пользователь
 
Регистрация: 05.10.2009
Сообщений: 12
По умолчанию Рисование Эллипса

Я сейчас пишу графический редактор, но возникла проблема, когда я начинаю рисовать, рисуется много кругов, вот коды.
MouseMove:
Код:
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
	  int X, int Y)
{
int X0, Y0.

if (SBFullEllipse->Down)
{
Image1->Canvas->Ellipse(X,Y0,X0,Y);
 if (X0 < X) { R.Left = X0; R.Right = X; }
	else { R.Left = X; R.Right = X0; }
	if (Y0 < Y) { R.Top = Y0; R.Bottom = Y; }
	else { R.Top = Y; R.Bottom = Y0; }
	Image1->Canvas->Brush->Style = BS;
	 }
}
MouseUp
Код:
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
	  TShiftState Shift, int X, int Y)
{
 if (SBFullEllipse->Down)
 {
  Image1->Canvas->Pen->Color = icolor;
  Image1->Canvas->Brush->Color = i2color;
  Image1->Canvas->Ellipse(R.Left,R.Top,R.Right,R.Bottom);
  Image1->Canvas->Pen->Style = PS;
   Image1->Canvas->Pen->Width = seWidth->Value;
	Image1->Canvas->Brush->Style = BS;
 }
}
Потом я решил попробовать сделать так, но тепреь он рисует один круг, но становится его видно, только после того как я отпущу мышку.
Вот код:
Код:
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
	  int X, int Y)
{
int X0, Y0.

if (SBFullEllipse->Down)
{
Image1->Canvas->Ellipse(X,Y,X,Y); //Тут я изменил код
 if (X0 < X) { R.Left = X0; R.Right = X; }
	else { R.Left = X; R.Right = X0; }
	if (Y0 < Y) { R.Top = Y0; R.Bottom = Y; }
	else { R.Top = Y; R.Bottom = Y0; }
	Image1->Canvas->Brush->Style = BS;
	 }
}
MouseUp
Код:
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
	  TShiftState Shift, int X, int Y)
{
 if (SBFullEllipse->Down)
 {
  Image1->Canvas->Pen->Color = icolor;
  Image1->Canvas->Brush->Color = i2color;
  Image1->Canvas->Ellipse(R.Left,R.Top,R.Right,R.Bottom);
  Image1->Canvas->Pen->Style = PS;
   Image1->Canvas->Pen->Width = seWidth->Value;
	Image1->Canvas->Brush->Style = BS;
 }
}
Macwin вне форума Ответить с цитированием
Старый 18.03.2010, 14:38   #2
Macwin
Пользователь
 
Регистрация: 05.10.2009
Сообщений: 12
По умолчанию

Помогите....
Macwin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование Granus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 32 30.06.2009 23:23
рисование TaTT DoGG Общие вопросы .NET 3 14.05.2009 18:36
Рисование Granus Общие вопросы Delphi 2 24.12.2008 07:44
Рисование TriCERATOP Помощь студентам 5 28.11.2008 15:09
Рисование... HunterMan Win Api 10 30.04.2008 23:46