Ako ste već duže u Delphi programiranju, sigurno znate da njegove kontrole TEdit i TMemo ne poseduju mogućnost prepisivanja (overwrite – OWR). Ali ova mogućnost kod ovih kontrola može da se emulira, preko podešavanja osobine SelLength, kontola Edit i Memo na jedan, tokom procesiranja događaja KeyPress. Ovo će prouzrokovati, da karakter na trenutnoj poziciji bude "prepisan".
Sledeći primer će vam pokazati emulaciju mogućnosti prepisivanja (overwrite), na jednoj TMemo komponenti. Samo stanje moda za prepisivanje se uključije – isključuje, preko tastera "Insert". A evo i samog Delphi primera:
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;
Pratite Krstaricu na www.krstarica.com