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