|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Наложение сетки на Image
Здравствуйте.
У меня такой вопрос: Нужно наложить на Image сетку ,(например 20х20 ячеек), и при клике по разным ячейкам должны происходить разные события. При этом сетка не должна быть видна, только при программировании для удобства. Подскажите пожалуйста, как это можно реализовать, очень бы хотелось с примером кода, а то я в программировании еще не силён. Очень надеюсь на Вашу помощь. |
#2
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Спасибо, а можете привести небольшой примерчик, если не трудно.
|
#4
|
||||
|
||||
Цитата:
я тебе информацию к размышлению дам (см. картинку). Точка - это где щелчок произошел. Известны размеры воображаемой ячейки. Как вычислить ячейку, в которой произошел щелчок? http://www.delphisources.ru/forum/at...d=131375652 5 |
#5
|
|||
|
|||
Мало что понятно из вышесказанного, вопрос остаётся нерешенным, может кто-нибудь может подробно объяснить на нормальном примере?
|
#6
|
||||
|
||||
не хош думать, сделай решение в лоб, накидай на форму 100 Image(10х10)
И кликай по ним сколько душе угордно |
#7
|
||||
|
||||
Цитата:
По теме: Размеры твоего имиджа тебе известны, делишь ширину и высоту на столько частей, на сколько надо (в твоем случае 10). image1.width div 10, получишь размер клеточки. Далее думаем сами. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
Цитата:
|
#9
|
|||
|
|||
Image (1000х600) надо разбить на 6000 кусочков (10х10).
Так как я не профи как вы в делфи, вот и просил привести наглядный рабочий пример на нескольких ячейках хотябы, чтобы по аналогии я уже смог сделать полностью. |
#10
|
||||
|
||||
А какие события должны происходить при нажатии на ячейку??
|
#11
|
|||
|
|||
По клику на указанные ячейки должно перемещаться Image2(10x10).
|
#12
|
||||
|
||||
Так что ли:
Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Const a = 20; b = 20; begin ShowMessage('Ячейка = ['+IntToStr(X div a)+', '+IntToStr(Y div b)+']'); end; If end Then begin; |
#13
|
|||
|
|||
Цитата:
Спасибо за пример. Скомпилировал, ячейки показывает, а как для определённых ячеек прописывать события, нужно, чтобы по клику на указанные ячейки перемещалось Image2(10x10). Буду очень признателен за помощь. |
#14
|
||||
|
||||
Можно в case сделать.
Код:
case X div a of 0: showmessage('ячейка 1 по x'); 1: showmessage('ячейка 2 по x'); ... end; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#15
|
|||
|
|||
Цитата:
Спасибо большое, а как в этот код еще по оси Y добавить, а то у меня в коде при клике все ячейки по оси Y срабатывают? Код: Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Const a = 10; b = 10; begin //ShowMessage('Ячейка = ['+IntToStr(X div a)+', '+IntToStr(Y div b)+']'); case X div a of 0: begin Panel1.visible:=True; Panel1.left:=X;Panel1.Top:=Y;end; 1: begin Panel1.visible:=True; Panel1.left:=X;Panel1.Top:=Y;end; 2: begin Panel1.visible:=True; Panel1.left:=X;Panel1.Top:=Y;end; end; end; |