Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление выделенного блока, Удаление выделенного блока 
:(
    Опции темы
brb
  Дата 24.1.2003, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Господа, объясните как происходит удаление выделенного блока, а, точнее, как это я должен и должен ли делать из билдера? Пример проблемы. В поле текст стоит 98000. Мышкой выделяю 3 последних нуля и набиваю 'К'. Логика построена так, что это, на самом деле, одно и то же. Но в пошаге вижу, что в тексте, по-прежнему 98000, 'K' добавляет свои законные 3 нуля и я получаю переполнение.
Что и как я должен сделать, чтобы это работало, как и должно, а именно: выделенные 3 нуля замещаются на 'К', а 'К', в свою очередь, замещается 3 нулями, что сейчас и происходит. за исключением того, что выделенные нули никуда не деваются.

Спасибо
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Klin
Дата 24.1.2003, 04:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Используй while


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
brb
Дата 24.1.2003, 04:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Очень подробный ответ! А короче можно?
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Klin
Дата 24.1.2003, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Можно :)
Код
AnsiString text;
while (text.Pos("000")0=!){
text.Delete("000",3);
text.Insert("000","K");
}

По-моему, так.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
brb
Дата 24.1.2003, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А, по-моему, нет!
Речь идет об общем случае, а приведен был конкретный пример. Вопрос в том, что надо сделать, чтобы при выделенном блоке, любая нажатая клавиша сначала удаляля это блок, а потом осуществляла ввод. Я полагал, что винда или билдер это делают без моего участия, ан нет или я еще чего-то не знаю. А если вручную, то надо ставить обработчик на KeyPress(), хотя хотелось бы without using hands!
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vit
Дата 24.1.2003, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Приведи код, всё должно работать и без твоего участия, компонент Memo и Edit ничего от себя не делают - это только надстройка над виндовыми API.




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
brb
Дата 24.1.2003, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



void __fastcall TForm1::LaKeyPress(TObject *Sender, char &Key)
{
  if (Key >= '0' && Key <= '9'){
    if ( La->Text.Length() == 9 ){
       ShowMessage("This is over the limit");
       Key = 0;
    }
  }
  else if (Key == '.'){
     if ( strchr(La->Text.c_str(),'.') != NULL){ // decimal point already exists
        Key = '\a';
     }
  }
  else if (Key == 'k' || Key == 'K'){
     if (La->Text.IsEmpty()){
multi->ItemIndex = 0;
        Key = '\a';
     }
     else {
        multi->ItemIndex = 1;
        Key = 0;
        Pect->SetFocus();
     }
  }
  else if (Key == 'm' || Key == 'M'){
     if (La->Text.IsEmpty()){
multi->ItemIndex = 0;
        Key = '\a';
     }
     else {
        multi->ItemIndex = 2;
        Key = 0;
        Pect->SetFocus();
     }
  }
  else if (Key != '\b') Key = '\a';

}
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vit
Дата 24.1.2003, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



присваивай значение SelText, а значение Key обнуляй


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
brb
Дата 24.1.2003, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



SelText is the selected portion of the edit control’s text.

__property System::AnsiString SelText;

Description

Read SelText to determine the value of the selected text. Set SelText to replace the selected text with a new string. If there is no selection, but the edit control has focus, set SelText to insert a new string into the text at the cursor.

Таким образом, я должен ВСЕ KeyPress() модифицировать на SelText = Key
Если я принимаю ввод и  = 0 если нет ???
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
brb
Дата 24.1.2003, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сейчас еще глянул: если выделено все целиком 98000 и я ввожу 98к, то все как и должно быть, а если выделены ТОЛЬКО нули - дудки - дописываем еще три! Странно это.
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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