Вопрос № 111333: Уважаемые экперты!
Помогите справиться с такой задачкой: есть 1-3 переменные (вернее индексированный массив p[N]), значения которых нужно изменять после некоторого интервала времени - независимо друг от друга (по какому-то событию, напр. нажатию ...Вопрос № 111347: Помогите пожалуйста. Найти количество чётных элементов массива и напечатать эти элементы. Использовать компонент StringGred...Вопрос № 111429: Здравствуйте! У меня появился вопрос:
как можно подсчитать сколько строк в таблице grid...
Вопрос № 111.333
Уважаемые экперты!
Помогите справиться с такой задачкой: есть 1-3 переменные (вернее индексированный массив p[N]), значения которых нужно изменять после некоторого интервала времени - независимо друг от друга (по какому-то событию, напр. нажатию Button1). Динамически создаю таймеры, но как сделать обработку OnTimer для конкретной N-й переменной? (Использовать N как входной параметр для procedure Timer не получилось. Пока получается срабатывание таймера в порядке, обратном нажатию клавиши Button1). Можно сделать статические 3 таймера
- на каждую переменную, но они будут использоваться только 1 раз, поэтому хотелось сэкономить ресурсы.
В подобной ситуации я пользовался таким приёмом:
1 - в массиве был отдельный столбец (int) - им я задавал тот промежуток времени в сек, в течении которого эта строка не должна обрабатываться;
2 - на форму кидал Timer, назначал ему интервал 1000 (1 сек), и при событии OnTimer
for i=0 to n do
if p[i,'№ моего столбца']>0 then p[i,'№ моего столбца'] := p[i,'№ моего столбца'] - 1;
3 - а уже в обработчике
if p['№ нужной строки','№ моего столбца']= 0 then ' моё событие '
Надеюсь смог объяснить свой алгоритм действий
Удачи!
Ответ отправил: Yumark (статус: 2-ой класс)
Ответ отправлен: 28.11.2007, 09:08 Оценка за ответ: 5 Комментарий оценки: все гениальное просто! Спасибо, это то что надо.
Вопрос № 111.347
Помогите пожалуйста. Найти количество чётных элементов массива и напечатать эти элементы. Использовать компонент StringGred
Отправлен: 28.11.2007, 11:03
Вопрос задал: FANATnn (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Mishell
Здравствуйте, FANATnn!
подсчет кол-ва четных элементов в массиве - см. в приложении
"напечатать" - что Вы имеете ввиду? на принтер, на экран или в таблицу
"Использовать компонент StringGred" - видимо TStringGrid, а для чего использовать? для ввода данных или может для вывода? :)
Приложение:
Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 28.11.2007, 11:34 Оценка за ответ: 5
Отвечает: Denisss
Здравствуйте, FANATnn!
Если я правильно понял Вашу задачу, то StringGrid следует применять для распечатки (т.е. вывода) четных элементов массива.
Пример такой "распечатки" находится в приложении.
Несколько комментариев, не вошедших в код:
- Четность определяется по младшему биту числа: если число представить в двоичной форме, то младший бит четных чисел равен нулю, а нечетных - единице. Чтобы выделить младший бит числа, нужно произвести операцию И этого числа и единицы. (Mass[i] and 1).
- Чтобы обращаться к свойствам StringGrid1 напрямую, используется оператор with (with StringGrid1 do).
- При обнаружении четного числа первым делом увеличивается счетчик (Inc(cc);). С учетом этого редактируются ячейки таблицы (StringGrid1). Т.о., четные элементы массива займут строки таблицы с нумерами от 1 до n. При этом строка с номером 0 останется пустой - она заполняется в конце, в нее прописывается количество найденных элементов.
Удачи!
Приложение:
--------- Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...
Ответ отправил: Denisss (статус: Профессионал) Россия, Москва ---- Ответ отправлен: 28.11.2007, 21:40
Вопрос № 111.429
Здравствуйте! У меня появился вопрос: как можно подсчитать сколько строк в таблице grid
Отправлен: 28.11.2007, 20:34
Вопрос задал: Iksmensp (статус: Заблокирован)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Виктор Пырлик
Здравствуйте, Iksmensp!
Для StringGrid - RowCount
Для DBGrid - у любого датасета к которому он подключен (таблица) RecordCount
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Специалист)
Ответ отправлен: 28.11.2007, 20:46 Оценка за ответ: 5 Комментарий оценки: Спасибо