Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-98731
Jiura23cfdf
2003-10-20 19:49
2003.10.30
Еще раз: как сохранить данные из RichEdit1 в RichEdit2?


14-98800
Smertnik
2003-10-12 19:08
2003.10.30
Помогите плиз с библиотеками


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


14-98849
Владислав
2003-10-11 14:40
2003.10.30
Как круто! Сразу отрезали :-)


1-98661
Vadim S
2003-10-21 15:45
2003.10.30
Как передать тип?




   Наверх