![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
в общем рисую на канве изображения сетку из квадратиков 9*9, каждый квадратик 16*16, есть 2 массива Rectangles_x[1..9, 1..9, 1..16] и Rectangles_y[1..9, 1..9, 1..16], первые 2 части массивов - номера строки и столбца, третья - координаты по x и y относительно Image соответственно, в общем я слегка запутался во всем этом деле... если я завожу 3 цикла в которых рисую и попутно пытаюсь записать координаты в 3 часть массивов, то я никак не врублюсь как же получиться что вложенный цикл выходит больше того что выше...
Код:
Последний раз редактировалось NewLamer&Programer; 06.01.2013 в 13:59. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
HELP !!!!!
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
зачем Вы поднимаете тему? Надеетесь, так быстрее получите результат?..
попробовал Ваш код. рисует прямоугольник заполненный клетками 9X9 что не так? p.s.вместо двух массивов я бы рекомендовал использовать один, типа TPoint Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
Serge_Bliznykov, да надеюсь
Код:
![]() з.ы. да пожалуй можно и TPoint, не знал о таком спасибо ![]() Последний раз редактировалось NewLamer&Programer; 06.01.2013 в 19:40. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
так, что ли?? Код:
Последний раз редактировалось Serge_Bliznykov; 07.01.2013 в 02:07. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
смотрите:
Rectangles[i, j, u].x в u будет записана координата x - это понятно? (или y, если это массив Rectangles[i, j, u].y) таких координат 16, т.к. сторона квадрата 16, соответственно по каждому квадрату 16 u, потом в Image1MouseDown я пишу - если X совпадает с одной из u то мне нужно будет взять координаты этого квадрата (исходя только из номера столбца и строки, x и y мне больше не нужны) и где то использовать потом (по нажатию на Image в конкретной клетке что то должно происходить) да, и конечно y тоже должно совпадать... п.с. может конечно для всей этой фигни существует готовый компонент, но я о таком не слышал ![]() Последний раз редактировалось NewLamer&Programer; 07.01.2013 в 11:45. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
также возникло еще несколько вопросов другого характера, напишу их уж в этой же теме:
1. Моя попытка устроить рекурсию... знаю о ней только по наслышке ![]() Код:
Timer1.Enabled:= True; он заполняет все лабелы какими то левыми числами о_О з.ы. да кстати при включении\выключении таймера ATime будет обнуляться? просто я даже не знаю как его тут обнулить... ведь оно должно считать... Код:
Последний раз редактировалось NewLamer&Programer; 07.01.2013 в 20:31. |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
извините, я просто не могу представить, что за трёхмерный массив Вы пытаетесь создать и обработать.. ![]() теперь по поводу рекурсии. Чтобы понимать рекурсию, нужно сначала понимать рекурсию. Вы же пытаетесь использовать рекурсию НЕ понимая, что это такое! ошибки у Вас две. первая. Мелкая. О которой Вас уведомляет компилятор. Она к рекурсии отношения НЕ ИМЕЕТ. представьте, у Вас есть ФУНКЦИЯ, которая вычисляет (например!) квадратный корень. назовём её SQRT. она где-то описана так function SQRT( real ) : real; Вы пытаетесь написать так: SQRT(2) := 0; что должен сделать компилятор?! Он НЕ МОЖЕТ присвоить значению функции (результату) Ваше число. О чём он и скажет "Left side cannot be assigned to" - "нельзя присвоить левой части выражения" ну, формально эту ошибку можно обойти так: Код:
Что Вы вообще пытаетесь добиться такой функцией?!!!! Вообще не могу понять! ;( по поводу таймера. На форуме эта тема уже была расмотрена и не раз. Если вкратце - нужно использовать или системный таймер, или делать переменную ATime ГЛОБАЛЬНОЙ переменной (или, лучше, свойством класса, например в Form1 ) |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
1. пробовал, не то
если честно (иллюстрация) я пытаюсь сделать сапера ![]() 2. просто скажите мне как мне сделать функцию типа Enabled, которая будет что то включать и выключать(по присвоении Enabled:= True/False), можно без рекурсии 3. что такое системный таймер не знаю(не sleep() часом?), что такое свойство класса тоже плохо себе представляю (примерчик бы) проблему решил сделав переменную ATime глобальной ![]() Последний раз редактировалось NewLamer&Programer; 08.01.2013 в 16:12. |
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Вот заготовочка сапера (может натолкнет на какие-нибудь мысли). Захотелось тоже написать
![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
2х мерный массив delphi | sofiya | Помощь студентам | 1 | 22.02.2011 10:26 |
2-мерный массив | Golovastik | PHP | 1 | 30.06.2010 23:13 |
N-мерный массив в c++ builder | vasuc | Qt и кроссплатформенное программирование С/С++ | 0 | 27.02.2010 16:54 |
N мерный массив | Лубышев | Общие вопросы Delphi | 3 | 08.05.2009 12:12 |
2х мерный массив - помощь | пукарь | Паскаль, Turbo Pascal, PascalABC.NET | 15 | 28.10.2008 16:13 |