Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2006
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
De hecho no es Bush quien ganaria, sino Condolezza Rice. La razón tiene que ver con el hecho de que ambos arreglos, NoInvitar y Candidatos, están declarados contiguamente. Supongo, que el compilador los acomoda primero Candidatos y luego NoInvitados, es decir, que en memoria se ven así:

Código:
Candidatos[0]
Candidatos[1]
Candidatos[2]
NoInvitados[1]
NoInvitados[2]
NoInvitados[3]
Al tomar Cadidatos[5], el compilador simplemente "va" a la dirección de memoria que corresponde, que, como se ve, vendría siendo la de NoInvitados[3].

Si no se declara NoInvitados, entonces Candidatos[5], apuntará a cualquier cosa y posiblemente venga un Access Violation.

// Saludos
Responder Con Cita
  #2  
Antiguo 11-10-2006
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Poder: 22
axelbb Va por buen camino
No, Roman.

De hecho, si hacés la prueba exactamente como la describo, con 5 sale Bush (lo que pasa es que adrede lo hice así, donde una es [0..2] y la otra [1..3] para usar el Itemindex del ComboBox; bueno no sé si se entiende).

Y si en vez del ComboBox, ponés un Edit, y le vas dando cualquier valor, empiezan a salir caracteres extraños. Accede a cualquier cosa de la memoria, pero no produce error de ningún tipo.

¿Les cuento cómo lo encontré? Viene un cliente y me dice que en un listado (hecho con QReport, donde en beforeprint le adjudico valores a algunos rótulos desde código), le sale para un producto determinado una característica imposible, por ejemplo, en Talle='Blanco'. Busqué y busqué, no tenía ningún sentido... Hasta que me acordé del {$R+}, que nunca había entendido para qué estaba (supuestamente, no hacía falta controlar rangos!, al menos para los que venimos de lenguajes más amables). ¡Ahora sé!
Responder Con Cita
  #3  
Antiguo 11-10-2006
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 axelbb
No, Roman.
Es sólo que conté mal, la explicación es correcta. Yo puse directamente Candidatos[5] pero el 5 en tu ComboBoxen realidad corresponde al ItemIndex 4.

// Saludos
Responder Con Cita
  #4  
Antiguo 12-10-2006
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Poder: 22
axelbb Va por buen camino
Si, eso.

Usé el itemindex en lugar de un StrToInt(ComboBox.Text) para acceder al elemento.

Pero no me digan que no es una divertida curiosidad que le puede sacar canas a cualquiera, ¿no?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Por culpa de Coderush?? taita Varios 15 27-02-2007 01:11:10
Conferencia de George 2V Bush Sasuke_Cub Humor 0 28-05-2006 04:02:15
Premio novela corta Investment Humor 2 24-02-2005 14:23:14
...por culpa de quien... Jure Humor 2 25-08-2004 20:13:17
La PC de George Bush delphi.com.ar Humor 1 14-06-2004 18:21:53


La franja horaria es GMT +2. Ahora son las 11:04:14.


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