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

Вниз

Изменение типа переменной   Найти похожие ветки 

 
De1uxe ©   (2005-12-10 15:47) [0]

Уважаемые мастера подскажите пожалуйста как изменить тип переменной(имеется переменная real которая затем округляется до целой и должна использоваться как координата то есть integer). Заранее спасибо.


 
Максим ©   (2005-12-10 15:49) [1]

Функция FloatToInt


 
De1uxe ©   (2005-12-10 15:54) [2]

n:=FloatToInt(n);
так?


 
Ihor Osov'yak ©   (2005-12-10 15:56) [3]

Тип переменной вы рантайме изменитть нельзя. Если все же имелось ввиду приведение типа, или преобразование, то посмотрите на  

function Trunc(X: Extended): Int64;
function Round(X: Extended): Int64;


 
De1uxe ©   (2005-12-10 16:11) [4]

Переменная округлена при помощи Round(X: Extended): Int64;. Но как мне её использовать в параметрах rect(integer,integer,integer,integer).Если туда поставить округленную, то компиляция стопорится на строчке myrect:=rect(n,0,100,bitmap1.Height); и говорит [Error] Unit9.pas(44): E2250 There is no overloaded version of "Rect" that can be called with these arguments. Что делать? Как выходить из положения?


 
Максим ©   (2005-12-10 16:15) [5]


> n:=FloatToInt(n);
> так?


Еслия я  правильно понял твой первый вопрос, то именно так.

Не работает?


 
De1uxe ©   (2005-12-10 16:20) [6]

нет пишет  undeclared identifer "floatToint".


 
Ihor Osov'yak ©   (2005-12-10 16:23) [7]

2 De1uxe ©

> нет пишет  undeclared identifer "floatToint".

естественно, что пишет. Ибо в стандартных можулях паскаля такого нет...


 
gdaujk ©   (2005-12-10 16:23) [8]

De1uxe ©   (10.12.05 16:20) [6]

Используй [3], разница - отбрасывание либо округление...


 
De1uxe ©   (2005-12-10 16:25) [9]

2 Ihor Osov"yak ©
А где взять этот модуль?


 
Ihor Osov'yak ©   (2005-12-10 16:29) [10]

2 De1uxe ©   (10.12.05 16:25) [9]

блин, ну зачем искать хр.. знает что, хр.. знает где, если в модуле system есть функции, стопроцентро Вам подходяшие.
См. [3].


 
De1uxe ©   (2005-12-10 16:31) [11]

2 Ihor Osov"yak ©   (10.12.05 16:29) [10]

А какие именно?


 
Ihor Osov'yak ©   (2005-12-10 16:34) [12]

ох, держите меня, сечас взвою...

Вы читать умеете? Постинг номер три в этой ветке посмотреть - не слишком сложная задача? Кстати, на этот постин Вам уже два раза указывали..


 
De1uxe ©   (2005-12-10 16:39) [13]

Это я и так использую(об этом говорилось в [4]). Но ведь это не меняет типа переменной, а только округляет. Переменная все равно остается real. что не дает мне её использовать в параметрах rect(integer,integer,integer,integer).
Или я ошибаюсь?


 
De1uxe ©   (2005-12-10 16:46) [14]

Ой извините меня ступил по страшному:
var
y:real;
...
y:=round(y);

то есть переменная оставалась real.
Всем большое спасибо. В особености Ihor Osov"yak за терпение.


 
Ihor Osov'yak ©   (2005-12-10 16:57) [15]

то, что Вы писали в 4 - совершенно не имеет отношения к сабжевому вопросу. Это уже другой вопрос.
как версию, я могу предположить, что у Вас n декларировано как не цилечисельное.. Не зря я же делал оговорку в 3 о невозможности изменить тип. А только о возможности приведения или преобразования.
Декларируйте n как целочисельное, или, если это невозможно (так как на предв. этапах там сохраняются промежуточные значения, для которых существенны дробные части - сделайте преобразование в момет вызова rect, а именно

myrect := rect(Round(n), 0, 100, bitmap1.Height);



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

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

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1132940888
igi
2005-11-25 20:48
2005.12.25
Поиск в бинарном файле


2-1134320453
floxi
2005-12-11 20:00
2005.12.25
Открытие готового заданного файла


2-1133948698
VIB
2005-12-07 12:44
2005.12.25
DBGrid


14-1133664717
Копир
2005-12-04 05:51
2005.12.25
Enter pool. Дорогие мои москвичи!


4-1130121564
Symbol
2005-10-24 06:39
2005.12.25
Драйвер виртуального устройства