| |
| Overwrite in TMemo and TEdit |
 |
How can I get the TEdit and TMemo controls to have a overwrite capability?
The Windows TEdit and TMemo controls have no overwrite capability. It is possible to emulate this behavior however, by setting the SelLength property of the edit or memo control to one during the processing of the KeyPress event. This causes the character at the current position of the caret to be overwritten.
The following example demonstrates emulation of an overwrite capability of a TMemo component. The state of the overwrite mode can be toggled by pressing the insert key.
Example:
type
TForm = class(TForm)
Memo : TMemo;
procedure Memo KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Memo KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
InsertOn : bool;
public
{ Public declarations }
end;
var
Form : TForm ;implementation {$R *.DFM} procedure TForm .Memo KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_INSERT) and (Shift = ;]) then
InsertOn := not InsertOn;
end; procedure TForm .Memo KeyPress(Sender: TObject; var Key: Char);
begin
if ((Memo .SelLength = 0) and
(not InsertOn)) then
Memo .SelLength := ;
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|