Rozpoznanie klawisza '+' w zdarzeniu OnKeyPress komponentu DBEdit

0

Mam problem ze zdarzeniem OnKeyPress DBEdita, w którym po przyciśnięciu przycisku + na klawiaturze numerycznej do DBEdita wstawiany jest ciąg znaków(wskazanie wagi).

 procedure Tokienkowyd.DBEdit1KeyPress(Sender: TObject; var Key: Char);
var waga_bez_poj, waga:real;

begin
if formdodaj.CheckBox2.Checked=True then
begin
if key=#43 then
begin
DBEdit1.DataSource.DataSet.Edit;
waga_bez_poj:=StrToFLoat(formdodaj.waga_z_przecinkiem)-2;
DBEdit1.DataSource.DataSet.FieldByName('ilosc').Text:=FloatToStr(ABS(waga_bez_poj));

end;

Problemem jest to, że ów plus po wykonaniu zdarzenia zostaje wyświetlony w DBEdicie. Przy wyjściu otrzymuję komunikat " '+' is not a valid floating point value for field ilosc".

1

Dodaj na końcu sprawdzenia if'em Key := #0; to klawisz "nie dojdzie" do Edit. Tak przynajmniej dzieje się ze standardowym Editem, a ten pewnie po nim dziedziczy. I następnym razem proszę o zadawanie banalnych pytań o podstawy w dziale Newbie. Póki on istnieje, tam miejsce takich wątków. Przenoszę.

0

Dokładnie, wyzerowanie parametru Key powinno wystarczyć;

procedure Tokienkowyd.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if FormDodaj.CheckBox2.Checked then
  begin
    // ...
    Key := #0;
  end;
end;

Poza tym formatu kod, a nie pisz go byle jak; No i nazywaj elementy GUI i zmienne po ludzku, a nie pól po polsku i pół po angielsku; Niektóre nawet w ogóle nie są nazwane, więc po jakimś czasie będziesz musiał się uczyć kodu, dlatego że komponenty z nazwami typu CheckBox2 kompletnie nic nie mówią o ich przeznaczeniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1