Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Вниз
Как передать в класс рекорд? Найти похожие ветки
← →
Просьба (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c