Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод кода из одной среды в другую 
:(
    Опции темы
mortisedstalbun
Дата 2.10.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как мне правильно перевести кусочек кода Делфи в СИ Билдер???
Код

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ',' then
    Key := DecimalSeparator;
  if Key = '.' then
    Key := DecimalSeparator;
  if not (Key in ['0'..'9','-',DecimalSeparator,#8,#13])
    or ((Key = DecimalSeparator)
    and (POS (DecimalSeparator, Edit1.Text) > 0))
    or ((Key = '-') and (POS ('-', Edit1.Text) > 0))
    or ((Key = '-') and (Edit1.SelStart <> 0)) then
  begin
      Key := #0;
      MessageBeep (MB_OK);
  end;
end;

сижу и не жогоняю некоторые моменты smile 
PM MAIL   Вверх
volvo877
Дата 3.10.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Попробуй вот так:
Код

    if(Key == ',' || Key == '.') Key = DecimalSeparator;

    if (!(Pos(Key, "0123456789-") || Key == DecimalSeparator || Key == 8 || Key == 13) ||
      (Key == DecimalSeparator && Edit1->Text.Pos(DecimalSeparator)) ||
      (Key == '-' && Edit1->Text.Pos('-')) || (Key == '-' && Edit1->SelStart)
    )
    {
      Key = 0;
      MessageBeep(MB_OK);
    }

(проверить сейчас негде, но по-моему должно работать)
PM MAIL   Вверх
mortisedstalbun
Дата 4.10.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я вышел из этой ситуации мальца по другому 
Код

void __fastcall TEditLetNum::KeyPress(char &Key) //Ф-ия ограничивающая ввод
{                                                //в EditLetNum1
Set <char, '0', '9'> Dig;


Dig << '0' << '1' << '2' << '3' << '4' << '5' << '6' << '7' << '8' << '9';
if (Key=='.') Key=44;
if ((! FEnableNum) && (Dig.Contains(Key)))      //буквы
        {Key=0; Beep(); ShowMessage("Убедитесь в правильности ввода!!!");}
                                                //цифры
if ((! FEnableLet) && (!(Dig.Contains(Key))) && (!(Key==8))  && (!(Key==13))
         && (!(Key==44))  && (!(Key==46))  && (!(Key==45)))
        {Key=0; Beep(); ShowMessage("Убедитесь в правильности ввода!!!");}
if (Key != 0) FModified=true;
TEdit::KeyPress(Key);       //Вызов родительского метода KeyPress
}

т.е. разрабатывал компонент ограничивающий ввод в edit.... код работает ... спс за то что откликнулся
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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