Главная страница
    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.011 c
1-98552
Opera
2003-10-20 02:36
2003.10.30
Rx


14-98867
Мазут Береговой
2003-10-10 10:06
2003.10.30
Братцы! Оказывается лампочку изобрел совсем не Ильич!


1-98719
LINK_‡)
2003-10-09 07:16
2003.10.30
ListBox=>Items=>Random=>?


3-98485
Bovdur
2003-10-09 17:17
2003.10.30
Помогите плиз новичку.


14-98825
Marser
2003-10-07 00:49
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский