УРААА Проблема решена))) Заменили код на:
Код:
procedure TForm20.nom_eKeyPress(Sender: TObject; var Key: Char);
var seriya,nomer:string;
begin
if not (key in [#48..#57,#13,#08]) then key := #0;
begin
if key=#13 then
begin
if (length(ser1_e.Text)<2) or (length(nom_e.Text)<6) then
begin
showmessage('Заполните необходимые поля!');
end else
begin
if (length(ser2_e.Text)=0) then
begin
s1:=ser1_e.Text;
nom:=nom_e.Text;
label_seriya.Caption:=s1;
label_nomer.Caption:=nom;
end else
begin
s1:=ser1_e.Text;
s2:=ser2_e.Text;
nom:=nom_e.Text;
label_seriya.Caption:=s1+'-'+s2;
label_nomer.Caption:=nom;
end;
st1:=chr(39)+AnsiUpperCase(label_seriya.Caption)+chr(39);
st2:=chr(39)+AnsiUpperCase(label_nomer.Caption)+chr(39);
t.Active:=false; q.Close;
q.SQL.Text:='select ser, nom from tick where ser='+st1+' and nom='+st2;
t.StartTransaction; q.Open;
if q.IsEmpty then
begin
ShowMessage('Такого билета нет среди призовых.');
t.Rollback;
exit;
end else
q.SQL.Text:='select ser, nom from ticket_used where ser='+st1+' and nom='+st2;
t.Active:=false; q.Close;
t.StartTransaction; q.Open;
if not q.IsEmpty then
begin
ShowMessage('По этому билету уже получали подарок.');
t.Rollback;
exit;
end else
begin
t.Active:=false; q.Close;
q.SQL.Text:='select ser, nom from tick where ser='+st1+' and nom='+st2;
t.StartTransaction; q.Open;
mainf.label_ser.Caption:=q.FieldByName('ser').AsString;
mainf.label_nom.Caption:=q.FieldByName('nom').AsString;
seriya:=mainf.label_ser.Caption;
nomer:=mainf.label_nom.Caption;
mainf.ticket.Caption:=seriya+nomer;
form20.Close;
exit;
end;
end;
end;
begin
if key=#08 then
begin
if (length(nom_e.Text)=0) then
begin
ser2_e.SetFocus;
ser2_e.SelStart:=Length(ser2_e.Text);
end;
end;
end;
end;
end;