powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / уничтожение переменной переданной в функцию
6 сообщений из 6, страница 1 из 1
уничтожение переменной переданной в функцию
    #39476359
dim---76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть переменная Person:TPerson, вызываю функцию SetPerson(Person) которая объявлена
Код: pascal
1.
function SetPerson(Klient:TPerson) : string;

Функция сгенерирована автоматом в datasnap и в ней есть:
Код: pascal
1.
2.
if FInstanceOwner then
        Klient.Free


после чего переменная Person:TPerson в главном мобуле уничтожается. Почему так происходит? пробовал присвоить ее другой переменной но она все равно уничтожается
...
Рейтинг: 0 / 0
уничтожение переменной переданной в функцию
    #39476393
misha mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim---76, так уж устроена объектная модель Delphi (и абсолютного большинства других языков). Экземпляр класса -- это всего лишь указатель на некую структуру в памяти. Сколько не копируй такой указатель в разные переменные, все они будут указывать на одно и то же. Поэтому если хоть одному из них сделать Free, то все остальные тоже вмиг протухнут.
...
Рейтинг: 0 / 0
уничтожение переменной переданной в функцию
    #39476500
dim---76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а разве в теле процедуры переменные не изолированные?
и как все же сделать копию переменной?
...
Рейтинг: 0 / 0
уничтожение переменной переданной в функцию
    #39476514
ain-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim---76,

Код: pascal
1.
2.
3.
4.
5.
6.
var K2: TPerson;
...

  K2 := TPeson.Create;
  K2.Assign(Klient);
  ...


Assign нужно написать самому.
...
Рейтинг: 0 / 0
уничтожение переменной переданной в функцию
    #39477040
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim---76,

переменная переменно рознь. так же у параметров есть модификаторы, которые влияют на изолированность.
...
Рейтинг: 0 / 0
уничтожение переменной переданной в функцию
    #39477369
dim---76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ain-2,

спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / уничтожение переменной переданной в функцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]