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
Encuentra los 5 (o mas) errores...

Primero un C&P

Código Delphi [-]
 procedure TFiller.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 begin
 case Key of
 VK_F5 :
          begin
             case iStatus of
             0 : exit;
             1 : RadioButton2_Init;
             else Lanzar_Consulta;
          end;
 VK_ESCAPE :
          begin
             case iStatus of
             0,1 : Filler.Close;
             10,50 :
                   begin
                      iStatus := 1;Lanzar_Consulta;;
                   end
                   else
                   begin
                      iStatus := (iStatus - 1);Lanzar_Consulta;
                   end;
          end
 VK_F2 :
          begin
             if iStatus=1 then
             begin
             iStatus := 10;
             Lanzar_Consulta;
             end;
          end
 VK_F3 :
          begin
             if iStatus=1 then
             begin
             iStatus := 50;
             Lanzar_Consulta;
             end;
          end
 VK_RETURN :
          begin
             case iStatus of
             11,52: exit;
             10,50..51 : begin
                          iStatus := (iStatus+1);
                          Lanzar_Consulta;
                          end;
          end
 end;

Despues, la pregunta:

¿Que falla exactamente? Me jugaria un testiculo (hipoteticamente hablando) a que es de sintaxis, pero la idea es correcta.

Ya direis...
Responder Con Cita
  #2  
Antiguo 15-09-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por papulo
¿Que falla exactamente? Me jugaria un testiculo
¿Qué es lo que sucede?... ¿No compila?... ¿Produce un error?.. ¿No hace lo que querés?... ¿A cuánto se cotiza el testículo en el mercado ilegal de órganos?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 15-09-2005
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
Es realmente evidente. Y también lo será para tí en cuanto te pongas a revisar la sintaxis de la sentencia case (un error por cada uno).

// Saludos
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
Resp

A todos los cases mas internos le falta un end; Aunque no entiendo la pregunta.

Creo que eso no hay preguntarlo ya qu ele compilador te dice que tienes ese error.

Osea no entiendo por que la pregunta.
__________________
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
Talking

A ver, por partes.

Ante todo gracias por responder.

1º EL haberme levantado a las 6 de la mañana para presentar unas practicas antes del trabajo, me han dejado bastante grogui para el resto del dia, maxime con la paliza fisica que me di ayer entrenando.

2º La empanada ha derivado en que, por ejemplo, iniciara todos los Statements con
Código Delphi [-]
begin...end
Lo cual ya lo he solucionado.

3º Estoy mirando la ayuda de "case statements" a ver que saco en claro de ello. Esta fallandome lo siguiente:
Código Delphi [-]
    VK_F2 : if iStatus=1 then
               begin
                 iStatus := 10;
                 Lanzar_Consulta;
               end;

Donde el compilador me dice "[Error] mainform.pas(521): For loop control variable must be simple local variable"


4º A modo de pequeña bio, comentaros, que el tema de la programacion lo llevaba a nivel 0, pero 0 de verdad. En la entrevista de trabajo, cuando me lo pregunto, le dije que en la facultad, yo siempre me ponia con alguno de modulo, yo diseñaba en el papel y las ideas de los algoritmos, para que luego el colega implementara a nivel de programacion. De DELPHI (y cualquier otro lenguaje) 0 de 0. Aun asi, todos los dias me estoy machacando con este lenguaje, y la programacion en general, para poder mejorar lo mas rapido posible. Doy las gracias porque me resulta divertido, ameno y excitante el trabajo que tengo.
Y aunque no hace ni 2 meses que estoy trabajando aqui, me busco la vida como puedo. La ayuda general me "ayuda", si no googleo o bien recurro a vuestra experiencia, que por aqui veo que sobra, pero mi intencion es aprender, aprender y aprender.
Pero el hecho de que las postee aqui, no implica que me quede de brazos cruzado esperando a que las solventeis y yo me quede tan pancho. En cuanto escriba esta respuesta, me ire a la ayuda, a ver que significa lo que me dice el compilador, a ver si lo entiendo (aunque por suerte, ingles si que se) y a ver si en ultima instancia, lo resuelvo antes de que vosotros me deis una solucion.

PD: Aun asi, me encanta leeros y ver que hay gente activa por aqui. A ver cuando puedo ayudar yo, pero necesitare tiempo...

Hasta otra!!!

Última edición por papulo fecha: 15-09-2005 a las 16:40:57.
Responder Con Cita
  #6  
