Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

<<<<<<Проблема с несоответствием типов>>>>> [D6, WinXP]


d_coder ©   (2002-10-08 21:21:00) 

Ситуация такова: есть Image. Пользуясь свойством Canvas я хочу нарисовать на ней с помощью линий (Image1.Canvas.LinesTo(x,y) определенную карту, вершины которой (x,y) должны читаться из ячеек StringGrid и представлены в виде, например "-3.0", "0.0", "2.99" и т.п.
Проблема, естественно, в том, что имеет место несоответствие типов: т.е. компилятор кричит, что >>> "-3.0" не является Integer <<<. Интересно, как еще можно провернуть такую операцию, если из строки можно, вроде бы, конвертировать в StrToInt, да и Canvas.LineTo жрет только Integer переменные.
Уважаемые мастера и люди, сталкивавшиеся раньше с такой проблемой, подскажите решение!!!


Dr.UFO_51   (2002-10-18 17:26:00) [1]

Если потребуется HELP мыль сюды : CivUFO@mail.ru
Почему никто не пользуется стандартами???!!!
Есть 2 замечательных функции Trunc и Round
Вот пример :

////////////////////////

var
a:integer;
begin

a:=trunc(3.8); // отрезает целую часть (здесь a=3)
// или
a:=round(4.7); // округляет (здесь a=5 )

/////////////////////////

Удачи !!!


Rouse_   (2002-10-09 02:36:00) [2]

Ну если ты просто будешь рисовать с такими координатами
> "-3.0", "0.0", "2.99" и т.п.
то даже если бы у тебя и не было несоответствия типов то получился бы один большой (примерно 3 на 3) пиксель ;) Попробуй не StrToInt а StrToFloat, это раз.
Потом каждую координату умножь хотя бы на 50, округли ее до наибольшего (наименьшего) целогои только тогда делай LinesTo

Желаю успехов


Наверх

Титульная страница Поиск, карта сайта Написать письмо