Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заполнить случайными числами компонент Listbox [D7]


ганс ©   (2008-02-03 20:07:00) 

Не получается заполнить случайными числами Listbox
пишу в процедуре нажатия кнопки вот что:
var i:integer;
a:array[0..9] of integer;
begin
randomize;
for i:=0 to 9 do
a[i]:=random(20)-10;
listbox1.items.add(inttostr(a[i]));

И при нажатии кнопки в первой строке Listbox появляются 7 случайных цифр, выстроенных в ряд, а надо 10 цифр по одной в каждой строке.
Почему так получается?


Август   (2008-02-05 09:03:00) [1]

Ганс это ник! (был :))
А я догадался в чем ошибка! Спасибо таки Григорьеву Антону за подсказку!
Ну и вам всем спасибо за одно :)


clickmaker   (2008-02-04 12:56:00) [2]


> а тут какие-то антисемиты сидят.....

странно слышать это от Ганса...


Григорьев Антон   (2008-02-04 11:13:00) [3]


> Ганс ©   (04.02.08 10:50) [13]
> Вам легче бы было если бы я скопировал begin и end?

Как ни странно, да. Потому что единственная проблема приведённого в [0] кода - это то, что там отсутствуют begin и end. Если же они там, как вы говорите, есть, значит, поставлены не там, где надо. Если бы вы с самого начала скопировали реальный код, а не выкидывали бы оттуда то что "и так всем ясно", мы бы могли датть более точный ответ.

> Хотел ответ получить

Так вы его получили. Вы писали: "Почему так получается?" Я вам объяснил.

> а тут какие-то антисемиты сидят

Если бы вы немного подумали, прежде чем писать это, легко догадались бы, что никакой информацией о вашей национальности мы не располагали, поэтому не очень хорошее к вам отношение определяется чем-то другим. Вам даже объяснили, чем именно, кстати говоря.


KilkennyCat   (2008-02-04 10:55:00) [4]

> [13] Ганс ©   (04.02.08 10:50)
> Вам легче бы было если бы я скопировал begin и end?

нам индифферентно.


Ганс   (2008-02-04 10:50:00) [5]

Удалено модератором
Примечание: 3


KilkennyCat   (2008-02-04 08:03:00) [6]

Ну почему орешник не реанимируют? Таланты пропадают!


sniknik   (2008-02-03 21:28:00) [7]

> Операторные скобки я сюда не скопировал в целях экономии пространства, ведь и так всем ясно что они должны там быть
ну дак... и ответ тебе дали, в твоем стиле, с поясняющим кодом... просто сюда не скопировали, и так все знают каким он должен быть...


Anatoly Podgoretsky   (2008-02-03 21:26:00) [8]

> Ганс  (03.02.2008 20:57:08)  [8]

Стоп, так этот код никакого отношения к вопросу не имеет, так чего же ты сразу этого не сказал. Стал бы тот же Кетмар пальцы стирать, если бы знал это.


ketmar   (2008-02-03 21:04:00) [9]

>[8] Ганс ©(03.02.08 20:57)
всё. вот тут я ушёл ржать. усну с хорошим настроением.


Ганс   (2008-02-03 20:57:00) [10]

Операторные скобки я сюда не скопировал в целях экономии пространства, ведь и так всем ясно что они должны там быть


ketmar   (2008-02-03 20:52:00) [11]

>[4] Ганс ©(03.02.08 20:35)
да, а на код не надейся. это тут вряд ли. мы предпочитаем сложно, но научить, нежели давать зубрить заклинания.


ketmar   (2008-02-03 20:50:00) [12]

>[4] Ганс ©(03.02.08 20:35)
или ты его очень избирательно учишь, или тебе сильно не повезло с учебником. если второе — выкинь на помойку. в любой адекватной книге к моменту написания такого кода уже должны были пояснить, что такое блочный оператор, операторные скобки и как всё это применять.

зыж если не ясно — это хинты «куда читать».


Johnmen   (2008-02-03 20:36:00) [13]


> ketmar ©   (03.02.08 20:28) [3]

Ты не умничай, ты код давай! (с)
:)


Ганс   (2008-02-03 20:35:00) [14]

я учу язык


ketmar   (2008-02-03 20:28:00) [15]

>[2] Ганс ©(03.02.08 20:20)
DNA.

тебе же разжевали просто до обалдения. ты бы язык поучил немного — оно помогает.


Ганс   (2008-02-03 20:20:00) [16]

Подскажите пожалуйста что исправить надо


Григорьев Антон   (2008-02-03 20:12:00) [17]

Потому что listbox1.items.add(inttostr(a[i])) у вас не входит в цикл, эта строка выполняется после цикла, когда i=10, т.е. идёт обращение к элементу a[10]. А так как этого элемента не существует, фактически идёт обращение к памяти сразу за массивом, и что там будет лежать - непредсказуемо. В вашем случае там лежит одно большое семизначное число, которое и добавляется в ListBox1.

Итого имеем: во-первых, не надо забывать про begin..end. Во-вторых, надо обращать внимание на предупреждения компилятора, который наверняка верещал, что значение переменной i после цикла не определено, и использовать его нельзя.


Наверх

Титульная страница Поиск, карта сайта Написать письмо