lazarus and Delphi

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
bara-igor
новенький
Сообщения: 63
Зарегистрирован: 04.03.2006 09:09:54

Сообщение bara-igor »

Уважаемые эксперты! У меня не срабатывает конструкция:
Time := StrToFloat(Edit1.Text);
При чем компилятору не нравится именно Edit1.
В перемненых записано
var
Time : Real;
В одном источнике написано, что
StrToFloat() - Extended, в другом - Currency.
Я пробовал менять - тот же результат. Подскажите,
пожалуйста как решить эту проблему!
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

Real - устаревший тип, в основном применяют Currency.
Как выглядит значение Edit1.Text? Здесь,скорее всего, исключение из-за неверного типа (к примеру, запятая вместо точки - тут надо смотреть настройки региональных стандартов).
bara-igor
новенький
Сообщения: 63
Зарегистрирован: 04.03.2006 09:09:54

Сообщение bara-igor »

GrayEddy писал(а): Real - устаревший тип, в основном применяют Currency.
Как выглядит значение Edit1.Text? Здесь,скорее всего, исключение из-за неверного типа (к примеру, запятая вместо точки - тут надо смотреть настройки региональных стандартов).

Я менял тип на Currency - тот же результат. Может есть другая функция для тех же целей: перевод строки в вещественный тип?
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

Дело не в функции, а в параметре. Функция StrToFloat() заложена в RTL и должна работать как часы. У меня FPC 2.0.2
Перепиши код по другому:
//Time := StrToFloat(Edit1.Text);
Time := StrToFloat("123.45");
Если не получится, то
Time := StrToFloat("123,45");
Все ли будет ОК?
Неплохо было бы упомянуть версию Lazarus. Это важно.
Кстати, как выглядит сообщение компилятора на ошибку? Фраза "При чем компилятору не нравится именно Edit1." размыточная.
User

Сообщение User »

А может просто не нужно использовать Time для имени переменной. Нет опыта в Lazarus, но в Паскале это имя будет наверняка проблемным.
Guest

Сообщение Guest »

User писал(а): А может просто не нужно использовать Time для имени переменной. Нет опыта в Lazarus, но в Паскале это имя будет наверняка проблемным.

Я проверял Time не является зарезервированным словом.
Guest

Сообщение Guest »

GrayEddy писал(а): Дело не в функции, а в параметре. Функция StrToFloat() заложена в RTL и должна работать как часы. У меня FPC 2.0.2
Перепиши код по другому:
//Time := StrToFloat(Edit1.Text);
Time := StrToFloat("123.45");
Если не получится, то
Time := StrToFloat("123,45");
Все ли будет ОК?
Неплохо было бы упомянуть версию Lazarus. Это важно.
Кстати, как выглядит сообщение компилятора на ошибку? Фраза "При чем компилятору не нравится именно Edit1." размыточная.

Компилятор пишет:Error identifier not found "Edit1".
SovNarKom
постоялец
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]
Контактная информация:

Сообщение SovNarKom »

Забавно, а если написать Form1.Edit1?
Короче давай код процеды.
bara-igor
новенький
Сообщения: 63
Зарегистрирован: 04.03.2006 09:09:54

Сообщение bara-igor »

Большое спасибо всем! Я решил проблему.
1. Вместо Edit1 я скопировал из on-line книги Editl.
2. Нужно было прописать даже пустую процедуру Edit1 виртуальными функциями(клавиатурой).
3. Нужно вынести переменные и константы из процедуры.
Большое спасибо всем, кто пытался мне помочь!
Я намерен продолжать этот раздел ибо Lazarus большой и перспективный и есть еще много вопросов.
SovNarKom
постоялец
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]
Контактная информация:

Сообщение SovNarKom »

bara-igor
Моя что-то не понимать ничего...

1. Вместо Edit1 я скопировал из on-line книги Editl.

Зачем? Дай ссылку на эту онлайн книгу.

2. Нужно было прописать даже пустую процедуру Edit1 виртуальными функциями(клавиатурой).

Это как?

3. Нужно вынести переменные и константы из процедуры.

Ненужно.


Код давай.
bara-igor
новенький
Сообщения: 63
Зарегистрирован: 04.03.2006 09:09:54

Сообщение bara-igor »

SovNarKom писал(а): bara-igor
Моя что-то не понимать ничего...

1. Вместо Edit1 я скопировал из on-line книги Editl.

Зачем? Дай ссылку на эту онлайн книгу.

2. Нужно было прописать даже пустую процедуру Edit1 виртуальными функциями(клавиатурой).

Это как?

3. Нужно вынести переменные и константы из процедуры.

Ненужно.


Код давай.

1. Если администрация сайта позволит я с удовольствием выложу имеющуюся у меня литературу на сайт с уже исправленными ошибками.
2. Говоря о конструкции Edit также как конструкция Label и конструкция TPanel, ListBox, я сказал о собственном опыте, что эти конструкции не работают, если они хотя бы в пустом виде не появятся в прогамме. А что, это делается визуально? Lazarus - визуальный язык программирования.
3. Я не открываю Америку! Я задаю имеющиеся у меня вопросы и делюсь тем, что сам понял, тем более, что по Lazarus почти нет литературы и документации. Разве форум не для этого?
Аватара пользователя
STAKANOV
энтузиаст
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение STAKANOV »

1. Если администрация сайта позволит я с удовольствием выложу имеющуюся у меня литературу на сайт с уже исправленными ошибками.


Все дело только в копирайтах. А так до 1Мб можно мне прислать на почту \[EMAIL=platinum@umail.ru\]platinum@umail.ru\[/EMAIL\], в поле тема надо добавить слово 'freepascal' (защита от СПАМ, 100% работает :D )

Если есть желание стать постоянным автором и т.п., то это к Евгению (ev). Он главный. :D
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

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

Для начала см. <a href='http://freepascal.ru/rules/text/' target='_blank'>http://freepascal.ru/rules/text/</a>
bara-igor
новенький
Сообщения: 63
Зарегистрирован: 04.03.2006 09:09:54

Сообщение bara-igor »

Иван Шихалев писал(а):
сли есть желание стать постоянным автором и т.п.,

Для начала см. <a href='http://freepascal.ru/rules/text/' target='_blank'>http://freepascal.ru/rules/text/</a>

Спасибо за публикацию! Теперь еще очень хотелось узнать Ваше мнение о ней?
Ответить