Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2011, 19:15   #1
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию Проблема с выведением чисел в ListBox

Всем привет.Задача вроде легкая а запоролся...Необходимо чтобы в listbox каждую секунду отображались цифры от 1 до 10(т.е. сначала цифра 1,через секунду цифра 2 еще через секунду - 3 и т.д.).

Создаю Listbox и таймер,в таймере по разному химичил но отображалось только разом от 1 до 10 и несколько раз(сделал цикл).

Заодно вопрос,реально ли сделать данную процедуру только в одном таймере?И можно ли обойтись в данном случае без массива?

Вот собственно сам код который я пытался реализовать:

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
aa:array of integer;
mm:integer;
begin
setLength(aa,10);
for mm:=0 to High(aa) do
begin
aa[mm]:=mm+1;
ListBox1.Items.Add(IntToStr(aa[mm]));
end;

end;
end.

Последний раз редактировалось xrenomx; 14.07.2011 в 19:19.
xrenomx вне форума Ответить с цитированием
Старый 14.07.2011, 19:24   #2
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Как-то у вас всё сложно, очень сложно!( Может так (я понял вам надо вывести цифры от 1 до 10 в listbox???)
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer //счётчик
begin
 for i:=1 to 10 do 
  ListBox1.Items.Add(IntToStr(i)); 
end;
И интервал у таймера 1000 милсек(1 секунда) поставте. ну и через кнопочку пустите timer1.enabled:=true; Вот наверно как-то так(если я вас правильно понял).
BlackFishSQL вне форума Ответить с цитированием
Старый 14.07.2011, 19:29   #3
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Цитата:
Сообщение от BlackFishSQL Посмотреть сообщение
Как-то у вас всё сложно, очень сложно!( Может так (я понял вам надо вывести цифры от 1 до 10 в listbox???)
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer //счётчик
begin
 for i:=1 to 10 do 
  ListBox1.Items.Add(IntToStr(i)); 
end;
И интервал у таймера 1000 милсек(1 секунда) поставте. ну и через кнопочку пустите timer1.enabled:=true; Вот наверно как-то так(если я вас правильно понял).
В вашем случае у меня цифры появляются все разом(1..10 в столбик),а надо чтобы сначала появилась цифра 1,через секунду цифра 2 и так до 10.

Думаю кнопка с объявлением таймера - истинным - необязательна,это уже штрихи.
Сам таймер настроен на 1 секунду...
xrenomx вне форума Ответить с цитированием
Старый 14.07.2011, 19:31   #4
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Код:
i:=1;
......
на button вешай
ListBox1.Items.Add(IntToStr(i));
inc(i);
а так (да блин сам не заметил что написал)

Последний раз редактировалось BlackFishSQL; 14.07.2011 в 19:33.
BlackFishSQL вне форума Ответить с цитированием
Старый 14.07.2011, 19:32   #5
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

ну тогда сделайте так:
Код:
if i=10 then timer.enabled:=false;
listbox1.items.add(inttostr(i);
i:=i+1;
в oncreate формы задайте значение i равно 1.

BlackFishSQL
если он напишет ваш код в событии таймера то там всегда будет добавлятса 1

Последний раз редактировалось Stilet; 19.07.2011 в 14:45.
Pein95 вне форума Ответить с цитированием
Старый 14.07.2011, 19:42   #6
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

да я отделил точками а тот пусть как Вы написали на фомкреэйт повешает
BlackFishSQL вне форума Ответить с цитированием
Старый 14.07.2011, 19:43   #7
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Pein95 Посмотреть сообщение
ну тогда сделайте так:
Код:
if i=10 then timer.enabled:=false;
listbox1.items.add(inttostr(i);
i:=i+1;
в oncreate формы задайте значение i равно 1.
Можно пожалуйста код целиком?А то логику пока не уловил...

в OnCreate прописываю

Код:
var
i:integer;
begin
i:=1;
end;
Тоже не понял зачем и для чего,ибо выдает ошибку...
xrenomx вне форума Ответить с цитированием
Старый 14.07.2011, 19:46   #8
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

обявите i как глобальную переменную
Pein95 вне форума Ответить с цитированием
Старый 14.07.2011, 19:47   #9
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Цитата:
var
i:integer;
Нужно не в событие ОнКриэйт, а в глобальные переменные, там, где обьявлена форма.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 14.07.2011, 19:53   #10
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Не выходит...формкриейт потёр,в гобалку добавил переменную i:integer;

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
for i:=0 to 10 do
if i=10 then timer1.enabled:=false;
listbox1.items.add(inttostr(i));
i:=i+1;
end;
xrenomx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма чисел из ListBox Энжи Помощь студентам 7 02.06.2011 03:08
Проблема создания listBox basilio2010 Microsoft Office Access 5 28.05.2010 10:21
проблема с listbox... jumper_ua Общие вопросы Delphi 15 16.02.2010 01:54
Прошу помощи с выведением содержимого RichEdit через GetFormImage dimofey Помощь студентам 8 25.06.2009 20:22
проблема с listbox и listview. blackstersl Общие вопросы Delphi 3 06.05.2009 23:31