|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Задание места клика и проверка был ли клик
В общем. В лабеле появляется вопрос. Тыкни куда-то туда. И пользователь клацает. Та вот... Я без понятия как задать куда тыкать и как прописать условия.
Что то типа Кликни туда-то (в проге появляется координата) Затем пользователь кликает и программа определяет, если он попал на эту координату, то верно иначе не верно. Среда Delphi 10 |
#2
|
||||
|
||||
Верхний левый угол экрана это точка с координатами 0, 0.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Цитата:
Код:
var iX, iY: integer; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label2.Caption:= 'Координато: X ' + IntToStr(X) + ',Y ' + IntToStr(Y); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if (iX = X) and (iY = Y) then begin Label1.Caption:='Попал!'; iX:= Random(ClientWidth); iY:= Random(ClientHeight); end else Label1.Caption:= 'Промах...'; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Label1.Caption:= 'Тыкни: X ' + IntToStr(iX) + ',Y ' + IntToStr(iY); end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; iX:= Random(ClientWidth); iY:= Random(ClientHeight); Label1.Caption:= 'Тыкни: X ' + IntToStr(iX) + ',Y ' + IntToStr(iY); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
|||
|
|||
Цитата:
Допустим, у меня есть картинка футбольного поля. И будет высвечиваться задание "нажмите на центр поля". В центре поля координат больше 20. Этот код будет отлавливать координаты вокруг координат центра поля? |
#5
|
|||
|
|||
Цитата:
Вот мой пример. Только надо сделать так, чтобы в условии было не 1 координата и через or другая, а сразу много. Я думал в массив это всё и через массив сравнивать есть такие коры или нет. Только как это точно записать я не знаю. Код:
procedure TForm4.Image1Click(Sender: TObject); var P: TPoint; begin GetCursorPos(P); P := Form4.ScreenToClient(P); if (P.X=447) AND (P.Y=392) then ShowMessage('Верно! Это центр поля!') else ShowMessage ('Не верно. Это не центр поля'); end; |
#6
|
||||
|
||||
Цитата:
если курсор на "краске"- жим в кружке,иначе не попал. Пересмотрите ТЗ, маловато инфы Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
Какую инфу дать?
Есть футбольное поле. У него есть центр. Цвет ВСЕХ линий на поле - Белый. Остальное поле - Зелёное. Моя задача: Высвечивается вопрос:"Где находится центр поля?" При нажатии на центр должно высвечиваться сообщение 'Верно' Иначе 'Не верно'. Моя проблема: Я не могу(не знаю как) записать все пиксели(координаты) этого кружка (цента поля) в массив и чтобы при нажатии на поле с массива т.е. проверялось if массив с координатами then 'Верно' else 'Не верно'. Мне предлагали через оператор for выделить квадрат и занести все координаты в массив и там проверить цвет если нажат был белый то верно иначе не верно. Но как этого сделать, я не знаю. На русском языке, пожалуйста ибо что такое ТЗ я тоже не знаю. |
#8
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
Вот пример, как это делать
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
||||
|
||||
я помню у нас давно когда-то была такая лаба в универе. начинали отсчет с левого верхнего угла (0,0) и дальше уже высчитывали
|