Tema: Re: Klausimas is Delphi
Autorius: Ninja666
Data: 2009-04-29 08:19:25
ReM wrote:
> Sveiki,
> 
> Paprastutė klavišo paspaudimo procedūra. Reikia, kad paspaudus "a", 
> ištrintų prieš tai esantį simbolį.
> Tikėjausi, kad taip nutrins, tačiau nutrina būtent simbolį "a".
> 
> procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
> begin
>  if Key='a' then
>   begin
>     keybd_event(VK_BACK, 0, 0, 0);
>     keybd_event(VK_BACK, 0, KEYEVENTF_KEYUP, 0);
>   end;
> end;
> 
> Kaip padaryt, kad nutrintų prieš kursorių esantį simbolį? "a" irgi turi 
> pasirodyt.
> 

Kažkaip tu darai pro kitą galą. Nesuprantu ko tu nori, todėl pateikiu 
pavyzduką tam, ko tu prašai, bet aš spėju, kad tu darai kažką iš 
visiškai kitos pusės.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
   vText: string;
   vSelPos: integer;
begin
   if key = 'a' then
   begin
     vText := Edit1.Text;
     vSelPos := Edit1.SelStart;
     Delete(vText, vSelPos, 1);
     Edit1.Text := vText;
     Edit1.SelStart := vSelPos;
   end;
end;


beje - vSelPos reikės skaičiuoti kitaip, jeigu tekstas bus pažymėtas. 
Tada reikės ir vText skaičiuot kitaip :)