|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.03.2015, 15:46 | #1 |
Регистрация: 28.03.2015
Сообщений: 7
|
Анимированное заполнение ячеек таблицы StringGrid разными способами
Доброго времени суток, уважаемые форумчане. Столкнулся с проблемой при решении задачи. Необходимо реализовать заполнение ячеек таблицы StringGrid размера mxn (число строк может равняться а может и не равняться числу столбцов (эти данные мы получаем из SpinEdit'ов)) способами, приведенными на картинке. Тем не менее необходимо с помощью компонента "TrackBar" реализовать регулировку скорости анимации (заполнения) таблицы поэлементно. Каждый способ заполнения необходимо реализовать с помощью отдельных процедур.
Способы заполнения (должны выбираться с помощью компонента RadioGroup): 1. По горизонтали (реализовано без анимации) 2. По вертикали (реализовано без анимации) 3. Змейка слева (реализовано без анимации) 4. Змейка справа (не реализовано) 5. Зигзаг (не реализовано) 6. Спираль (реализовано без анимации, и еще нужно переделать под таблицу произвольного размера) Желательно предоставить коды для каждой из процедур. Убедительно прошу, помогите! Прикрепляю к сообщению архив с проделанной работой до данного момента. Последний раз редактировалось dubsteppaman; 28.03.2015 в 17:09. |
28.03.2015, 17:16 | #2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
А что уже сделано?
|
28.03.2015, 17:18 | #3 |
Регистрация: 28.03.2015
Сообщений: 7
|
Сделаны все способы заполнения, кроме змейки справа (4 способ) и зигзага (5 способ), все способы заполнения выполнены без анимации, прошу объяснить, как можно ее реализовать на примере одной из процедур.
|
28.03.2015, 17:26 | #4 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Для анимации можно воспользоваться процедурой sleep(N), где N - миллисекунды - она реализует задержку, либо работать с таймером.
Хотя, щас попробовал Sleep - что-то не то... может просто криво попробовал Последний раз редактировалось Вадим Мошев; 28.03.2015 в 17:31. |
28.03.2015, 18:56 | #5 |
Регистрация: 28.03.2015
Сообщений: 7
|
А можете, на основе одной из процедур, написанных мной, продемонстрировать пример с использованием компонентов "Timer" и "TrackBar". Не могу понять, как использовать "Timer" в данном случае, и еще, какие события использовать в данном случае?
Последний раз редактировалось dubsteppaman; 28.03.2015 в 18:58. |
28.03.2015, 20:10 | #6 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
У таймера всего только одно событие, которое называется "Timer" и вызывается каждый раз по истечению интервала.
Я бы посоветовал переписать процедуры заполнения массива следующим образом. Эта процедура за один вызов будет заполнять только одну ячейку массива, после чего вычислять координаты той ячейки, которая должна быть заполнена в следующий раз. Вычисление происходит на основе значений, вычисленных на предыдущем шаге. В начальный момент времени "пишущая головка" имеет положение по умолчанию, то есть, там, откуда должна начинаться запись, а вызов такой процедуры, как я уже говорил, сдвигает пишущую головку согласно алгоритму обхода матрицы. Координаты пишущей головки должны сохраняться между вызовами этих процедур для того, чтобы при следующем вызове записать число в ячейку с такими координатами и перейти к следующей ячейке. Всё это будет выглядеть так в коде (псевдокод): Код:
Пока реализуйте это. |
28.03.2015, 20:48 | #7 |
Регистрация: 28.03.2015
Сообщений: 7
|
Спасибо за вариант, попробую реализовать. Все-таки узнать бы наконец, как реализовать анимированное заполнение с помощью этих двух компонентов. Надеюсь, будут ещё предложены варианты форумчанами.
|
28.03.2015, 21:03 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Так что ли? Скорость можно менять в процессе заполнения
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.03.2015, 21:04 | #9 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
А чтобы связать скорость заполнения (анимации) с положением ползунка, то у него надо прописать следующее событие:
Код:
|
28.03.2015, 21:13 | #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 |