var
tValor, tNumero: Integer;
tText :string;
begin
tTUni := TUniQuery.Create(nil);
tTUni.Connection := DBConexion.BaseDatos;
tText := 'TPT';
tValor := 1;
with Uniquery do
begin
Close;
SQL.Clear;
SQL.Add('SELECT MAX(SUBSTR(codigo,4))::integer + 1 AS numero FROM clientes');
SQL.Add(' WHERE LEFT(codigo,3) = :texto ');
ParamByName('texto').AsString := tText;
Open;
tNumero := FieldByName('numero').AsInteger;
if tNumero > 0 then
Edit1.Text := tText + FormatFloat( '#',(tNumero) )
else
Edit1.Text := tText + FormatFloat( '#',tValor );
end;
end;