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 19-01-2004
Delphos Delphos is offline
Miembro
 
Registrado: jun 2003
Ubicación: Valencia (España)
Posts: 45
Poder: 0
Delphos Va por buen camino
Pregunta tonta

Hola foro

Porque me dice que necesito un ordinal en este procedimiento y lo de incompatible tipos integer y string

Procedure NumeroMes(nombre:String);
begin
Case (nombre) of
'ENERO' : MesActual := 1;
'FEBRERO' : MesActual := 2;
'MARZO' : MesActual := 3;
'ABRIL' : MesActual := 4;
'MAYO' : MesActual := 5;
'JUNIO' : MesActual := 6;
'JULIO' : MesActual := 7;
'AGOSTO' : MesActual := 8;
'SEPTIEMBRE' : MesActual := 9;
'OCTUBRE' : MesActual := 10;
'NOVIEMBRE' : MesActual := 11;
'DICIEMBRE' : MesActual := 12;
else
ShowMessage('Error en Mes Seleccionado');
end;

nombre contiene la seleccion de un comboBox y MesActual es una variable global de tipo integer

Pero, ¿No deberia de funcionar?

Salu2.
Responder Con Cita
  #2  
Antiguo 19-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por Delphos
Pero, ¿No deberia de funcionar?
No, ya que la sentencia case en Delphi no admite strings
Responder Con Cita
  #3  
Antiguo 19-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
A tu pregunta final, por lo que yo he visto es que sí debería de funcionar, pero dónde está el error, no lo sé. Y... a veces las preguntas que se piensan tontas son las más interesantes e inteligentes.
__________________
:)
Responder Con Cita
  #4  
Antiguo 19-01-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
No admite strings??? y porqué???
__________________
:)
Responder Con Cita
  #5  
Antiguo 19-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por DarkByte
A tu pregunta final, por lo que yo he visto es que sí debería de funcionar, pero dónde está el error, no lo sé.
Ahora ya sabes dónde

Cita:
Empezado por DarkByte
No admite strings??? y porqué???
Bueno, eso creo que deberías de preguntarselo a la gente de Borland
Responder Con Cita
  #6  
Antiguo 19-01-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por cadetill
Bueno, eso creo que deberías de preguntarselo a la gente de Borland
O a Niklaus Wirth; a fin de cuentas Delphi está basado en su lenguaje y el Pascal original sólo admite tipos ordinales para la sentencia case.

// Saludos
Responder Con Cita
  #7  
Antiguo 19-01-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y respecto a la pregunta original, si el combo tiene almacenados los meses en el orden natural entonces el procedimiento se puede hacer así
Código:
procedure NumeroMes(nombre:String);
begin
  if ComboBox.ItemIndex <> -1 then
    MesActual := ItemIndex + 1
  else
    ShowMessage('Error en Mes Seleccionado');
end;
// Saludos
Responder Con Cita
  #8  
Antiguo 19-01-2004
obiwuan obiwuan is offline
Miembro
 
Registrado: may 2003
Posts: 488
Poder: 22
obiwuan Va por buen camino
Y mucho mejor, si en lugar de usar un procedimiento se usa una función, la cual, debe devolver 0 para el caso en que se produzca un error y suponiendo, además, que el combobox tenga los meses ordenados:
Código:
function NumeroMes: integer;
begin
result :=  ComboBox.ItemIndex + 1
end;
mucho más simple que todo lo expuesto hasta ahora.

NOTA: Pasar como parámetro el nombre del mes es una tontería si éstos están almacenados en el comboBox. Mejor usar el ComboBox como variable general del módulo.
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 05:54:43.


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