Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c