Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.24;
Скачать: CL | DM;

Вниз

Прозьба помогите разобратся где я сделал ошибку с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
1-75629
dima2002
2002-01-08 20:57
2002.01.24
Мастера!!! подскажите !!!


3-75517
ДЛЛ
2001-12-21 12:27
2002.01.24
Как программно создавать пользователя и давать ему гранты


1-75553
Анатолий
2002-01-06 06:21
2002.01.24
Литература по отчётам


3-75463
night
2001-12-18 11:22
2002.01.24
Как сделать плавную проктрутку в DBGrid???


3-75534
Hawk2
2001-12-21 12:39
2002.01.24
Индескация с помощью SQL-запросов.