Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.003 c
7-75706
Ghost666
2001-10-10 23:03
2002.01.24
Как поменять резкость(чувствительность) крысы в Win 9x


14-75658
Гриф
2001-11-28 11:33
2002.01.24
Ищу алгоритм.


4-75711
AlexandrH
2001-11-21 06:52
2002.01.24
Как перехватить нажатие кнопки Reset и кнопки Power


14-75685
lel
2001-11-28 10:54
2002.01.24
Никто не знает ресурсов, где выложены, спрайты, текстуры к разным и грам и не только????


3-75524
Dim
2001-12-21 14:34
2002.01.24
Первый раз такое вижу. Что это такое?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский