Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
CASE/OF... (y la madre del cordero)

Como mi experiencia con DELPHI, calculada en un intervalo de 0 a 100, donde 0 es nada y 100 todo, calculo que estoy a un -25 todavia, es por eso que aun inundare el foro con mis preguntitas de parvulario, pero no por ello menos importantes.

El caso es que estoy intentando que con la instruccion CASE/OF lo siguiente:
Código Delphi [-]
 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
 begin
  if key = #13 then
  case Edit1.Text of
  VAR : ShowMessage('VAR`');
  INT : ShowMessage('INT');
  else ShowMessage('Escribe mejor, chavalote');}
 end;
 
 end.

A destacar, que en la ayuda pone que CASE/OF no se puede usar con strings.

¿Es correcto lo que he leido, y por ende, absurdo lo que estoy intentando, al menos por este camino?

Suegerencias para hacer lo mismo, seran bienvenidas.

Que pasen un buen dia, chicos!!
Responder Con Cita
  #2  
Antiguo 15-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.108
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El caso es que "case .. of" solo puede utilizarse con tipos ordinales o expresiones de este tipo. En la ayuda de Delphi sobre los "Case statements" se dice expresamente que los tipos "string" no son válidos. Creo que tal vez en tu caso fuera bastante con hacer uso de "If .. Else", aunque fuera cuestión de anidar algunos de ellos.

Para más información te remito a la ayuda de Delphi, al apartado que he mencionado. Fíjate en la variable "Key" del método que has referido arriba. Es de tipo "Char" y este un tipo ordinal. Podría codificarse algo como esto sin problemas:

Código Delphi [-]
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
 begin
   case Key of
     'a': ShowMessage('Pulsaste la A');
     'b': ShowMessage('Pulsaste la C');
   else
     ShowMessage('Ni la A ni la B pulsaste');
   end;
 end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 15-09-2005 a las 11:01:05. Razón: Corrección del texto.
Responder Con Cita
  #3  
Antiguo 15-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Entonces, y esperando que sirva de precedente, ¡HE COMPRENDIDO LA AYUDA! UOOOOOOOOOO!!!!

No os imaginais lo feliz que me hace

Seguire implementado cosillas por aqui.

PD: Programar es incluso divertido...
Responder Con Cita
  #4  
Antiguo 15-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  If Key = #13 Then Begin
    If CompareText(Edit1.Text, 'VAR') Then
       ShowMessage('VAR')
    Else If CompareText(Edit1.Text, 'INT') Then
       ShowMessage('INT')
    Else
       ShowMessage('Escribe mejor, chavalote')
  End;
end;

Ha y una cosa mas creo que eres una de las personas que he oido que sabe mas delphi por que en el intervalo que dices yo tengo como 0,2 de 100 o quisas menos y veras que uso delphi como hace 12 años y cada dia aprendo algo nuevo y en ese momento me entero que cada dia se menos o que no se nada.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #5  
Antiguo 15-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
No te equivoques Rastarey, estoy a -25, aun me faltan 125 para llegar al nivel maestro

Solo hace un mes y tres semanas que estoy con DELPHI. Asi que lo que estoy aprendiendo es todo.
Responder Con Cita
  #6  
Antiguo 15-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Talking

Cita:
Empezado por rastafarey
Código Delphi [-]
  procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  begin
    If Key = #13 Then Begin
      If CompareText(Edit1.Text, 'VAR') = 0 Then
         ShowMessage('VAR')
      Else If CompareText(Edit1.Text, 'INT') = 0 Then
         ShowMessage('INT')
      Else
         ShowMessage('Escribe mejor, chavalote')
    End;
  end;
(...insertar aqui una percepcion erronea sobre mi nivel de DELPHI. Estoy muy PezQueñin todavia... ¡y lo que me queda!)
Solo matizar, que faltaba igualar los if a 0, para que tuvieran una condicion que cumplirse y asi poder ejecutar las instrucciones anidadas.

PD: Si utilizo mal algun termino, sientanse libres de corregirme que tomare buena nota.
Responder Con Cita
  #7  
Antiguo 27-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Tienes razon.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:26:01.


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
Copyright 1996-2007 Club Delphi