Советы по Delphi


Как включить режим перезаписывания в TMemo и TEdit?


Олег Кулабухов приводит следующий код:

Эти два компонента не поддерживают режим перезаписывания. Но, если немного исхитриться с SetLength, то можно добиться желаемого результата.

    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;

[001925]



Содержание раздела