![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Работаю в Delphi7
У меня на форме стоят 2 поля ввода(TRichEdit). Одно имеет маску - ' . ' - т.е для ввода значений типа Double(для цены товара), а второе - ' ' - т.е для ввода значений типа Integer , плюс к этому есть еще одно поле, в котором после ввода значений в первые 2 поля, должна отображаться сумма этих значений. Это поле имеет маску ' . '. я делаю для этого следующее [code] TRichEdit3.text := InttoStr(StrtoInt(TRichEdit1.text) + StrtoInt(TRichEdit2.text)); [code] конечно это ыдает ошибку поскольку первая маска не позволяет перевести '10 . '(например) в Integer , я понимаю но что делать не знаю ... может кто подскажет |
|||
|
||||
| _vova_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 18.6.2004 Где: Харьков Репутация: нет Всего: нет |
А зачем нужен TRichEdit?
Есть чудовый компонент TCurrencyEdit из RX, скорее всего есть что-то подобное и в JEDIVCL. У него есть свойство Value, и делай сним что хочеш. Также поддерживается такая прелесть, как As... Ну если очень нуно TRichEdit, то
или наоборот, взависимости от того где дабл. |
|||
|
||||
| nicka |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
К сожалению, данный метод вызывает у меня следующую ошибку
и что же делать? |
||||
|
|||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
У тебя разделитель не соответствует.
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
не соответствует чему? установкам на машине в Regional Settings? вроде точка у меня - хотя проверю... |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
В первую очередь делать нормально! Это все равно что экскаватором грузить сено! Вам же сказали, есть специальные компоненты (из той же RxLib). Или воспользуейтесь TMaskEdit. А TRichEdit предназначен для ввода и отображения форматированного текста. -------------------- |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
или в обработчике обрезаеш все лишнее из RichEdit.text а потом конвертируеш. Ну и ряд других способов. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| nicka |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
во первых - ни каких других компонент( в той же или не в той жеRxLib) у меня не видно и не читала. Насчет TMaskEdit. - надо поискать. Но вопрос то касался TRichEdit - значит мне так нужно, я читала про него в книге. Там было сказано, что если надо задать маску, то существует он. Вот я и взяла...
так зачем же наезжать так, я в дельфи новичок, просто не знаю в какую сторону копать , да изаказ поджимает... а для чего же тогда форумы, если лучать подсказку на то , что другие уже знают , а тебе не стоит тратить время?
|
||||||||||
|
|||||||||||
| Guest |
|
|||
|
Unregistered |
Ладно, всем пардон, оказалось что у меня на форме не всем ненавистный TRichEdit , а всеми любивый TMaskEdit. Но ошибка вес равно та же,
так что уж надеюсь на совет, потому что учень уж срочная проблема... |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Выше сообщение от было от меня, т.е Нicka - автора темы.
И щас тоже я пишу. Дело в том что если я введу в поле число 10 следующим образом - '10 . ' , то выйдет вышеуказанная ошибка. А если не введу так - ' 10. ' - то не выдаст ошибку. Но так постоянно вводить не удобно. ЧТо можно придумать тут? |
|||
|
||||
| Girder |
|
||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Береш обычный TEdit и используеш.
а)для IntEdit.OnChange;
б)для FloatEdit.OnChange;
Использовать OnKey... также можно, что бы сразу игнорировать не допустимые коды символов, НО... ни что не помешает вставить(через буфер) в поле ввода информацию. При конвертации необходимо обрабоботать исключения(потому что, ни что мне не помешает ввести к примеру "..11,,ee". Конечно можно и допустисый синтексис обратывать):
Но лично я, вообще(если честно то редко) не обрабытываю OnChange, OnKey... Т.к. часто это пугает пользователя: Он нажимает... А-ааа.. ни чё не происходит и т.п. А просто обрабатываю исключения и вслучаи чего сообщаю пользователю, где и в чем ошибка. Это сообщение отредактировал(а) Girder - 23.6.2004, 21:16 -------------------- Как слышим, так и пишим. Истина где-то там... |
||||||
|
|||||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
надо правильно отредактировать саму маску. Поставить вместо символа 9 символ 0. Т.е. сказать что должна быть не просто цифра, а ОБЯЗАТЕЛЬНО цифра и ничего более.
-------------------- |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Pegas ,
про маски я читала, только если я поставлю вместо 9 - 0, то это будет означать обязательный ввод, то есть если я уже ввела туда число, а потом передумала и хочу удалить его, то оно выдаст сообщение, что я не правильно ввела значение в маску...я так пробовала Теперь насчет удобного ввода, чтоб при вводе например 10 сажалось ' 10. ' , а не '10 . ' я подумала, что тут поможет !(восклицательный знак) в маске, т.е !99.99;1;_ да, это вроде решает проблему пробелов перед точкой, но зато возничает другая - при вводе например ' 100.25' значение может поменяться при вводе в базу на ' 100.01' или что то в этом роде, короче значение после точки меняеться, не знаю из зачего..... А откуда можно скачать эту RX библиотеку? |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
http://delphiplus.nagano.ru/rxlibrary.html
Добавлено @ 05:23 Установи RXLib и не мучайся. RXLib - это почти что стандартная библиотека для Delphi. Описание процедур и функций смотри в DRKB. -------------------- |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Лично я, и все мои ближайшие знакомые уже давно (после первых опытов) отказались от использования TMaskEdit. Уж больно он "не русский" какой-то. Наладить ввод который будет соответствовать маске, и при этом будет допускать гибкость, в этом компоненте по моему невозможно. Мне кажется что он применим только если нужно заставить пользователя обязательно ввести значение точно соответствующее маске. Но даже при этом, пользователи "чумеют" от такого компонента, по крайней мере те с которыми приходилось иметь дело мне. Поэтому, обычно просто ставится tEdit, и либо вешается обработчик на OnChange в котором делается проверка на допустимость вводимой величины, либо проверка делается уже после ввода, например по нажатию Ok. А можно и правда поискать более продвинутые компоненты. -------------------- Все знать невозможно, но хочется |
|||
|
||||
![]()
|
| Правила форума "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. |