Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Записи   Найти похожие ветки 

 
Anton   (2004-06-01 19:18) [0]

Вопрос: Есть такой кусочек кода  
.............
A = packed record
   B: Integer;
   C: Integer;
 end;
.............
var
 D: Integer;
...........
begin
 D := 10;
 A(D).B := 20;// ошибка в несоответствии типов
 A(D).C := 30;
end;

Как сделать так, что бы ошибка исчезла?


 
Тимохов ©   (2004-06-01 19:20) [1]


> Anton   (01.06.04 19:18)  

а надо ли...


 
Тимохов ©   (2004-06-01 19:20) [2]

Что вы вообще хотите сделать?
А если за d будет другая переменная.
Вы же таким макаром ее попортите.


 
Palladin ©   (2004-06-01 19:23) [3]

Конечно будет несоответствие типов. Ты пытаешься 4 байта привести к 8 байтам, что за чушь?


 
Anatoly Podgoretsky ©   (2004-06-01 19:24) [4]

Разберись, что такое массивы в языках программирования.


 
Тимохов ©   (2004-06-01 19:26) [5]


> Palladin ©   (01.06.04 19:23) [3]

чушь полная.
но все интересно понять, что он воолще хочет.
может ему это и надо - чтобы уметь обращаться к 4 байтам за переменной d.
Не говорит же :))  Молчит ...


 
Anton   (2004-06-01 19:29) [6]

Отвечаю. Взял у знакомого его код. Так у него в конце такой подпрограмки в переменной D число 60. Как так получается я и пытаюсь понять?


 
default ©   (2004-06-01 19:32) [7]

компилятор хитрец
так катит(естес-но)
var
D: Int64;
...
A(D).B := 20;
а так нет
var
D: Integer;
...
A(Int64(D)).B := 20;
то есть не забивает на тип D при приведении


 
Palladin ©   (2004-06-01 19:33) [8]

Ты хочешь сказать это его код в точности?


 
Тимохов ©   (2004-06-01 19:34) [9]


> Anton   (01.06.04 19:29) [6]
> Отвечаю. Взял у знакомого его код. Так у него в конце такой
> подпрограмки в переменной D число 60. Как так получается
> я и пытаюсь понять?

тогда вас понять сложно.
вы же сами сказали, что код не компилится?


 
default ©   (2004-06-01 19:36) [10]

вот так его накалывай
A(Pointer(@D)^).B := 20;


 
Anton   (2004-06-01 19:37) [11]

Тимохов ©   (01.06.04 19:34) [9]
>тогда вас понять сложно.
>вы же сами сказали, что код не компилится?

сильно упрощенный код



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

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

Наверх




Память: 0.49 MB
Время: 0.08 c
3-1085332333
VflowerW
2004-05-23 21:12
2004.06.13
Rave Reports в приложениях


1-1085776793
Vist
2004-05-29 00:39
2004.06.13
Помогите с программой для сдачи зачёта


14-1085415396
xman
2004-05-24 20:16
2004.06.13
Алгоритм или исходник


3-1084988072
Dmitry Vyacheslavovich
2004-05-19 21:34
2004.06.13
Конфигурация InstallShield для работы с DB


3-1085392201
Known Unknown
2004-05-24 13:50
2004.06.13
Исключения в UDF