Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Ayuda con Edit (https://www.clubdelphi.com/foros/showthread.php?t=35441)

pecosita 11-09-2006 15:12:30

Ayuda con Edit
 
hola! quisiera saber como puedo hacerle: tengo 5 edits de los cuales solo puedo meter datos del 1 al 5 ahora bien que no permita al usuario si en el edit1 puso un numero (ejemplo 4) en los siguientes edits no se pueda poner ese numero (4), espero me entiendan y me ayuden gracias hasta pronto saludos

seoane 11-09-2006 15:48:42

Partimos de que tienes 5 edits (Edit1 ... Edit5) y que todos comienzan sin tener nada escrito. En el evento OnKeypress de cada uno coloca esto (sirve el mismo evento para todos).

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  s: string;
begin
  // Solo nos interesan las teclas del 1 al 5 y la de borrar
  if key in ['1'..'5',#8] then
  begin
    // Si queremos introducir un numero
    if Key in ['0'..'9'] then
      // Comprobamos que el edit esta vacio
      if Length((Sender as TEdit).Text) = 0 then
      begin
        s:= key;
        // Y comprobamos que no este en otro edit
        if (s = Edit1.Text) or (s = Edit2.Text) or
           (s = Edit3.Text) or (s = Edit4.Text) or
           (s = Edit5.Text) then Key:= #0; // Si ya esta en otro edit ignoramos la tecla
      end else
        Key:= #0; // Si no esta vacio ignoramos la tecla
  end else
    Key:= #0; // Si no es un numero o la tecla de borrar la ignoramos
end;

dec 11-09-2006 15:55:35

Hola,

Ahora mismo no puedo comprobarlo, pero, ¿es esto necesario?

Código Delphi [-]
if Key in ['0'..'9'] then
  {...}

¿No llegaría con la primera condición? Esto es...

Código Delphi [-]
if key in ['1'..'5'] then
  {...}

Pregunto... :D

seoane 11-09-2006 15:59:35

Primero, me acabo de fijar que estaba en el foro de C++ Builder y no en el de delphi :o , pero supongo que con los cambios apropiados .... Segundo la segunda comparación debería de ser:

Código Delphi [-]
if Key in ['1'..'5'] then

:o El "copiar y pegar" es lo que tiene. Y tercero si que es necesaria para diferenciar entre un numero y la tecla de borrar, de lo contrario esta ultima no funcionaria. Por que no se puede borrar nada si el edit esta vacío ;)

pecosita 13-09-2006 14:17:36

gracias
 
muchisimas gracias me ha servido de mucho y funciona exactamente como lo queria saludos hasta pronto


La franja horaria es GMT +2. Ahora son las 05:56:36.

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