Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизПриведение типов. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c