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

Вниз

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

 
Vadim S   (2003-10-21 15:45) [0]

Есть

TPrognoz = record
RAZMER,
ROST : String;
KOLVO : dword;
PERS,
PROG : real;
end;

procedure Add(Pr:TPrognoz);

Как бы передать данные типа

Prognoz.Add( TPrognoz("","",0,0,0) );

без привлечения переменной типа TPrognoz?


 
Skier ©   (2003-10-21 15:47) [1]

Смысл ?


 
Anatoly Podgoretsky ©   (2003-10-21 15:47) [2]

Написать метод класса


 
Reindeer Moss Eater ©   (2003-10-21 15:48) [3]

А с помощью переменной Pointer разрешается?


 
jack128 ©   (2003-10-21 15:54) [4]

напишу функцию
function Prognoz(
RAZMER,
ROST : String;
KOLVO : dword;
PERS,
PROG : real) : Tprognoz;


 
Малиновский Владимир   (2003-10-21 15:56) [5]

Каждый раз разный тип передавать?

Ну, например, так:

type
TBasePrognoz = class(TObject)
end;

TPrognoses = class of TBasePrognoz;

TPrognoz1 = Class (TBasePrognoz)
field1,
field2 : integer;
end;

TPrognoz2 = Class (TBasePrognoz)
field1,
field2,
field3 : string;
end;

procedure TForm1.Add(Prognoz: TBasePrognoz; params: array of Variant);
begin
if Prognoz is TPrognoz1 then begin
TPrognoz1(Prognoz).field1 := Params[0];
TPrognoz1(Prognoz).field2 := Params[0];
end else
if Prognoz is TPrognoz1 then begin
TPrognoz1(Prognoz).field1 := Params[0];
TPrognoz1(Prognoz).field2 := Params[0];
TPrognoz1(Prognoz).field3 := Params[0];
end;
end;


 
Anatoly Podgoretsky ©   (2003-10-21 15:56) [6]

Это отход от постановки
Должжо быть Prognoz.Add


 
Reindeer Moss Eater ©   (2003-10-21 15:58) [7]

вот без TPrognoz:
procedure TPrognoz.Add(const Data);
begin
end;


 
Малиновский Владимир   (2003-10-21 15:58) [8]

Извините, недоделал:

procedure TForm1.Add(Prognoz: TBasePrognoz; params: array of Variant);
begin
if Prognoz is TPrognoz1 then begin
TPrognoz1(Prognoz).field1 := Params[0];
TPrognoz1(Prognoz).field2 := Params[0];
end else
if Prognoz is TPrognoz1 then begin
TPrognoz1(Prognoz).field1 := Params[0];
TPrognoz2(Prognoz).field2 := Params[0];
TPrognoz2(Prognoz).field3 := Params[0];
end;
end;

А вызываться будет примерно так:

procedure TForm1.Button1Click(Sender: TObject);
var pr1 : TPrognoz1;
begin
pr1 := TPrognoz1.Create;
Add(pr1, [1,2]);
end;


 
Малиновский Владимир   (2003-10-21 15:59) [9]

Какая фигня!



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

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

Наверх




Память: 0.48 MB
Время: 0.035 c
3-98473
Лана Розанова
2003-10-09 22:27
2003.10.30
Фильтрация


1-98691
denis24
2003-10-21 12:11
2003.10.30
вызов внешнего приложения


14-98815
Zhouck
2003-10-12 13:56
2003.10.30
Как вам пара Россия - Испания


1-98717
Vadim S
2003-10-20 13:38
2003.10.30
Как не мешать остальным?


7-98909
Jakommo
2003-08-20 10:10
2003.10.30
Ошибка 1053 при запуске сервиса.