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