БОЛЬШОЙ FAQ ПО DELPHI



Как сделать, чтобы 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;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