Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Помогите с массивом

Автор: wary 16.05.2007 1:39

Здравствуйте, имеется следующая задача:

Заполнить две строки числами, после проверить принадлежность каждой к определенному множеству.
У меня собственно проблема с тем как ввести массив wacko.gif . Решил попробовать следующее:

Создал на форме объект Edit, потом с помощью цикла пробегаю его и присваю определенному массиву

Код
begin
        for i:=1 to 7 do
        a[i]:=strtoint(Edit1.Text);
        i:=i+1;
        end;


Вопросы:
1. Как например быть с тем, если я хочу ввести например числа 1, 15, 20 . Когда я их ввожу, вылетает ошибка что это не integer. В итоге получается ввести только такую последов чисел 12321321321...???
2. Как ограничить ввод в объект Edit1 только чисел типа integer, и фиксированного их колличества ?
3. Может как-то можно по другому решить эту задачу ??

За ранее спасибо!

Автор: -=Domestos=- 16.05.2007 2:08

В написанном тобой коде цикла for не нужно увеличивать счётчик i - он сам увеличивается.
И вообще поясни задачу более подробно, а то что-то не очень понятно, что вообще нужно сделать...

Автор: klem4 16.05.2007 2:11

wary Для ввода массивов намного удобнее использовать такие компоненты как TStringGrid или TMemo, информаия о них есть практически в любой книге по Delphi или в Интернете.

Если же ты хочешь использовать TEdit, то придется парсить строку, пропуская разделители, что немного сложнее, хотя есть и встроенная в делфи функция, выполняющая это действие, название сейчас не вспомню ...

Автор: volvo 16.05.2007 2:13

Цитата
В написанном тобой коде цикла for не нужно увеличивать счётчик i - он сам увеличивается.
А код надо ЧИТАТЬ а не просматривать - увеличивается значение i уже после цикла... Хотя полагаться на то, что после завершения цикла значение i будет = 7 нельзя... Оптимизатор может все испортить...

По теме - я бы делал либо в TEdit, но читал в TStringList, и там ставил нужные делимитеры, либо сразу TMemo вместо эдита...