Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   CASE/OF... (y la madre del cordero) (https://www.clubdelphi.com/foros/showthread.php?t=25195)

papulo 15-09-2005 10:33:23

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!!:confused:

dec 15-09-2005 10:59:08

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;

papulo 15-09-2005 12:14:01

Entonces, y esperando que sirva de precedente, ¡HE COMPRENDIDO LA AYUDA! UOOOOOOOOOO!!!!

No os imaginais lo feliz que me hace :D

Seguire implementado cosillas por aqui.

PD: Programar es incluso divertido...

rastafarey 15-09-2005 15:52:01

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.

papulo 15-09-2005 16:44:26

No te equivoques Rastarey, estoy a -25, aun me faltan 125 para llegar al nivel maestro :D

Solo hace un mes y tres semanas que estoy con DELPHI. Asi que lo que estoy aprendiendo es todo.

papulo 15-09-2005 17:09:10

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.

rastafarey 27-09-2005 15:51:17

Resp
 
Tienes razon.


La franja horaria es GMT +2. Ahora son las 12:25:05.

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