Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 900
от 20.08.2007, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 472, Экспертов: 78
В номере:Вопросов: 1, Ответов: 3


Вопрос № 98391: Уважаемые эксперты, здравствуйте! Подскажите, пожалуйста, в чем ошибка, я делаю, обработчик события для кнопки Button1, по нажатии на которую происходит конвертация из десятичной системы счисления в шестнадцатеричную. Если пользователь забудет ввести...

Вопрос № 98.391
Уважаемые эксперты, здравствуйте! Подскажите, пожалуйста, в чем ошибка, я делаю, обработчик события для кнопки Button1, по нажатии на которую происходит конвертация из десятичной системы счисления в шестнадцатеричную. Если пользователь забудет ввести число и сразу нажмет на кнопку должно появляться сообщение 'Введите число', все это работает, но когда я нажимаю на «ок», то в Edit2 появляется результат какого-то вычисления «= 42A474». Скажите, что это здесь вычисляется и как сделать, чтобы это не появлялось? Заранее ОГРОМНОЕ СПАСИБО!

Приложение:

Отправлен: 14.08.2007, 17:28
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zwieback
Здравствуйте, Алена!
Существуют сокращенные формы записей условий и полные.
Сокращенная запись:
if () then
DoSomething()
else
DoSomething2();
Полная запись:
if () then
begin
DoSomething();
end
else
begin
DoSomething2();
end;

Это относится и к записи циклов.
Ваша ошибка - заключается в том, что после по условию else выполниться одна строка, а дальше выполняться следующие две строки, независимо от условия.
Правильный код в приложении:

Приложение:

---------
Бывает что все удается, не пугайтесь, это пройдет!

Ответ отправил: Zwieback (статус: 1-ый класс)
Ответ отправлен: 14.08.2007, 17:37
Оценка за ответ: 5
Комментарий оценки:
ОГРОМНОЕ Вам спасибо!!!:-)

Отвечает: Виктор Пырлик
Здравствуйте, Алена!

Вы просто не заключили блок формирования значение для Edit2 begin .... end
Поэтому, вы просто имеете "мусор" в переменой Dec
Для того, чтобы избегать таких казусов - инициализируйте переменные нулями (или пустыми значениями)
например:

Dest := 0 до её использования.

Приложение:

---------
Если ничего не помогло - надо читать инструкцию

Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 14.08.2007, 17:47
Оценка за ответ: 5
Комментарий оценки:
Спасибо БОЛЬШОЕ!!!:-)

Отвечает: Витомский Вадим Викторович
Здравствуйте, Алена!

Если число не введено, то после информирования пользователя можно просто выйти из обработчика, см. измененый код:

Приложение:

---------
Не так страшен черт, как его чертовка!

Ответ отправил: Витомский Вадим Викторович (статус: 10-ый класс)
Ответ отправлен: 15.08.2007, 09:56
Оценка за ответ: 5
Комментарий оценки:
Спасибочки!!!:-)


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.55 от 19.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное