Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1148739351
T54
2006-05-27 18:15
2006.07.09
Работа руссифицированных программ у буржуев


3-1147349427
Viconia
2006-05-11 16:10
2006.07.09
Query выдает ошибку invalid field name


2-1150112690
Dr. Genius
2006-06-12 15:44
2006.07.09
Как сделать активным окно некоего приложения


15-1149509503
depo
2006-06-05 16:11
2006.07.09
строки


1-1148460715
IGray
2006-05-24 12:51
2006.07.09
Хочу знать действия пользователя до глюка





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