Rozpoznanie klawisza '+' w zdarzeniu OnKeyPress komponentu DBEdit

Rozpoznanie klawisza '+' w zdarzeniu OnKeyPress komponentu DBEdit
AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
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).

Kopiuj
 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".

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
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ę.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12317
0

Dokładnie, wyzerowanie parametru Key powinno wystarczyć;

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.