Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2011, 22:49   #1
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию Знак -

Доброго времени суток))
Пишу на лабку прогу про квадратне ривняння. На С++ Bulder 6.
Возникла проблема надо чтоб в поле Edit1 вводить только числа, запятую и знак минуса. Другие знаки не вводить. Знак отрицания должен быть первым и должен быть только один. Я зделал так чтоб знак вводился единежды а так чтоб спереди не выходит(( Что делать??

Вот код:

Код:
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
    if (( Key >= '0') && (Key <= '9')  ) { // цифра
        return;
    }
    else if (Key == DecimalSeparator) {
        if ( (Edit1->Text).Pos(DecimalSeparator) != 0)
            Key =0; // разделитель уже введен
        return;
        }
    else if ( Key == '-') {// клавиша <->
        if ( (Edit1->Text).Pos('-') != 0)
            Key =0; // разделитель уже введен
        return;
    }
    else if (Key == VK_BACK) // клавиша <Backspace>
        return;
    else if ( Key == VK_RETURN) // клавиша <Enter>
        return;
    else {
        Key =0; // только цифра должн быть
        return;
    }



}
//------------------------------------------------------------------------
ВасяСВВ вне форума Ответить с цитированием
Старый 08.03.2011, 22:58   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Наверное как-то так:
Код:
if (Edit1->Text[1] == '-')
  Key = 0;
...

Написал, не подумав, ерунду.
Код:
if (Edit1->Text.Length() > 0)
  Key = 0;

Последний раз редактировалось netrino; 08.03.2011 в 23:24.
netrino вне форума Ответить с цитированием
Старый 09.03.2011, 05:54   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Не надо путать дефисы, минусы и тире.
Вот дефис, он расположен на клавиатуре: -
Вот минус, он примерно вдвое длиннее дефиса, его ширина равна ширине цифр, а высота совпадает с высотой средней палочки плюса: −
А вот тире: —
Эти знаки применяются в разных местах.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 09.03.2011, 12:48   #4
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

СПАСИБО!!!!!!!!
ВасяСВВ вне форума Ответить с цитированием
Старый 09.03.2011, 19:38   #5
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Вот прога по квадратным уравнениям.
Всё работает. Только мне кажется что алгоритм очень усложнил. Может кто какую критику скажет по улучшению и выпуску версии 0.2 )))))
Вложения
Тип файла: rar Квадратне рівняння 3.rar (391.8 Кб, 7 просмотров)
ВасяСВВ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знак @ fredwriter Помощь студентам 7 09.10.2010 19:17
С/C++ знак * Flippp Общие вопросы C/C++ 3 29.09.2010 18:18
Знак ^ в delphi aruy Помощь студентам 15 14.08.2009 08:31
Есть чат на яваскрипте.не могу поставит знак +;Хотя люди его как то ставят, просто мой знак + заменяется maksim1983 JavaScript, Ajax 4 23.02.2009 07:55