![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заполнить случайными числами компонент 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 после цикла не определено, и использовать его нельзя.