Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: 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 вся ветка

Текущий архив: 2007.08.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1181499519
имя
2007-06-10 22:18
2007.08.19
RichEdit глюк


2-1185346143
AZIZE
2007-07-25 10:49
2007.08.19
ODBC


5-1160122325
BadTester
2006-10-06 12:12
2007.08.19
Имеется задача pеализовать выдвижную панель на экpане


2-1185023525
NewZ
2007-07-21 17:12
2007.08.19
Как определить что над одним объектом находится другой?


9-1157985874
Kobik.
2006-09-11 18:44
2007.08.19
Орех какой-то :)