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

Вниз

Как передать в класс рекорд?   Найти похожие ветки 

 
Просьба   (2006-06-16 01:34) [0]

var
 MyData1 : TMyData; // рекорд

type
 MyClass = class
   ..
 end;


Мне надо в классе работать с внешними MyData1. Так, чтобы не копировать MyData1 в класс, а именно изменять их из класса. Я пробовал передавать каждый раз в класс MyData1 в качестве var параметра функции. Но делать это в каждой функции не очень удобно. В общем как это лучше оформить?


 
Джо ©   (2006-06-16 01:47) [1]

> В общем как это лучше оформить?

Свойством.


 
Loginov Dmitry ©   (2006-06-16 10:18) [2]

Оформляешь поле класса как

private
 PMyData: ^TMyData

И заполняешь его с помощью какой-либо процедуры. А дальше работай с ним.


 
Просьба   (2006-06-17 01:42) [3]


> Loginov Dmitry ©   (16.06.06 10:18) [2]
>
> Оформляешь поле класса как
>
> private
>  PMyData: ^TMyData
>
> И заполняешь его с помощью какой-либо процедуры. А дальше
> работай с ним.

А как правильно заполнить с помощью процедуры?
И ведь мне нужно TMyData, а не PMyData.


 
Defunct ©   (2006-06-17 08:15) [4]

> И ведь мне нужно TMyData, а не PMyData.

Какая разница?

> А как правильно заполнить с помощью процедуры?

Тупо:

Rec.Field1 := ..;
Rec.Field2 := ..;

и т.д.


 
Loginov Dmitry ©   (2006-06-17 08:33) [5]

Просьба   (17.06.06 1:42) [3]
А как правильно заполнить с помощью процедуры?
И ведь мне нужно TMyData, а не PMyData.


// Загрузка
TMyObj.LoadRecord(const Rec: TMyData);
begin
 PMyData := @Rec;
end;

// Работа с ним
TMyObj.WorkWithRec;
begin
 PMyData^.Field1 := ...;
 PMyData^.Field2 := ...;
end;


Вроде так, если я конечно с загрузкой не перемедрил :)


 
Loginov Dmitry ©   (2006-06-17 08:33) [6]

перемУдрил


 
Defunct ©   (2006-06-17 08:43) [7]

действительно перемудрил

LoadRecord( var rec : TRecord);
begin
 MyData := @rec;
end;

procedure WorkWithRec;
begin
 MyData.Field1 := ...
 MyData.Field2 := ...
end;


 
Loginov Dmitry ©   (2006-06-17 10:16) [8]

Что Var, что Const - одна хрень :)


 
Defunct ©   (2006-06-17 10:59) [9]

Loginov Dmitry ©   (17.06.06 10:16) [8]

и шляпки ^ лишнии ;)
Меньше писать :)



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
15-1150103970
HeadHunter
2006-06-12 13:19
2006.07.09
Qulix Systems (БелХард) приглашает на работу программистов


2-1150989372
Urvin
2006-06-22 19:16
2006.07.09
List View - не добавляются элементы


2-1150676695
lamerazoid
2006-06-19 04:24
2006.07.09
Выполнение произвольного кода


15-1149852050
Slava812
2006-06-09 15:20
2006.07.09
Переводчик страниц


15-1149586462
pavel_guzhanov
2006-06-06 13:34
2006.07.09
Возникла необходимость ознакомиться с Oracle