Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ограничить ввод знаков после запятой 
:(
    Опции темы
Most
  Дата 21.5.2009, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.5.2009

Репутация: нет
Всего: нет



созрел такой вопрос... как лудше сделать так чтобы пользователь мог ввести в Edit только 2 знака после запятой но не больш... плз хелп...
PM MAIL   Вверх
Данкинг
Дата 21.5.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



На выходе из Edit'а проверяй длину введённого после запятой.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
mrbrooks
Дата 21.5.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Вообще по хорошему надо использовать TMaskEdit и маску ввода.

К простому TEdit можно применить что - то типа этого:
Код

void _fastcall TForm::Edit1KeyPress(TObject *, wchar_t &Key)
{
static int count;
if (Key == '.') Edit1->MaxLength = count +2;
}


Но маска ввода мне нравится больше.
PM MAIL   Вверх
Dmi3ev
Дата 21.5.2009, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

Вообще по хорошему надо использовать TMaskEdit и маску ввода.

Да, да, да и еще раз да! и ничего не надо будет придумывать! Если можно сделать что-то непрограммно, то лучше это так и сделать...

Добавлено @ 10:04
Цитата

void _fastcall TForm::Edit1KeyPress(TObject *, wchar_t &Key)
{
static int count;
if (Key == '.') Edit1->MaxLength = count +2;
}

просто, (mrbrooks, я не в плане, что код хреновый) придется еще делать проверку, а не ввожу ли я буквы в это поле? а почему "." , а не "," разделитель целой и дробной части, придется брать DecimalSeparator, потом придется проверять, а не ввели ли пользователь 2 точки? и тд, и тп... поэтому бери  TMaskEdit для таких целей...

Это сообщение отредактировал(а) Dmi3ev - 21.5.2009, 10:39


--------------------

PM MAIL   Вверх
Most
Дата 21.5.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.5.2009

Репутация: нет
Всего: нет



спс... буду разбираться с маской...
PM MAIL   Вверх
XPyCT
Дата 23.5.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 24.8.2007
Где: Moldova

Репутация: 10
Всего: 10



Цитата(Most @ 21.5.2009,  01:13)
созрел такой вопрос... как лудше сделать так чтобы пользователь мог ввести в Edit только 2 знака после запятой но не больш... плз хелп...

не знаю может вам пригодится!
но есть такая функция FloatToStrF(); в которой можно задавать кол знаков после запятой


Код

#pragma hdrstop
#include<Math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
   float number1,number2,result;

   number1= 257,15533;
   number2=375,32325;
   result= number1 + number2;

   Edit1->Text=FloatToStrF(result,ffFixed, 10, 2);


}
//---------------------------------------------------------------------------


это так, может пригодится на будущее ))

Это сообщение отредактировал(а) XPyCT - 23.5.2009, 10:40
PM MAIL Skype   Вверх
mrbrooks
Дата 25.5.2009, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306





Цитата(Dmi3ev @  21.5.2009,  09:59 Найти цитируемый пост)
просто, (mrbrooks, я не в плане, что код хреновый) придется еще делать проверку, а не ввожу ли я буквы в это поле? а почему "." , а не "," разделитель целой и дробной части, придется брать DecimalSeparator, потом придется проверять, а не ввели ли пользователь 2 точки?


интересно - а эти проверки что - делать не надо - даже не используя мой подход?

то что ты написал касается ввода данных в Edit (тут в поиск - это уже боян боянов). Если внимательно (внимательно!) почитать - то вопрос стоял несколько в другом.
PM MAIL   Вверх
XPyCT
Дата 25.5.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 24.8.2007
Где: Moldova

Репутация: 10
Всего: 10



mrbrooks: Я же написал 
Цитата
это так, может пригодится на будущее )) !
 Дабы человек если не знает то пусть возьмет на заметку!

Цитата
интересно - а эти проверки что - делать не надо - даже не используя мой подход?

 А проверку это естественно обязательно

По поводу боянов:
 Это я когда то начинал и выполнял примеры из книги Бобровского
Самоучитель С++ в среде Борланд С++ билдер 5! 

Так что дублировать кого то у меня даже в мыслях не было
Элементарный пример!

Это сообщение отредактировал(а) XPyCT - 25.5.2009, 12:22
PM MAIL Skype   Вверх
mrbrooks
Дата 25.5.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(XPyCT @  25.5.2009,  12:13 Найти цитируемый пост)
mrbrooks: Я же написал 

вообщето я Dmi3ev писал  smile 
PM MAIL   Вверх
XPyCT
Дата 25.5.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 24.8.2007
Где: Moldova

Репутация: 10
Всего: 10



Цитата(mrbrooks @ 25.5.2009,  12:44)
Цитата(XPyCT @  25.5.2009,  12:13 Найти цитируемый пост)
mrbrooks: Я же написал 

вообщето я Dmi3ev писал  smile

ыыы тогда сорри
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.