Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Вниз
Заполнить случайными числами компонент Listbox Найти похожие ветки
← →
ганс © (2008-02-03 20:07) [0]Не получается заполнить случайными числами 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-03 20:12) [1]Потому что listbox1.items.add(inttostr(a[i])) у вас не входит в цикл, эта строка выполняется после цикла, когда i=10, т.е. идёт обращение к элементу a[10]. А так как этого элемента не существует, фактически идёт обращение к памяти сразу за массивом, и что там будет лежать - непредсказуемо. В вашем случае там лежит одно большое семизначное число, которое и добавляется в ListBox1.
Итого имеем: во-первых, не надо забывать про begin..end. Во-вторых, надо обращать внимание на предупреждения компилятора, который наверняка верещал, что значение переменной i после цикла не определено, и использовать его нельзя.
← →
Ганс © (2008-02-03 20:20) [2]Подскажите пожалуйста что исправить надо
← →
ketmar © (2008-02-03 20:28) [3]>[2] Ганс ©(03.02.08 20:20)
DNA.
тебе же разжевали просто до обалдения. ты бы язык поучил немного — оно помогает.
← →
Ганс © (2008-02-03 20:35) [4]я учу язык
← →
Johnmen © (2008-02-03 20:36) [5]
> ketmar © (03.02.08 20:28) [3]
Ты не умничай, ты код давай! (с)
:)
← →
ketmar © (2008-02-03 20:50) [6]>[4] Ганс ©(03.02.08 20:35)
или ты его очень избирательно учишь, или тебе сильно не повезло с учебником. если второе — выкинь на помойку. в любой адекватной книге к моменту написания такого кода уже должны были пояснить, что такое блочный оператор, операторные скобки и как всё это применять.
зыж если не ясно — это хинты «куда читать».
← →
ketmar © (2008-02-03 20:52) [7]>[4] Ганс ©(03.02.08 20:35)
да, а на код не надейся. это тут вряд ли. мы предпочитаем сложно, но научить, нежели давать зубрить заклинания.
← →
Ганс © (2008-02-03 20:57) [8]Операторные скобки я сюда не скопировал в целях экономии пространства, ведь и так всем ясно что они должны там быть
← →
ketmar © (2008-02-03 21:04) [9]>[8] Ганс ©(03.02.08 20:57)
всё. вот тут я ушёл ржать. усну с хорошим настроением.
← →
Anatoly Podgoretsky © (2008-02-03 21:26) [10]> Ганс (03.02.2008 20:57:08) [8]
Стоп, так этот код никакого отношения к вопросу не имеет, так чего же ты сразу этого не сказал. Стал бы тот же Кетмар пальцы стирать, если бы знал это.
← →
sniknik © (2008-02-03 21:28) [11]> Операторные скобки я сюда не скопировал в целях экономии пространства, ведь и так всем ясно что они должны там быть
ну дак... и ответ тебе дали, в твоем стиле, с поясняющим кодом... просто сюда не скопировали, и так все знают каким он должен быть...
← →
KilkennyCat © (2008-02-04 08:03) [12]Ну почему орешник не реанимируют? Таланты пропадают!
← →
Ганс © (2008-02-04 10:50) [13]Удалено модератором
Примечание: 3
← →
KilkennyCat © (2008-02-04 10:55) [14]> [13] Ганс © (04.02.08 10:50)
> Вам легче бы было если бы я скопировал begin и end?
нам индифферентно.
← →
Григорьев Антон © (2008-02-04 11:13) [15]
> Ганс © (04.02.08 10:50) [13]
> Вам легче бы было если бы я скопировал begin и end?
Как ни странно, да. Потому что единственная проблема приведённого в [0] кода - это то, что там отсутствуют begin и end. Если же они там, как вы говорите, есть, значит, поставлены не там, где надо. Если бы вы с самого начала скопировали реальный код, а не выкидывали бы оттуда то что "и так всем ясно", мы бы могли датть более точный ответ.
> Хотел ответ получить
Так вы его получили. Вы писали: "Почему так получается?" Я вам объяснил.
> а тут какие-то антисемиты сидят
Если бы вы немного подумали, прежде чем писать это, легко догадались бы, что никакой информацией о вашей национальности мы не располагали, поэтому не очень хорошее к вам отношение определяется чем-то другим. Вам даже объяснили, чем именно, кстати говоря.
← →
clickmaker © (2008-02-04 12:56) [16]
> а тут какие-то антисемиты сидят.....
странно слышать это от Ганса...
← →
Август © (2008-02-05 09:03) [17]Ганс это ник! (был :))
А я догадался в чем ошибка! Спасибо таки Григорьеву Антону за подсказку!
Ну и вам всем спасибо за одно :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c