Antiguo 15-09-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Entiendo la intensión de Roman, la verdad es que los errores son bastante claros, pero bueno. De cierta manera hubiera respondido algo así como "bastante claros los errores, el compilador te los dice".

En fin, dadas las circunstancias daré mi respuesta: las VK no creo que las puedas usar como condición de un case, de ahí el error que mencionas. Segundo, para cada case incias con begin y end pero te falta el punto y coma.

Para la próxima vez, revisa muy bien tu código y la ayuda que delphi te proporciona. Estoy seguro que muchas tus dudas las podrás resolver si presionas F1 en Delphi, si eso no te lo soluciona, pues una búsqueda en la red o en los foros estoy seguro que te ayuda. Y si de plano sigues con la duda, entonces puedes colocar un nuevo hilo con tu pregunta específica.

Supongo que ya leíste la guia de estilo del foro.

Un saludo
__________________

Responder Con Cita
  #7  
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
Gracias por los consejos.

Si que lei la guia de estilo del foro, realmente son muy utiles para facilitar la comunicacion dentro de los mismo.

La intencion de Roman la entendi desde el principio, y si tengo dudas, primero ojeo la ayuda "F1", pero todavia estoy demasiado verde, como para que me resulte todo lo util que en realidad sera. Estoy aprendiendo la base, demasiados conceptos cada dia, los que se repiten del dia anterior, el grado de empanamiento que pueda tener (hoy alcanzaba cotas maximas).

Conforme mas soltura coja, mas extrapole el codigo y mejor lo comprenda, mejor podre aprovecharme de la ayuda de los demas (hablo de usar la busqueda avanzada, no de gorronear conocimientos), pero por ahora necesito, al menos cuando no logro comprender la situacion, que me lo den mascadito, como a un niño pequeño, para comprenderlo bien y poderlo asimilar correctamente. Luego ya me encargare yo de ir aumentando esa base y profundizando en las posibilidades que me brinden mi habilidad y mi perseverancia.

Y disculpad mi ausencia de tildes, pero este teclado esta cascado y no me deja escribirlas. Cuando escriba desde casa ya veran que si va bien.
Responder Con Cita
  #8  
Antiguo 15-09-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Luego nos cuentas si resolviste lo del "for loop control". Y si no, pues ya sabes que aquí abrá gente que este dispuesta.
__________________

Responder Con Cita
  #9  
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
¡¡RESUELTO!! Aunque la ayuda me ha servido lo mismo que si estuviera en Arameo, lo que he visto es que comenzaba el statement con un condicional, y va ser que eso no le gustaba, asi que con este sencillo retoque
Código Delphi [-]
 VK_F2 : begin
            if iStatus=1 then
            begin
              iStatus := 10;
              Lanzar_Consulta;
            end;
         end;

Ya lo he hechado andar, ya que si me permite usar el if dentro del begin.
Responder Con Cita
  #10  
Antiguo 15-09-2005
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
A ver, a ver. Discúlpame por favor papulo. Realmente no era mi intención ser irónico. Simplemente pensé que al ver la ayuda te darías cuenta de cuál era el error. Me percato de que no lo dije en términos correctos y para mitigar un poco la mala impresión te explico aquí lo que sucede:

Cada etiqueta del case puede omitir begin..end si hay una sóla sentencia pero si hay más de una debes ponerlos:

Código Delphi [-]
case ... of

  etiqueta:
  begin
    ...
  end;

end;

Pero cada case debe siempre terminar con un end.

Así que, cuando tú pones

Código Delphi [-]
case Key of
 VK_F5 :
          begin
             case iStatus of
             0 : exit;
             1 : RadioButton2_Init;
             else Lanzar_Consulta;
          end // <-- este end corresponde al case interior

          // falta el end de la etiqueta VK_F5
 VK_ESCAPE :

   ...

El end que aparentemente corresponde a la etiqueta (por laindentación dada) realmente corresponde al case anidado y por tanto falta un end.

Como esto sucede en las cinco etiquetas del case externo por ello son cinco errores.

// Saludos y disculpas
Responder Con Cita
  #11  
Antiguo 16-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
Wink

Gracias Roman. Para nada me tome a mal tu comentario, solamente supuse que creias que mi nivel era mayor, y que en la ayuda lo veria de forma evidente, pero aun estoy aprendiendo, y de una forma bastante autodidacta, que me hace sufrir como un burro.

Gracias tambien a todos por la ayuda y las aclaraciones.
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 00:33:23.


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