Вниз
Скачать: CL | DM;

Приведение типов.   Найти похожие ветки 

 
ququq   (2007-07-22 20:29) [0]

Заинтересовал вопрос: можно ли в таком случае передать в процедуру _x значение переменной Integer и как это сделать?

procedure TForm1.Button1Click(Sender: TObject);
type
 PxInteger = ^xInteger;
 xInteger = type Integer;
var
 xInt: xInteger;
 Int: Integer;

 procedure _x(Val: PxInteger);
 begin
   ShowMessage(IntToStr(Val^));
 end;

begin
 xInt := 1;
 Int := 2;
 _x(Int);
end;


 
Однокамушкин   (2007-07-22 21:15) [1]

_x(PxInteger(@Int)^);


 
begin...end ©   (2007-07-22 21:18) [2]

Можно, конечно. Используя то самое приведение типов: _x(PxInteger(Int)).
Только ведь внутри _x переданный параметр нужно будет рассматривать как указатель...


 
begin...end ©   (2007-07-22 21:20) [3]

Мда. Похоже, мой телепатор своё уже отслужил...


 
ququq   (2007-07-22 21:47) [4]


> Можно, конечно. Используя то самое приведение типов: _x(PxInteger(Int)).
> Только ведь внутри _x переданный параметр нужно будет рассматривать
> как указатель...


Да, запутался я что-то. Сделал приведением типов. Но теперь не пойму, почему, что бы получить уже значение переданное в _x, нужно приводить к Integer, ведь я передаю PxInteger. Мне казалось, что должно было быть ...IntToStr(Integer(Val^)..

?

 procedure _x(Val: PxInteger);
 begin
   ShowMessage(IntToStr(Integer(Val)));
 end;

begin
 xInt := 1;
 Int := 2;
 _x(PxInteger(Int));
end;


 
Virgo_Style ©   (2007-07-22 22:15) [5]

ququq   (22.07.07 21:47) [4]
почему, что бы получить уже значение переданное в _x, нужно приводить к Integer, ведь я передаю PxInteger. Мне казалось, что должно было быть ...IntToStr(Integer(Val^)..


Потому что ты передаешь Integer, приведенный к Pointer, а не указатель на Integer, как, наверное, следовало бы по логике функции



Страницы: 1 вся ветка

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



Память: 0.46 MB
Время: 0.014 c
15-1185173044
Забыл пароль
2007-07-23 10:44
2007.08.19
Статья на рбк. Сможет кто-нить объяснить?


1-1181138897
Tonich
2007-06-06 18:08
2007.08.19
Delphi и С++ Builder 5


15-1184924724
Ega23
2007-07-20 13:45
2007.08.19
Рыдал... :)))))


2-1185214405
vasIZmax
2007-07-23 22:13
2007.08.19
Случайная запись из БД


11-1168179075
Trible
2007-01-07 17:11
2007.08.19
поменять caption ы всех пунктов Меню




   Наверх