Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   no me detecta teclado numero (https://www.clubdelphi.com/foros/showthread.php?t=74417)

Rofocale 17-06-2011 20:00:20

no me detecta teclado numero
 
hola a todos una pregunta en el programa que estoy haciendo solo me detecta el teclado numero del lado derecho al escribir algun numero en un text edit.. pero los numeros de la parte superior de las teclas del alfabeto no me las detecta cuando las aprieto no funcionan.. y si estoy en una laptop solo tengo los numeros encima de las teclas del alfabeto y estas no me funcionan y ya no puedo escribir los numeros.. a que se debe ? como lo puedo solucionar muchas gracias

Rofocale 17-06-2011 21:22:18

me olvidaba uso este codigo para poder ingresar los numeros bueno los decimales en el edit pero como les mencione los numeros de arriba no funcionan a ver si me pueden ayudar
Código Delphi [-]
Var i: Integer;
    pos: Cardinal;
begin
   i:=0;
//Permite que desepues de se digite el . solo se puedan ingresar 2 Registros Mas
  if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then  Key := #0;
 // cambia el punto decimal por coma
  if key = '.' then key := '.';
  //controlar entrada una sola coma
  for i := 1 to length(txtPrecio1.Text) do
    if ( copy(txtPrecio1.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then  Key := #0;

 with Sender as TcxTextEdit do
  begin
   pos := System.Pos('.', Text);
   if not LongBool(Pos) then Dec(Pos);
   Properties.ReadOnly := not (Key in ['0'..'9', '.', #8]) or
               (Pos <> $FFFFFFFF) and (Key = '.') or
               ((Key <> #8) and (Pos < (SelStart - 1)));
  end;

newtron 18-06-2011 08:34:39

Hola.

¿Has probado a no usar esa función a ver si es de ella o de otra cosa?

Saludos

ecfisa 18-06-2011 19:56:50

Hola Rofocale.

No conozco el componente TcxTextEdit, y este comentario:
Código Delphi [-]
//Permite que desepues de se digite el . solo se puedan ingresar 2 Registros Mas
Me hace dudar si hago bién al suponer que queres limitar el ingreso a dos caracteres luego del separador decimal. Si es eso, fijate si podés adaptar este código para el TcxTextEdit:
Código Delphi [-]
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
  PosDe: Integer;  // posicion separador decimal
  LenDe: Integer;  // nro de caracteres a partir del separador
begin
  if Key = '.' then Key:= ',';             // respetando tu código.
  if not(Key in ['0'..'9', #8, ',']) then  // no es caracter válido
  begin
    MessageBeep(MB_ICONERROR);
    Key:= #0
  end
  else
  begin
    PosDe:= Pos(',', TEdit(Sender).Text);  // posición separador
    if PosDe > 0 then
    begin
      LenDe:= Length(TEdit(Sender).Text) - PosDe; // nro caracteres decimales
      if(LenDe > 1) and (Key in ['0'..'9']) and   // evaluar nro caracteres decimales
        (TEdit(Sender).SelStart > PosDe-1) then
       Key:= #0;
    end;
  end;
end;
Pienso que cambiando los cast TEdit(Sender) por TcxTextEdit(Sender) debería funcionar si este último tiene la propiedad SelStart.

Saludos.

oesqueda 20-06-2011 23:00:14

si tienes los componentes de devexpress porque no usas un TcxMaskEdit o el tcxCurrencyEdit


La franja horaria es GMT +2. Ahora son las 06:10:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi