Главная страница
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.031 c
7-98915
uno crezo
2003-08-20 07:27
2003.10.30
регистр


3-98463
inspirion
2003-10-10 09:30
2003.10.30
Помогите советом!


4-98921
SH
2003-08-26 17:35
2003.10.30
Есть ли в лотке CDROM компакт-диск?


14-98820
TY99
2003-10-12 11:19
2003.10.30
Поддержка DirectDraw...


14-98813
net
2003-10-12 18:32
2003.10.30
object delphi