Основные методы компонента:
void Clear() – очищает строку в компоненте.
void ClearSelection() – удаляет выделенный фрагмент в строке. void CopyToClipboard() – копирует выделенный фрагмент в буфер. void CutToClipboard() – переносит выделенный фрагмент в буфер
обмена.
void PasteFromClipboard() – замещает выделенный фрагмент тек-ста или вставляет в место, указываемое курсором ввода, содержимое буфера обмена.
void SelectAll() – выделяет всю строку в компоненте.
Программное переключение клавиатуры на нужную раскладку. Для этого можно воспользоваться функцией LoadKeyboardLayout()
из файла winuser.h. Имеет два параметра:
LoadKeyboardLayout(“код_раскладки”, флаг);
Первый параметр – это строка кода раскладки клавиатуры. Для ан-глийской раскладки она равна “00000409” для русской – “00000419”. Второй параметр задается флагом KLF_ACTIVATE, активизирующий указанную клавиатуру.
LoadKeyboardLayout(“00000419”, KLF_ACTIVATE); //Русская раскладка LoadKeyboardLayout(“00000409”, KLF_ACTIVATE); //Английская раскладка
Основные события компонента:
OnChange (TObject Sender) – является главным событием компо-нента Edit. Возникает при изменении текст в поле компонента, т.е. при изменении свойства Text. Обычно в этом событии производят проверку или сохранение новой введенной информации.
OnkeyPress (TObject Sender, char Key) – возникает при нажатии печатной клавиши в поле ввода компонента. В обработчике можно ана-лизировать введенный символ и при необходимости изменить его или запретить ввод. Часто в обработчике события OnKeyPress() проводят контроль правильности ввода информации, и в случае неверного вво-да либо сообщают об этом пользователю, либо подавляют неверно вве-денный символ.
Пример: В качестве примера рассматривается создание обработчи-ка события OnKeyPress���������������������������������������������������������длякомпонентаEdit,вкоторомведетсяпровер-
Рис. 18.
Компонент
счетчик
ка правильности ввода символов вещественного числа: разрешен знак «–« в начале числа; ведется проверка ввода разделителя целой и дроб-ной частей; разрешен ввод только символов цифр; обрабатывается кла-виша Ent�����er�������������������������������длязавершенияввода;клавиша���Esc������������������������используетсядляочист-ки поля ввода; клавишей Backspace удаляется предыдущий введенный символ. Другие клавиши должны игнорироваться при вводе, путем при-своения параметру Key значение 0.
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) {
if (!isdigit(Key) && Key!=8) //Не цифра и не клавиша Backspace
switch (Key) //Анализ введенного символа
{
case 13: Form1→SelectNext(Edit1,true,true); //Enter – перемещение фокуса
break;
case 27: Form1->Edit1->Clear(); //Esc – очистка поля ввода
break;
case ‘.’: case ‘,’: //Точка или запятая
Key=DecimalSeparator; //Заменить на разделитель
if (Form1->Edit1->Text.Pos(Key)!=0)//Разделитель уже был Key=0;
break;
case '-': if (!Form1->Edit1->Text.IsEmpty()) Key=0; break; //Минус
default: Key=0; //Игнорировать остальные символы
Beep(); //Подать звуковой сигнал – ошибка
}
}
Do'stlaringiz bilan baham: |