Форум: "Основная";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];
ВнизПрозьба помогите разобратся где я сделал ошибку с ListView Найти похожие ветки
← →
Dmitriy_R (2002-01-06 10:55) [0]Почему не работает вот этот пример?
Программа запускается и доходит до этого момента а там вся система зависает намертво.
procedure TFormList.BitBtnAddClick(Sender: TObject);
begin
ListView.Items.Add.Caption := EditName.Text;
ListView.Items[0].SubItems.Add(EditName.Text);
ListView.Items[1].SubItems.Add(EditLine.Text);
ListView.Items[2].SubItems.Add(EditFile.Text);
ListView.Items[3].SubItems.Add(MemoDesciption.Text);
end;
← →
Yuri-7 (2002-01-06 12:15) [1]Ты неправильно все делаешь. Делай например, так:
procedure TFormList.BitBtnAddClick(Sender: TObject);
var item: TListItem;
begin
item:=ListView.Items.Add;
Item.Caption := EditName.Text;
Item.SubItems.Add(EditName.Text);
Item.SubItems.Add(EditLine.Text);
Item.SubItems.Add(EditFile.Text);
Item.SubItems.Add(MemoDesciption.Text);
end;
Не забудь предварительно назначить нужное количество колонок.
← →
Snake (2002-01-06 12:31) [2]Ну разумеется. В твоем коде добавлен только 1 итем - нулевой. А ты пытаешься добавлять сабитемы к други...
можно написать так:
ListView.Items.Add.Caption := EditName.Text;
ListView.Items[0].SubItems.Add(EditName.Text);
ListView.Items[0].SubItems.Add(EditLine.Text);
ListView.Items[0].SubItems.Add(EditFile.Text);
ListView.Items[0].SubItems.Add(MemoDesciption.Text);
Или же в начале добавить все остальные итемы, что-то вроде:
ListView.Items.Add.Caption := EditName.Text;
ListView.Items.Add.Caption := EditName.Text;
ListView.Items.Add.Caption := EditName.Text;
ListView.Items.Add.Caption := EditName.Text;
а потом все остальное
ListView.Items[0].SubItems.Add(EditName.Text);
ListView.Items[1].SubItems.Add(EditLine.Text);
ListView.Items[2].SubItems.Add(EditFile.Text);
ListView.Items[3].SubItems.Add(MemoDesciption.Text);
← →
Dmitriy_R (2002-01-06 13:01) [3]Большо спасибо всем за помощь, а особенно Yuri-7 это то что было надо. Все заработало.
И вот еще может и здесь поможете разобратся в чем беда?
procedure TFormList.ListViewChange(Sender: TObject;
Item: TListItem; Change: TItemChange);
begin
If Change = ctState then Exit;
EditName.Text := Item.SubItems.Strings[0];
EditLine.Text := Item.SubItems.Strings[1];
EditFile.Text := Item.SubItems.Strings[2];
MemoDesciption.Text := Item.SubItems.Strings[3];
end;
← →
Yuri-7 (2002-01-06 14:58) [4]Не нужно Strings, пиши:
EditName.Text := Item.SubItems[0];
← →
Yuri-7 (2002-01-06 15:01) [5]Уточняю предыдущий ответ:
Для получения данных из первой колонки использовать item.caption, а из остальных - item.subitems[0]...[n]
← →
Dmitriy_R (2002-01-06 18:49) [6]Спасибо большое там я уже разобрался, запустил и с Strings и без нее. Ну может кто еще на один последний вопрос поможет? Задолбал меня этот лисвиев но он мне нужен.
Может и тут великий мастер подскажет где грабли?
function TFormList.SaveList(FileName: AnsiString):integer;
Var SubItems: TStrings;
I: integer;
begin
Memo.Lines.Clear();
For I := 0 to ListView.Items.Count do
begin
SubItems := ListView.Items.Item[I].SubItems;
Memo.Lines.Add(SubItems.Strings[1]);
Memo.Lines.Add(SubItems.Strings[2]);
Memo.Lines.Add(SubItems.Strings[3]);
end;
Далее идет сохранение файла...
end;
Да и еще как отловить ошибку при записи/чтении
Memo.Lines.SaveToFile(FileName);
← →
Dmitriy_R (2002-01-07 10:11) [7]Ну неужели никто не знает как брать данные из листвиев и класть их куда надо.
← →
Patap (2002-01-08 12:02) [8]Я бы сделал так:
Var
I: integer;
begin
Memo.Lines.Clear;
with ListView.Items do
For I := 0 to Count - 1 do
begin
with Item[I] do
begin
Memo.Lines.Add(SubItems[0]);
Memo.Lines.Add(SubItems[1]);
Memo.Lines.Add(SubItems[2]);
...
end;
end;
Далее идет сохранение файла...
end;
Команды
Memo1.Lines.SaveToFile("C:\!!!!.txt");
Memo1.Lines.LoadFromFile("C:\!!!!.txt");
работают как танк.
← →
Patap (2002-01-08 12:03) [9]Я бы сделал так:
Var
I: integer;
begin
Memo.Lines.Clear;
with ListView.Items do
For I := 0 to Count - 1 do
begin
with Item[I] do
begin
Memo.Lines.Add(SubItems[0]);
Memo.Lines.Add(SubItems[1]);
Memo.Lines.Add(SubItems[2]);
...
end;
end;
Далее идет сохранение файла...
end;
Команды
Memo1.Lines.SaveToFile("C:\!!!!.txt");
Memo1.Lines.LoadFromFile("C:\!!!!.txt");
работают как танк.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c