На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Как добится того чтобы TMemo и TEdit имели работали не только в режиме вставки символов, но и в режиме замены? Сделать домашней страницей Добавить в избранное Написать писмо

Как добится того чтобы TMemo и TEdit имели работали не только в режиме вставки символов, но и в режиме замены?


Элементы управления Windows TEdit и TMemo не имеют режима замены. Однако этот режим можно эмулировать установив свойство SelLength edit'а или memo в 1 при обработке события KeyPress. Это заставит его перезаписывать символ в текущей позиции курсора. В примере этот способ используется для TMemo. Режим вставка/замена переключается клавишей "Insert".
Пример:

type
   TForm1 = class(TForm)
       Memo1: TMemo;
       procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
       procedure Memo1KeyPress(Sender: TObject; var Key: Char);
private
   {Private declarations}
       InsertOn : bool;
public
   {Public declarations}
end;

var
   Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if (Key = VK_INSERT) and (Shift = []) then
       InsertOn := not InsertOn;
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
   if ((Memo1.SelLength = 0) and (not InsertOn)) then
       Memo1.SelLength := 1;
end;



Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz