Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2007, 16:43   #1
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию Вопрос (новичка) по переменным.

Мне необходимо графически отобразить некоторые параметры ini-файла.
Для этого я ввел переменную, например:
...
var
point: integer;
...


Читаю в переменную:
...
point:=IniF.ReadInteger('frmParison ','Profile_1_Val_400',780);
...

Вывожу из переменной:
...
Image6.Canvas.MoveTo(40,10);
Image6.Canvas.LineTo(point,10);
...


Работает всё нормально. Но мне нужно уменньшить изображение. Для этого я применяю: Image6.Canvas.LineTo(point*0.5,400) ;
и естественно получаю
[Error] apex.pas(271): Incompatible types: 'Integer' and 'Extended'
Несовместимые типы: 'Целое число' и 'Расширенный'
Сам то понимаю, что программа не будет рисовать по пол пикселя, но ещё плохо знаком с синтаксисом.
Подскажите, как выйти из этой ситуации?
grey вне форума Ответить с цитированием
Старый 03.11.2007, 16:56   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Округляйте дробные числа: round(point*0.5), т.е. должно быть Image6.Canvas.LineTo(round(point*0. 5),400);
_Dmitry вне форума Ответить с цитированием
Старый 03.11.2007, 16:58   #3
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

попробуй: вместо умножения на 0.5 раздели на 2
Image6.Canvas.LineTo(point/2,400);
I like WPF
kommunist вне форума Ответить с цитированием
Старый 03.11.2007, 17:01   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Сообщение от kommunist Посмотреть сообщение
попробуй: вместо умножения на 0.5 раздели на 2
Image6.Canvas.LineTo(point/2,400);
Если делить, то так: Image6.Canvas.LineTo(point div 2,400); - целочисленное деление
_Dmitry вне форума Ответить с цитированием
Старый 03.11.2007, 17:01   #5
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Цитата:
попробуй: вместо умножения на 0.5 раздели на 2
Image6.Canvas.LineTo(point/2,400);
kommunist' y: А если point будет равняться 55? Что тогда?

grey cмотри справку по round или trunc
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 03.11.2007, 17:25   #6
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

_Dmitry & AlDelta, спаибо за готовые решения и за ссылки на темы в справке.
Всё подошло.
grey вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как же нарисовать линию на форме? (Вопрос новичка) grey Помощь студентам 11 24.11.2008 10:31
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14
простая задача по строковым переменным STEEL-F Помощь студентам 6 21.01.2008 22:32
Присвоение переменным булевских выражений rider Паскаль, Turbo Pascal, PascalABC.NET 4 06.12.2007 21:11
Не все готовые исходники компилируются (Вопрос новичка) grey Помощь студентам 9 28.10.2007 19:18