Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.012 c
6-98759
Неумеха
2003-09-05 14:28
2003.10.30
Web-страницы через ShellExecute


14-98797
Сатир
2003-10-10 14:41
2003.10.30
Профессор Башкирского университета опроверг основы физики и химии


14-98784
Skier
2003-10-10 10:22
2003.10.30
Два спортивных вопроса на выходные. :)


3-98432
Bezpal
2003-10-02 09:03
2003.10.30
Как связать delphi с sql server 2000?


7-98906
VID
2003-08-16 23:10
2003.10.30
---|Ветка была без названия|---





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