![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.03.2015
Сообщений: 7
|
![]()
Доброго времени суток, уважаемые форумчане. Столкнулся с проблемой при решении задачи. Необходимо реализовать заполнение ячеек таблицы StringGrid размера mxn (число строк может равняться а может и не равняться числу столбцов (эти данные мы получаем из SpinEdit'ов)) способами, приведенными на картинке. Тем не менее необходимо с помощью компонента "TrackBar" реализовать регулировку скорости анимации (заполнения) таблицы поэлементно. Каждый способ заполнения необходимо реализовать с помощью отдельных процедур.
Способы заполнения (должны выбираться с помощью компонента RadioGroup): 1. По горизонтали (реализовано без анимации) 2. По вертикали (реализовано без анимации) 3. Змейка слева (реализовано без анимации) 4. Змейка справа (не реализовано) 5. Зигзаг (не реализовано) 6. Спираль (реализовано без анимации, и еще нужно переделать под таблицу произвольного размера) Желательно предоставить коды для каждой из процедур. Убедительно прошу, помогите! Прикрепляю к сообщению архив с проделанной работой до данного момента. Последний раз редактировалось dubsteppaman; 28.03.2015 в 17:09. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
А что уже сделано?
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 28.03.2015
Сообщений: 7
|
![]()
Сделаны все способы заполнения, кроме змейки справа (4 способ) и зигзага (5 способ), все способы заполнения выполнены без анимации, прошу объяснить, как можно ее реализовать на примере одной из процедур.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
Для анимации можно воспользоваться процедурой sleep(N), где N - миллисекунды - она реализует задержку, либо работать с таймером.
Хотя, щас попробовал Sleep - что-то не то... может просто криво попробовал Последний раз редактировалось Вадим Мошев; 28.03.2015 в 17:31. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 28.03.2015
Сообщений: 7
|
![]()
А можете, на основе одной из процедур, написанных мной, продемонстрировать пример с использованием компонентов "Timer" и "TrackBar". Не могу понять, как использовать "Timer" в данном случае, и еще, какие события использовать в данном случае?
Последний раз редактировалось dubsteppaman; 28.03.2015 в 18:58. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
У таймера всего только одно событие, которое называется "Timer" и вызывается каждый раз по истечению интервала.
Я бы посоветовал переписать процедуры заполнения массива следующим образом. Эта процедура за один вызов будет заполнять только одну ячейку массива, после чего вычислять координаты той ячейки, которая должна быть заполнена в следующий раз. Вычисление происходит на основе значений, вычисленных на предыдущем шаге. В начальный момент времени "пишущая головка" имеет положение по умолчанию, то есть, там, откуда должна начинаться запись, а вызов такой процедуры, как я уже говорил, сдвигает пишущую головку согласно алгоритму обхода матрицы. Координаты пишущей головки должны сохраняться между вызовами этих процедур для того, чтобы при следующем вызове записать число в ячейку с такими координатами и перейти к следующей ячейке. Всё это будет выглядеть так в коде (псевдокод): Код:
Пока реализуйте это. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 28.03.2015
Сообщений: 7
|
![]()
Спасибо за вариант, попробую реализовать. Все-таки узнать бы наконец, как реализовать анимированное заполнение с помощью этих двух компонентов. Надеюсь, будут ещё предложены варианты форумчанами.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так что ли? Скорость можно менять в процессе заполнения
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
А чтобы связать скорость заполнения (анимации) с положением ползунка, то у него надо прописать следующее событие:
Код:
|
![]() |
![]() |
![]() |
#10 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Не. Ч/з таймер сложно
![]() Я бы так Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заполнение ячеек таблицы | gerka997 | Microsoft Office Access | 0 | 26.10.2014 14:06 |
Полное заполнение таблицы в общем доступе/, но без права повторного редактирования ячеек после сохранения | Microsoft Office Excel | 3 | 01.10.2011 13:20 | |
поиск и заполнение ячеек таблицы | Окоча Юра | Microsoft Office Excel | 2 | 16.01.2010 19:00 |
Скорость заполнения памяти разными способами. | Alexcomeback | Общие вопросы C/C++ | 2 | 20.05.2009 23:14 |