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

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

Как скопировать объект


Страницы:   1 2

ciborg ©   (2008-06-19 15:08:00) 

Как полностью скопировать экземпляр объекта, а не только ссылку на него?


Palladin   (2008-06-19 19:55:00) [1]


> Игорь Шевченко ©   (19.06.08 19:52) [27]

читал, но не проникся :)


Игорь Шевченко   (2008-06-19 19:52:00) [2]


> чему именно тебе повозмущатся легче? что нет клонирования?
>  а ты дай определение - что есть клонирование.


а ты .Net почитай - их там аж два, копирования, deep и не deep :)


Palladin   (2008-06-19 19:06:00) [3]


> ciborg   (19.06.08 19:04) [25]

это называется копирование ссылки, а не клонирование


ciborg   (2008-06-19 19:04:00) [4]


> чему именно тебе повозмущатся легче? что нет клонирования?
>  а ты дай определение - что есть клонирование.


Клонирование это полное копирование объекта. Допустим у нас есть объект, мы создали его копию. Если теперь если мы любые действия будем выполнять с любым из этих объектов, то результат должен получаться одинаковый.


Palladin   (2008-06-19 18:52:00) [5]


> мне легче повозмущаться

чему именно тебе повозмущатся легче? что нет клонирования? а ты дай определение - что есть клонирование.

пример 1

Type
TObject1=Class
 Public
  n1:Integer;
  n2:Integer;
End;


тут все просто и понятно, взяли и присвоили поля

пример 2
Type
TObject2=Class
 Public
  List:TObjectList; // содержащий экземпляры TObject1
End;

тут чего делаем при клонировании? копируем ссылку на экземпляр List или сам List тоже клонируем?

пример 3
Type
TObject3=Class(TObject2)
 Public
  SubObjects2:TStringList; // строковые обозначения в Objects у которых объекты TObject1
End;

тут чего делаем при клонировании? что именно и как именно клонируем?

пример 4
Type
 TObject4=Class(TObject3)
  Private
    m_theParent:TObject4;
  Public
   Constructor Create(p_theParent:TObject4);
   Property Parent:TObject4 Read m_theParent;
End;

а тут чего делаем при клонировании? что именно и как именно клонируем?

каким попом разработчики компилятора должны закладывать возможность клонирования?

повозмущаться он решил...


ciborg   (2008-06-19 17:15:00) [6]

Удалено модератором


Ega23   (2008-06-19 17:14:00) [7]

Удалено модератором


ciborg   (2008-06-19 17:06:00) [8]

Удалено модератором


Ega23   (2008-06-19 16:57:00) [9]


> Это что такое?


Это когда ты только подумал, а у тебя уже кросс-платформенная система готова. С инсталлятором, многонациональной поддержкой и работает под любой СУБД. И даже комп включать не надо.


Palladin   (2008-06-19 16:44:00) [10]

вообще говоря, клонирование объекта задача далеко не общая... потому к каждому случаю нужен свой подход...


ciborg   (2008-06-19 16:41:00) [11]


> Тебе нужен компилятор пятого поколения.

Это что такое?


Anatoly Podgoretsky   (2008-06-19 16:40:00) [12]

> ciborg  (19.06.2008 16:11:12)  [12]

Тебе нужен компилятор пятого поколения.


ciborg   (2008-06-19 16:38:00) [13]


> Пиши на Lisp, в чём проблема-то?


Не... мне легче повозмущаться и продолжить писать на делфи.


Palladin   (2008-06-19 16:37:00) [14]


> Тын-Дын ©   (19.06.08 15:31) [3]

приватные в общем случае нет конечно, аналог метода Assign свой писать нужно... я, обычно, если модель подразумевает клонирование объектов, создаю метод-функцию Clone... и конечно можно отнаследоваться от TPersistent, но иногда это стрельба из пушки по мухам :)...


Ega23   (2008-06-19 16:29:00) [15]


> По моемому это недоработка ObjectPascal'я


Пиши на Lisp, в чём проблема-то?


stas   (2008-06-19 16:15:00) [16]

>DrPass ©   (19.06.08 16:06) [11]
не знал.


ciborg   (2008-06-19 16:11:00) [17]


> "Безусловно, Малыш!"  (с)


По моемому это недоработка ObjectPascal'я


DrPass   (2008-06-19 16:06:00) [18]


> Тут копируется всё - координаты, размеры даже имена

Только published-свойства


stas   (2008-06-19 16:02:00) [19]

Var S:TMemoryStream;
begin
S:=TMemoryStream.Create;
S.WriteComponent(memo1);
memo1.Free;
S.Position:=0;
S.ReadComponent(Memo2);
end;
Тут копируется всё - координаты, размеры даже имена


Ega23   (2008-06-19 16:02:00) [20]


> Я думал все автоматически делается.


Ага, и "кампанент" TOSWindows2000 тоже есть...


Страницы:   1 2

Наверх

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