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

Вниз

TList   Найти похожие ветки 

 
-=RtV=-   (2007-06-06 08:43) [0]

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


 
MBo ©   (2007-06-06 08:46) [1]

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


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

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


 
MBo ©   (2007-06-06 08:53) [3]

Невнятно.


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

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


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


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


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


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


Кого "его" ?


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


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


 
MBo ©   (2007-06-06 09:06) [6]

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

TListItem.Data


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

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 меняю строки местами,
удаляю, добавляю новые

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


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

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


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


> -=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.AddObject(ExtractSerialNumber(SymbolicName), Inst);
end;


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

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


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

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-07 08:04) [12]

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

Сегодня попробовал:
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;


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

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

подкинет?

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


 
ЮЮ ©   (2007-06-07 10:55) [14]

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

см. Help по TCustomListView.OwnerData


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


> меняю местами строки 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



Страницы: 1 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1180517766
JanMihail
2007-05-30 13:36
2007.07.01
Мастера дельпхи


2-1180954133
ыавпып
2007-06-04 14:48
2007.07.01
удалить и создать БД


2-1181379657
newones
2007-06-09 13:00
2007.07.01
Вопрос про проекцию


15-1180611853
P
2007-05-31 15:44
2007.07.01
Можно ли процессу изменить права доступа во время выполнения


15-1180885888
VID
2007-06-03 19:51
2007.07.01
Ребята, подскажите стоит ли СУБД Cache того, что бы ее изучать ?