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

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

TList


-=RtV=- ©   (2007-06-06 08:43:00) 

Добавляю строку в паре с объектом:
function AddObject(const S: string; AObject: TObject): Integer;
- Как поменять местами две строки TList? Или, лучше, подскажите как сделать жёсткую привязку строки TList к строке ListView? (TList[i] => ListView[i])


Сергей М.   (2007-06-07 16:11:00) [1]


> меняю местами строки ListView


Ответ на вопрос прямо перед носом, в стандартной справке:

TListItem.Assign method

Copies the properties of another list item.

Delphi syntax:

procedure Assign(Source: TPersistent); override;

It the Source parameter is a TListItem object, Assign copies its Caption, Data, ImageIndex, OverlayIndex, StateIndex, and SubItems properties


ЮЮ   (2007-06-07 10:55:00) [2]

Если тебе нужно пристроить матрицу объектов в TListVew, не проще хранить объекты в "матрице" и использовать TListVew в виртуальном режиме?

см. Help по TCustomListView.OwnerData


-=RtV=-   (2007-06-07 10:43:00) [3]

Мож. кто ссылочку на пример, где используется:
SubItems.AddObject(ExtractSerialNumber(SymbolicName), TObject(Inst));
и
???.Objects[???]

подкинет?

На мои попытки что-нибудь найти поисковики выдают только:
"Очистка памяти объекта в TListView"
но то, что нужно там нет!


-=RtV=-   (2007-06-07 08:04:00) [4]

Прошу прощения,
день вчера был напряжённый, не успел проверить!

Сегодня попробовал:
SubItems.AddObject(ExtractSerialNumber(SymbolicName), TObject(Inst));
Всё Super!!!

Пару маленьких вопросов ещё нужно задать:
- как теперь Inst вытащить из ListView?
???.Objects[ListView.ItemIndex]

И, в связи с появлением SubItems.AddObject(… , TObject(Inst)), нужно вносить какие-то изменения в код (меняю местами строки ListView):
procedure TFormMain.ToolButtonUpClick(Sender: TObject);
var ItemTemp: TListItem;
begin
if ListViewUse.ItemIndex>1
then begin
 with ListViewUse do begin
  ItemTemp:=TListItem.Create(Items);
  ItemTemp.Assign(Items[ListViewUse.ItemIndex]);
  Items[ListViewUse.ItemIndex].Assign(Items[1]);
  Items[1].Assign(ItemTemp);
  ItemTemp.free;
 end;
end;   //вверх
end;

procedure TFormMain.ToolButtonDownClick(Sender: TObject);
var ItemTemp: TListItem;
begin
if (ListViewUse.ItemIndex>0) and
    (ListViewUse.ItemIndex<>ListViewUse.Items.Count-1)
then begin
 with ListViewUse do begin
  ItemTemp:=TListItem.Create(Items);
  ItemTemp.Assign(Items[ListViewUse.ItemIndex]);
  Items[ListViewUse.ItemIndex].Assign(Items[ListViewUse.Items.Count-1]);
  Items[ListViewUse.Items.Count-1].Assign(ItemTemp);
  ItemTemp.free;
 end;
end;  //вниз
end;


Сергей М.   (2007-06-06 09:17:00) [5]

with ListView.Items.Add do begin
Caption := 'Column0';
//ассоциация элемента ListView-списка с объектом MyObject0
Data := MyObject0;
//ассоциация доп.колонок этого элемента с другими объектами
SubItems.AddObject('Column1', MyObject1);
SubItems.AddObject('Column2', MyObject2);
..
SubItems.AddObject('ColumnN', MyObjectN);
end;


-=RtV=-   (2007-06-06 09:14:00) [6]

Спасибо, Сергей!


Сергей М.   (2007-06-06 09:13:00) [7]


> -=RtV=-   (06.06.07 09:07) [7]


> MyTask.Items.AddObject


Это даже скомпилировано не будет.


> и нужно:
> with ListView.Items.Add do
> begin
>  Caption:=R;
>  SubItems.Add(ExtractSerialNumber(SymbolicName));
> end;
>


with ListView.Items.Add do begin
 Caption := R;
 SubItems.Add Object(ExtractSerialNumber(SymbolicName), Inst);
end;


-=RtV=-   (2007-06-06 09:11:00) [8]

Т.е.:
ListView.Items[x].Data := DataText;
где:
DataText --> TObject(Inst);


-=RtV=-   (2007-06-06 09:07:00) [9]

MyTask:=TList.Create;
MyTask.Items.AddObject(R + ' ' + ExtractSerialNumber(SymbolicName), TObject(Inst));

и нужно:
with ListView.Items.Add do
begin
 Caption:=R;
 SubItems.Add(ExtractSerialNumber(SymbolicName));
end;


В ListView меняю строки местами,
удаляю, добавляю новые

Вот и возник вопрос о жёсткой привязке


MBo   (2007-06-06 09:06:00) [10]

> одно значение класса TObject. К ListView его не привяжешь!

TListItem.Data


Сергей М.   (2007-06-06 09:02:00) [11]


> -=RtV=-   (06.06.07 08:58) [4]


Ничерта не понятно.


> К ListView его не привяжешь


Кого "его" ?


> каждой строке соответствует одно значение класса TObject


Строке какогосписка ?


-=RtV=-   (2007-06-06 08:58:00) [12]

Для отображения информации на экране использую ListView,
но проблема в том, что каждой строке соответствует одно значение класса TObject. К ListView его не привяжешь!
Вот и приходится ListView+TList


MBo   (2007-06-06 08:53:00) [13]

Невнятно.


-=RtV=-   (2007-06-06 08:48:00) [14]

Проблема с TObject
- куда-то девать надо!


MBo   (2007-06-06 08:46:00) [15]

ты точно о TList говоришь, или все-таки о TStringList?
обмен - метод Exchange


Наверх

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