Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

Копирование колекций.Ошибка при assign.   Найти похожие ветки 

 
shine   (2004-08-05 03:02) [0]

Надо скопировать содержимое одной колекции в другую.
Делаю так:  ListItemArraySelectDlg.TmpControlList.assign(ListItemArraySelectDlg.Layout.ControlList);
где
TmpControlList:TControlList;
 ...
 TCustomLayout = class(TControl)
 private
   FControlList: TControlList;
   ...
   public
   procedure SetCL(AControlList:TControlList);
   ...
   published
   property ControlList: TControlList read FControlList write SetCl;
   ...
   end;
 TControlList = class(TOwnedCollection)
 ...
 public
 property Items[Index: Integer]: TLayoutItem read GetItem write
 SetItem; default;
 ...
 end;
 TLayoutItem = class(TCollectionItem);

В общем тип у них одинаковый.Если обе коллекции не содержат элементов, то все нормально.(в смысле ошибки не возникает)
Если одна из коллекций не пустая, то выдает ошибку:
Cannot assign a TLayoutItem to a TLayoutItem.
Пробовал делать присваивание:Layout.ControlList:=TmpControlList
потом проверяю Layout.ControlList.Count - выдает, что количество ненулевое,однако в object inspector новых элементов коллекции не добавляется.

Как же все-таки скопировать содержимое одной коллеции в другую?

Заранее спасибо.

P.S. Если кто-то интересуется, зачем мне все это, то я делаю редактор компонента и стандартный редактор колекций меня не очень устраивает.


 
Юрий Зотов ©   (2004-08-05 08:35) [1]

> Cannot assign a TLayoutItem to a TLayoutItem.

Перекройте AssignTo у TLayoutItem и там напишите присвоение Target свойств Self.

А вообще-то, надо бы видеть код элемента коллекции, самой коллекции и компонента-контейнера.


 
Digitman ©   (2004-08-05 08:44) [2]

в классе TLayoutItem переопредели виртуальный метод AssignTo()
тем самым ты "научишь" объект этого класса копировать себя в другой объект того же класса


 
shine   (2004-08-05 11:56) [3]

Спасибо, сейчас попробую.


 
shine   (2004-08-05 12:17) [4]

Огромное Спасибо!!! Получилось.Работает.



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

Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1091681351
Vasya.ru
2004-08-05 08:49
2004.08.22
как убрать программу с панели задач?


14-1091561632
децл
2004-08-03 23:33
2004.08.22
помогите новичку


3-1090602268
Yaral
2004-07-23 21:04
2004.08.22
*.doc в blob


1-1091597819
oleg_SYS
2004-08-04 09:36
2004.08.22
Извлечение текста из PDF-файла


3-1090997226
unick111
2004-07-28 10:47
2004.08.22
Горизонтальный DBGrid





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