Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вставка строки в любой Item в ListBox'е


Автор: mr.Anderson 24.9.2006, 12:43
Поместил на форму ListBox и пишу следующее:
Код

ListBox.Items.Strings[ 2 ] := 'mystring';

При срабатывании этого кода получаю ошибку:
Цитата

Unable to insert string.

Почему невозможно вставить строку? И как это организовать? Если возможно через другие компоненты, то подскажите, через какие (только плз говорите на какой вкладке они находятся, я еще плохо знаю Делфи).

Автор: Alexeis 24.9.2006, 12:50
так просто нужная строка еще не создана. Строки добавляет метод add и Insert

p.s. можно и проще записать
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items[2] := 'text';
end;

Автор: mr.Anderson 24.9.2006, 12:56
Не вышло. Ни первым, ни вторым методом. Второй метод выкинул все ту же ошибку, и первый:
Код

ListBox.Items.Insert( 2, 'mystr' );

Выдает то же самое...

Автор: Alexeis 24.9.2006, 13:00
sim7, Я же говорю для того чтоб иметь возможность изменить вторую строку надо чтоб она была создана. Такая ошибка возникает именно в этом случае. Просто добавьте нужное количество пустых строк методом Add(''); а потом уже можно будет менять любую из них по своему усмотрению.

Автор: mr.Anderson 24.9.2006, 13:06
alexeis1, спасибо, разобрался! smile Получилось вот так:
Код

...
var x: ShortInt;
...
 For x:=ListBox.Items.Count-1 To 2 Do
  ListBox.Items.Add( '' );

 ListBox.Items.Strings[ 2 ] := 'mystr';

Автор: demon13 24.9.2006, 13:18
Может лучше без лишних переменных?
Код

while ListBox1.Count < 2 do
 ListBox1.Items.Add('');
ListBox1.Items.Strings[2] := 'mystr';

Автор: mr.Anderson 24.9.2006, 15:36
demon13, согласен. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)