Главная страница
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.044 c
1-1085776423
white
2004-05-29 00:33
2004.06.13
Как увеличить переменную TDate на нужное кол-во дней?


1-1086241574
Strazh
2004-06-03 09:46
2004.06.13
Visible:=false в form.create ???


6-1082542801
Aleksandr
2004-04-21 14:20
2004.06.13
Не могу нормально закодировать "От" и "Кому" для письма.


1-1086151146
Maestro
2004-06-02 08:39
2004.06.13
access violation и Abstract error для чайников


9-1077025452
Delphi_X_akep
2004-02-17 16:44
2004.06.13
DelphiX, TPictureCollectionItem, TPicture и TCanvas