Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Edycja w trybie wstawianie/nadpisywanie

Czasem chcemy aby edycja odbywała się w trybie nadpisywania, a nie wstawiania. Przełączanie pomiędzy trybami odbywa się w standardowy sposób, po naciśnięciu klawisza INS. Jeżeli nie chcemy tworzyć zmodyfikowanego komponentu wystarczy skorzystać z własności SelLength. Aktualny tryb pracy można sygnalizować, w zależności od zmiennej tryb_wstaw np. na panelu.

var tryb_wstaw :boolean;

procedure TForm1.Edit1KeyPress(Sender: TObject;
                                var Key: Char);
begin
   if (not tryb_wstaw) and not (key in [#8,#0]) then
      Tedit(sender).SelLength:=1
   else
      Tedit(sender).SelLength:=0;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
                                         Shift: TShiftState);
begin
   if (key=VK_INSERT) then tryb_wstaw := not tryb_wstaw;
   if tryb_wstaw then
      panel1.caption:= 'Tryb wstawiania'
   else 
      panel1.caption:=' Tryb nadpisywania';
end;

Należy jeszcze ustawić domyślny tryb pracy:

procedure TForm1.FormCreate(Sender: TObject);
begin
   panel1.caption:='Tryb wstawiania';
end;

SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428