Вниз
Скачать: 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.017 c
2-1185343359
ZZZZ
2007-07-25 10:02
2007.08.19
Защита программы от дебагеров


15-1185115628
Rubagl
2007-07-22 18:47
2007.08.19
Книга "Delphi. Готовые алгоритмы. " Нужны исходники.


15-1185082566
dava
2007-07-22 09:36
2007.08.19
Редоктирование реестра запрешено администратором системы.


15-1184588170
Ricks
2007-07-16 16:16
2007.08.19
Творческие идеи


15-1185006460
Bratyk
2007-07-21 12:27
2007.08.19
Как сохранить проект в exe - файл




   Наверх