Главная страница
    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.58 MB
Время: 0.031 c
3-75537
EternalWonderer
2001-12-19 12:26
2002.01.24
CREATE DOMAIN BOOL AS CHAR(1) DEFAULT N CHECK (VALUE IN ( Y , N ));


7-75696
Алексей Саньков
2001-10-05 21:55
2002.01.24
Как сделать в Винде 256 цветов 640х480 на видюхе Acumos


14-75675
Wonder
2001-11-30 17:03
2002.01.24
:^)


14-75681
VID
2001-11-25 22:41
2002.01.24
У кого есть WIN XP? Опишите pls...


3-75481
Blind
2001-12-20 10:35
2002.01.24
Не работает многопользовательский режим доступа. Help me





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский