![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: нет Всего: -9 |
Delvish, когда человек введёт текст ,что будет ,как отследить момент когда человек в функцию вводит текст
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Можешь на этапе нажатия клавиш на Edit отлавливать. Можешь проверять с помощью вышеуказанных способов отлова ошибок. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
Какой то поток сознания. Рекомендую - Метод_утёнка. |
|||
|
||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: нет Всего: -9 |
superVad, Я просто думал ,что тут тоже программисты и смогут поделиться хотябы той литературой которую они читали.
С большим колличеством примеров , но такого я не нашёл. Мне было не очень понятно какие данные проверять ,чтобы выяснить что пользователь ввёл не число ? Это сообщение отредактировал(а) supervladislav - 10.10.2012, 22:27 |
|||
|
||||
| Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: нет Всего: -9 |
Данкинг, а где сам цикл if else?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Зачем здесь "цикл", как ты его называешь, if else? Здесь если strtoint не вызывает ошибки, то выводится "Введено число". Если же возникает ошибка, то программа переходит в блок, следующий после except, и выводится " "Ошибка преобразования".
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Но Val - это "ещё более стандартная" процедура Дельфи. Скажу более. Она использует тот самый Compile Magic. А функция TryStrToInt как раз и использует процедуру Val. См. исходники Дельфи. В них тоже самое, что в посте Delvish, но гораздо элегантнее. И без ошибки в типе второго параметра. P.S. Функции TryStrTo... значительно менее функциональны, чем процедура Val. Во-первых они преобразовывают строку только в жестко заданный тип числовой переменной. А во-вторых (и в этом особый цимус) процедура Val показывает в каком символе входного параметра-строки ошибка! Что даёт возможность показать пользователю, где он при ручном вводе сделал ошибку. Ну точнее - где он сделал первую из своих ошибок ввода. Это сообщение отредактировал(а) northener - 11.10.2012, 00:55 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Тут тоже программисты. Но далеко не все из них учились методом "подгонки готовых примеров под свою задачу". Даже скажу что таких - меньшинство. Я знаю только одного. Это сообщение отредактировал(а) northener - 11.10.2012, 01:27 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Использование StrToXXX когда нет уверенности что в строке число в нужном формате это нецелевое использование исключений, годится только для плохих студентов, которым сдать лабу и забыть. Правильный вариант TryStrToXXX, ну или Val, если вы не можете смириться с показаниями календаря
-------------------- Обижено школьников: 8 |
|||
|
||||
| Delvish |
|
|||
![]() oO ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 13.12.2006 Репутация: нет Всего: 4 |
это я и имел ввиду - TryStr.. основывается на старом-добром Val, в котором 2й параметр можно задать натуральным либо вещественным типом в зависимости от того, какой результат хочется увидеть. и да, плюс ко всему - это третий параметр с порядковым номером ошибочного символа, если он присутствует |
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Вот ведь как забавно!
Исторически в турбо паскале существовала процедура Val не вызывавшая ошибок времени исполнения (runtime error). При рождении Дельфи для этой процедуры сделали обертку, которая стала такие ошибки (теперь они называются exception) выдавать:
И понадобилось еще лет 10, чтобы к той самой процедуре Val сделали новую обертку, которая вновь не вывает ошибок:
Неисповедимы пути твои, господи. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: нет Всего: -9 |
northener, Если человек изучает с ноля с минимум примеров , а вы изучали сами или вас застовляли?
Добавлено через 22 секунды ПРостой толковой литературы маловато пока. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Меня никто не застАвлял. Учился почти совсем без примеров. Но Аглицкий Технический знал, так что мог читать хелп. Если он был, конечно P.S. Да ради бога. Изучай с ноля и без примеров. Но, пожалуйста, пойми одну простую вещь. Если мне когда-нибудь придётся что-то делать на php, я не стану на форумах задавать "умные" вопросы. Я просто скажу,что php я не знаю. А мне нужно сделать, чтобы моя програмима делала то-то и то-то. Что из некоторых соображений я пытаюсь сделать так (тут кусок кода), но у меня не получается. Помогите исправить мои ошибки! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |