|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.10.2012, 16:48 | #1 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 23
|
Выдиление области
Уважаемые программисты, в том году вы помогли мне с написанием плеера, за что я вам очень благодарен. В этом году я пробую свои силы в новом конкурсе по ИТ технологиям. Суть моей программы а точнее её идея на данный момент это тренажёр для компьютерной мыши. В моей программе есть всё что надо для начинающий в компьютере (чайников), нажатие левой кнопкой мыши на объект, наведение указателя на объект, нажатие правой кнопкой на объект, перенесения объекта в нужную точку я сделал это пазлом, и так же есть выделение области... Именно в последней составляющей у меня начались проблемы. Задание состоит вот в чём: при нажатии на кнопку "старт" на форме появляется 5 шейпов, они появляются рандомом, 3 зелёный шейпа два красных и один синий, ну это впрочем раскраска не важна, нужно выделить их курсором (выделятся будут так как на рабочем столе мы выделяем ряд ярлыков папок екзешников и тд. протягиванием мыши по экрану при нажатой левой кнопки). Когда мы выделяем шейпы мы должны сравнивать выделенную область с расположениями шейпов и вот те которые вошли в выделенную область должны исчезнуть. Буду благодарен если поможете с этим заданием. Если понадобиться могу скинуть свой код для сравнения. Спасибо за внимание, Александр=)
|
24.10.2012, 17:22 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Шейп - это как я понимаю набор точек. Просто проверьте каждую точку каждого шейпа на предмет нахождения внутри выделенного прямоугольника.Все сводится к тому, что такое "шейп" (в вашем случае)
|
24.10.2012, 17:27 | #3 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 23
|
Shape- фигура квадрат круг и тд и тп
|
24.10.2012, 18:16 | #4 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 23
|
вот мой код
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit7.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm7 *Form7; bool f; bool f1; int x,y,x1,x2,y1,y2,x3,x4,x5,x6,y3,y4,y 5,y6,x10,x11,x12,y10,y11,y12,xf,xf1 ,xf2,xf3,xf4,xf5,xf6,yf,yf1,yf2,yf3 ,yf4,yf5,yf6; TRect r1, r2; //--------------------------------------------------------------------------- __fastcall TForm7::TForm7(TComponent* Owner) : TForm(Owner) { randomize(); } //--------------------------------------------------------------------------- void __fastcall TForm7::FormClose(TObject *Sender, TCloseAction &Action) { Form1-> Close(); } //--------------------------------------------------------------------------- void __fastcall TForm7::Image3Click(TObject *Sender) { Form1->Show(); Form7->Hide(); } //--------------------------------------------------------------------------- void __fastcall TForm7::Image2Click(TObject *Sender) { Image1->Enabled=false; xf=Form7->Width-600; yf=Form7->Height-300; x10=random(xf-Shape2->Width-100); y10=random(yf-Shape2->Height-100); Shape2->Top = y10; Shape2->Left = x10; xf1=Form7->Width-500; yf1=Form7->Height-250; x11=random(xf1 - Shape3->Width-90); y11=random(yf1 - Shape3->Height-90); Shape3->Top = y11; Shape3->Left = x11; xf2=Form7->Width-100; yf2=Form7->Height-80; x12=random(xf2 - Shape4->Width-90); y12=random(yf2 - Shape4->Height-90); Shape4->Top = y12; Shape4->Left = x12; xf3=Form7->Width-200; yf3=Form7->Height-500; x3=random(xf3 - Shape5->Width-90); y3=random(yf3 - Shape5->Height-90); Shape5->Top = y3; Shape5->Left = x3; xf3=Form7->Width-400; yf3=Form7->Height-200; x4=random(xf3 - Shape1->Width-90); y4=random(yf3 - Shape1->Height-90); Shape1->Top = y4; Shape1->Left = x4; xf6=Form7->Width-90; yf6=Form7->Height; x6=random(xf6 - Shape6->Width-90); y6=random(yf6 - Shape6->Height-90); Shape6->Top = y6; Shape6->Left = x6; } //--------------------------------------------------------------------------- void __fastcall TForm7::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(Button!=mbLeft) return; x=X; y=Y; x1=X; y1=Y; x2=X; y2=Y; f=true; } //--------------------------------------------------------------------------- void __fastcall TForm7::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(Button!=mbLeft) { f=false; return; } if(f1) { if(x<X){r1.Left=x; r1.Right=X;} else {r1.Left=X; r1.Right=x;} if(y<Y){r1.Top=y; r1.Bottom=Y;} else {r1.Top=Y; r1.Bottom=y;} Form7->Canvas->DrawFocusRect(r2); } Form7->Repaint(); f=false; } //--------------------------------------------------------------------------- void __fastcall TForm7::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (f) { if (x<x1) {r1.Left=x; r1.Right=x1;} else {r1.Left=x1; r1.Right=x;} if (y<y1) {r1.Top=y; r1.Bottom=y1;} else {r1.Top=y1; r1.Bottom=y;} if (x<x2) {r2.Left=x; r2.Right=x2;} else {r2.Left=x2; r2.Right=x;} if (y<y2) {r2.Top=y; r2.Bottom=y2;} else {r2.Top=y2; r2.Bottom=y;} f1=true; Form7->Canvas->DrawFocusRect(r1); Form7->Canvas->DrawFocusRect(r2); x1=x2; y1=y2; x2=X; y2=Y; } } |
25.10.2012, 18:11 | #5 |
Пользователь
Регистрация: 11.10.2011
Сообщений: 23
|
Пожалуйста помогите((( уже 3 неделю с места не сдвигаюсь((
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать программу для определения принадлежности точки с координатами (х,у) заштрихованной области. Попадание на границу области | sanek@zaputan | Помощь студентам | 5 | 09.03.2012 12:00 |
Проверить принадлежит ли точка закрашенной области, границе или находится вне области (код на Pascal) | homk | Помощь студентам | 3 | 07.09.2011 23:16 |
Выдиление цветом макс. знач. | Slavik | Microsoft Office Excel | 8 | 04.05.2009 10:11 |
выделение области | seregaAV110 | Мультимедиа в Delphi | 3 | 27.11.2008 21:33 |
Карта области | Dmitriy77 | Общие вопросы Delphi | 0 | 23.10.2007 18:46 |