|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.06.2022, 20:55 | #1 |
Пользователь
Регистрация: 02.05.2022
Сообщений: 52
|
Timer и StringGrid
Доброго времени суток, помогите пожалуйста с заданием
При нажатии кнопки необходимо, чтобы таблица заполнялась числами от 1 до того момента, как закончатся ячейки в StringGrid1, размеры которого задаются через Edit'ы. Необходимо, чтобы заполнение производилось по таймеру с интервалом в 1500 мсек. Заполнение: от среднего элемента в верхний левый угол по главной диагонали, затем вниз в нижний левый угол, направо, вверх, остановиться перед заполненной ячейкой. По итогу заполнить треугольник под главной диагональю Если заданы разные размеры для матрицы (не квадратная и/или нет четкой середины) то отправной элемент - слева, как на примере ниже Код:
Последний раз редактировалось mr.stranger; 05.06.2022 в 21:10. |
05.06.2022, 21:43 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Для начала сделайте без таймера в цикле с использованием функции
Код:
|
05.06.2022, 21:54 | #3 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 484
|
Интересно, а где можно применить такой алгоритм?
стимулятор https://yoomoney.ru/to/41001303250491
|
05.06.2022, 22:02 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
У преподавателя с воображением беда просто.
|
05.06.2022, 23:20 | #5 |
Пользователь
Регистрация: 02.05.2022
Сообщений: 52
|
|
05.06.2022, 23:37 | #6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Код:
|
05.06.2022, 23:40 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,285
|
Если нужно прийти именно в верхний левый угол по диагонали, то после нахождения i и j, нужно из них выбрать меньшее число (например, k) и идти по элементам [k, k].
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
05.06.2022, 23:43 | #8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Только вам надо действовать не так. Надо посчитать количество элементов, которые надо заполнить (не важно каким образом)
Код:
Код:
Последний раз редактировалось macomics; 06.06.2022 в 00:01. |
06.06.2022, 01:04 | #9 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,285
|
macomics, а зачем считать количество и делать по нему цикл, если потом для таймера цикл все равно выбрасывать? Почему бы сразу не сделать цикл while True do, а внутри условия выхода из него с break, чтобы при переходе на таймер убрать сам цикл, а break заменить на остановку таймера.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.06.2022, 06:05 | #10 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
BDA: Вообще то даже нужно. Но я преследовал цель нагляднее показать как перейти от обычной логики заполнения таблицы значениями к алгоритму, позволяющему сделать анимацию через таймер. В бесконечном цикле не сразу очевидно какая переменная всем управляет.
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с Edit, Timer, StringGrid | Женька Good | Помощь студентам | 1 | 19.10.2012 22:08 |
Timer... | Teleport | Общие вопросы Delphi | 13 | 14.09.2011 17:02 |
Timer или While? | xrob | Общие вопросы Delphi | 7 | 24.08.2011 14:06 |
timer(vc++) | NiCola999 | Windows Forms | 13 | 31.01.2011 06:00 |
Timer... | Roof | Общие вопросы Delphi | 11 | 11.10.2007 12:57 |