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

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

в ListView правильно SubItems.add или SubItems.Strings[1]


Garacio ©   (2007-01-14 13:54:00) 

Может возникать ошибка при компиляции, если я пытаюсь ввести значение в третью колоку, оставив приэмом вторую пустой?
Пока строка была такой:
ListView1.Items[g].SubItems.add('Ок');
Всё работало. Поменял на:
ListView1.Items[g].SubItems.Strings[1] := 'Ок';
Появилась ошибка:
procedure TFormMain.FormCreate(Sender: TObject);
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'save.ini');
Edit1.Text := Ini.ReadString('tools', 'Edit1', '');
if Edi1t.Text ='' //ошибка сдесь!
 then begin
 ButtonObzorClick(Sender);
 end;
Ini.Free;
end;

Что не так?


unknown   (2007-01-14 22:32:00) [1]

 with ListView.Items[g] do
 begin
    SubItems.Clear;
   SubItems.Add('');
   SubItems.Add('Demo');
 end;


Garacio   (2007-01-14 21:42:00) [2]

Дело в том, что мне многое для этого нужно переделать в своей программе, впереди рабочие дни... Если кто-то это уже делал, неужели ему тяжело ответить? А так придётся снова задавать вопрос и пол дня (как сегодня) ждать, что кто-нибудь ответит! Короче, философия-философией, но если знаете ответ... напишите!


FAskerQ   (2007-01-14 20:54:00) [3]


> Garacio ©   (14.01.07 17:32) [9]
> Но что, если во второй колонке до этого уже было какое-то
> значение?


А что мешает проверить что будет ?


Garacio   (2007-01-14 17:32:00) [4]

Вот как сработало:
with ListView1.Items[g] do begin
         SubItems.Add('');
         SubItems.Add('Demo');

Но что, если во второй колонке до этого уже было какое-то значение?


Garacio   (2007-01-14 17:08:00) [5]

Объясню:
ListView
____________________________________
название файла | тип файла | статус     |
-----------------------------------------
121243.dll         |системный | удалён     |
453253.dll         |скрытый    | удалён     |
1dawd332.dll     |                | удалён     | <- вот для чего!
142342343.dll    |системный | удалён     |
12342443.dll      |системный | удалён     |
........
Смысл работы моей программы тот-же! При запуске я заполняю 1 и 2-й стобцы, нажимаю кнопку "Выполнить" и все файлы в папке удаляются, соответственно в 3-ий я помещаю отчёт "удалён"

Ну это ладно, можно ещё какое-нибудь слово, вроде "обычный" придумать и заполнить пустые, но остаётся вопрос: почему программа болезненно реагирует на замену строчки ListView1.Items[g].SubItems.add('Ок');, строчкой: ListView1.Items[g].SubItems.Strings[1] := 'Ок';или ListView1.Items[g].SubItems.Strings[0] := 'Ок';


FAskerQ   (2007-01-14 16:39:00) [6]

или так

with ListView1.Items.Add do begin
   Caption:= '0';
   SubItems.Add('');
   SubItems.Add('Ok');
 end;
CODE>


FAskerQ   (2007-01-14 16:37:00) [7]


> Garacio ©   (14.01.07 16:15) [5]
> Народ!, ну что-же не так?


Нахрена в третий столбец добавлять пукт а во второй нет ? добавляйте во второй а третий нетрогайте


Garacio   (2007-01-14 16:15:00) [8]

Народ!, ну что-же не так?
Может как-нибудь columns[2] надо вписать, чтобы в третий столбец (колонку) данные вписать?


Kostafey   (2007-01-14 15:34:00) [9]

> Это не оказало никакого эффекта!

По-моему Item - просто свойство по умолчанию ?


Garacio   (2007-01-14 15:27:00) [10]

Поменял: ListView1.Items[g].SubItems.Strings[1] := 'Ок';
на: ListView1.Items.Item[g].SubItems.Strings[1] := 'Ок';
Это не оказало никакого эффекта!


Garacio   (2007-01-14 13:56:00) [11]

А как же тогда добавить значение в третий столбец, не добавляя во второй?


kaZaNoVa   (2007-01-14 13:55:00) [12]

ListView1.Items[g].SubItems.add('Ок');


Наверх

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