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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2008, 21:10   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Координаты расставления.

Есть такой код:
Код:
procedure TMainForm.MapMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
bmp: TBitmap;
i: integer;
Array1: array of TPoint;
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile('bmp1.bmp')
Inc(I);
SetLength(Array1, i);
Array1[i-1].X:=X;
Array1[i-1].Y:=Y;
Image1.Canvas.Draw(Array1[i-1].X, Array1[i-1].Y, bmp1);
end;
Надо сделать такую не простую проверку(простите, если не смог нормально объяснить).
В общем если пользователь нажал в промежуток X = от 0 до 25 и Y=от 0 до 25 то нарисовать рисунок в точке 0,0. Если пользоваетль нажал в X=от 25 до 50 и Y=от 25 до 50 то нарисовать рисунок в точке 25,25. И так далее, увеличивая всё на 25. Как создать эту проверку? Размер формы может быть любой.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 10.10.2008, 21:27   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

OnMouseUp/OnMouseDown

cx:=(x div 25)*25;
cy:=(y div 25)*25;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.10.2008, 21:34   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Размер формы может быть любой
Но не больше размера экрана, наверное?
Ну и делайте проверку вниз:
Цитата:
var i: integer;
begin
for i:=1 to Round(Width/25)-1 do
if userx>Width-i*25 then
break;
xpos:=i*25;
ypos:=xpos;
end;
Или - как evg_m предложил.
mihali4 вне форума Ответить с цитированием
Старый 10.10.2008, 21:43   #4
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

To Mihali4.
В коде непонятно куда эту проверку вставить, а переменная userx ведь должно иметь какое-то начальное значение, а его нет...
Манжосов Денис :) вне форума Ответить с цитированием
Старый 10.10.2008, 23:47   #5
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
OnMouseUp/OnMouseDown

cx:=(x div 25)*25;
cy:=(y div 25)*25;
По моему вот правильное решение, или я чего то не понимаю?..
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 10.10.2008, 23:51   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Манжосов Денис :) Посмотреть сообщение
To Mihali4.
В коде непонятно куда эту проверку вставить, а переменная userx ведь должно иметь какое-то начальное значение, а его нет...
??? В вашу процедуру, где юзер тыкает мышкой в некую точку.
userx... М-да, догадаться, что это координаты "тычка" мышкой юзером, практически невозможно...
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты клика snake-as JavaScript, Ajax 0 24.02.2008 15:44
Координаты окон Лубышев Общие вопросы Delphi 6 22.01.2008 19:40
Координаты ОУ? Fainder Общие вопросы Delphi 9 15.10.2007 20:59
Координаты курсора Haster Win Api 8 06.08.2007 12:04
координаты Aram Общие вопросы C/C++ 5 08.06.2007 20:03