[Delphi] Jak wykryc koniec wpisywania OnKeyPress

0

Mam na FORM1 w zdarzeniu OnKeyPress tak:

ab : string;

ab := ab + key;
Form1.Caption := Form1.Caption + Key;
if (ab = '5577') then form1.Caption := 'uuu';

chodzi o to ze wczytuje znaki z czytnika laserowego takie z kodow kreskowych
kiedy przejade laserem po kodzie to on wpisuje:
05746387485736| ten ostatni znak to znak konca i przejscia do nowej linii.
Chodzi o to zeby wykryc koniec wpisywania kodu wykonac jakas czynnosc
i wyczyscic zmienna AB zeby byla pusta.

Kiedy wpisuje AB := ' '; to nadal jest tam znak konca linii, macie jakis pomysl
jak to mozna wyczyscic ?

0

sprawdzić, czy key = #13 :>

0
masterO napisał(a)

Mam na FORM1 w zdarzeniu OnKeyPress tak:

ab : string;

ab := ab + key;
Form1.Caption := Form1.Caption + Key;
if (ab = '5577') then form1.Caption := 'uuu';

chodzi o to ze wczytuje znaki z czytnika laserowego takie z kodow kreskowych
kiedy przejade laserem po kodzie to on wpisuje:
05746387485736| ten ostatni znak to znak konca i przejscia do nowej linii.
Chodzi o to zeby wykryc koniec wpisywania kodu wykonac jakas czynnosc
i wyczyscic zmienna AB zeby byla pusta.

Kiedy wpisuje AB := ' '; to nadal jest tam znak konca linii, macie jakis pomysl
jak to mozna wyczyscic ?



Edit1.Text:=ab;
Edit1.Clear;
ab:=Edit1.Text; // Edit1 ustaw - visible na false

0

misiek faktycznie powieniem sprawdzicz #10 i #13 chyba tez tak?
zreszta zaraz sprawdze

stat jacek nie mozna uzywac niewidzialnych editow do tego sa strumienie. ktore mozna sworzyc i skasowac ale do tego wystarczy zmienna string. zobacze jak to zrobic


dziwne wstawilem ten kod ponizej:

ab := ab + key;

if (copy(ab,0,13) = '5906074113590') then
begin
Memo1.lines.add('lallala');
ab:= '';
end;

if (copy(ab,0,13) = '9771427763076') then
begin
Memo1.lines.add('misio pysio');
ab:= '';
end;

if (copy(ab,0,13) = '9771506118049') then
begin
Memo1.lines.add('nununu');
ab:= '';
end;

Kiedy wstawilem go w OnKeyPress glownej formy to
nie dziala bo do AB zapisuje znak przejscia do nowego wiersza
a kiedy ten samo kod wstawilem ONKeyPress pod Button
to dziala bez problemu. ja nie wiem

0

#13 powinien wystarczyć bo to kod entera a wątpię, żeby #10 (czyli przejście do nowej lini) też było wysyłane

0

faktycznie wysylany jest tylko Enter.
ALe czemu podpiecie powyzszego kodu dziala pod button
a nie pod forme ?

0
masterO napisał(a)

faktycznie wysylany jest tylko Enter.
ALe czemu podpiecie powyzszego kodu dziala pod button
a nie pod forme ?

Trzeba ustawić KeyPreview na True

0

A co robi KeyPreview ? musze wyczaic.

0
masterO napisał(a)

A co robi KeyPreview ? musze wyczaic.

najprościej nacisnąć F1 albo do googla wpisać i tam wszystko jest

0

wow to jest niezłe, ze jakby podgladalo na klawisze gdziekolwiek bym nie wcisnal :] w helpie mam Key = Key_F1 a powinno byc Key = vk_F1
ale ogolnie F1 pomaga

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