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 16-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Inicialización de variables booleanas

Hola a todos, en variables de tipo string y de tipo integer siempre las inicializo con los valores '' y a 0 respectivamente pero en cadenas booleanas no tengo costumbre, ¿es también necesario o siempre tienen el valor False por defecto?
Gracias.
Responder Con Cita
  #2  
Antiguo 16-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por noob Ver Mensaje
Hola a todos, en variables de tipo string y de tipo integer siempre las inicializo con los valores '' y a 0 respectivamente pero en cadenas booleanas no tengo costumbre, ¿es también necesario o siempre tienen el valor False por defecto?
Gracias.
Hola noob, supongo que querías decir "variables" en vez de "cadenas". Si tu variable la defines como global, si se inicializa en False pero si es una variable local no se inicializa y toma el valor de True, ahí si es necesario inicializar si necesitas que este en False.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 16-12-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Sí, se me fue, quería decir variables booleanas
Gracias pues pensaba que siempre se inicializaba en False fuera variable global o no.
Salu2.
Responder Con Cita
  #4  
Antiguo 16-12-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Con mis diez pesetas de "informática" creo que es bien inicializar las variables, sean locales o globales, lo que no quiere decir que tenga que hacerse con valores constantes, sino que una variable puede inicializarse con el valor retornado por una función, etc. En todo caso, me ha sorprendido, porque, yo esperaba lo que noob, esto es, que las variables "booleanas" se inicializaran con un valor "Falso", y, efectivamente, parece que no es así. O sea, como bien ha dicho Caro:

Código Delphi [-]
var
  b: boolean;

procedure TForm1.Button1Click(Sender: TObject);
begin

  (* ... *)

  if b then
    ShowMessage('b = True')
  else
    ShowMessage('b = False');

  (* ... *)

end;

Lo anterior mostraría el mensaje "b = True", mientras que esto otro:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  b: boolean;
begin

  (* ... *)

  if b then
    ShowMessage('b = True')
  else
    ShowMessage('b = False');


  (* ... *)

end;

Mostraría por el contrario el mensaje "b = False". Ahora bien, ¿por qué es esto así? ¿Alguien tiene alguna idea? ¿Quizá es un comportamiento que puede cambiarse mediante alguna directiva de compilación, si puede llamarse así?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 16-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por dec Ver Mensaje
O sea, como bien ha dicho Caro:
Pues después en la explicación lo dices al contrario que Caro, ¿en qué quedamos?

Creo que tu variable "global", es diferente a lo dicho por Caro, quizás ella se refiera a una variable global dentro de una clase... no sé no adivino aún los pensamientos de cada uno... aunque estoy en ello, estoy en ello

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 16-12-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo juraría que he dicho lo mismo que Caro, sólo que poniendo el código que lo ejemplifica. Resumiendo: las variables "booleanas" "globales" tienen un valor "verdadero" por defecto, sin inicializar por nuestra parte, mientras que las mismas variables, pero, "locales", se inicializan "solas" como "falsas".

No sé si ahora sí que la he terminado de liar.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 16-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Yo juraría que he dicho lo mismo que Caro, sólo que poniendo el código que lo ejemplifica. Resumiendo: las variables "booleanas" "globales" tienen un valor "verdadero" por defecto, sin inicializar por nuestra parte, mientras que las mismas variables, pero, "locales", se inicializan "solas" como "falsas".
Hola Dec, la verdad es que estas diciendo lo contrario, en las pruebas que hice la variable Boolean global, ya sea dentro de la clase (private o public) o definiendolo en Var se inicializa con False, que yo sepa las variables globales son inicializadas, por eso si te defines una variable Integer y ves su valor veras que es 0, pero si la defines como local veras que su valor es cualquier cosa (no se inicializa), por eso supongo, como el tipo Boolean solo toma dos valores y en la local no se inicializa, por eso tiene el valor de True.

Esta ha sido mi pruebita:

Código Delphi [-]
 private
    { Private declarations }
    //Estado : Boolean; //Definido aquí nos da False
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  //Estado : Boolean; //Definido aquí nos da también False
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
 Estado : Boolean; //Definido aquí nos da True
begin
 if Estado then
  Showmessage('True')
 else
  Showmessage('False');
end;

Ahora nose porque a ti te sale al reves.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 16-12-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola a todos!

Un gusto iniciar el día saludándolos.

Aquí explico algo sobre el tema que se trata: http://www.clubdelphi.com/foros/show...5&postcount=29

Espero sea de utilidad y sus comentarios en caso de generar más dudas.

Un abrazo variable.

Al González.

Última edición por Al González fecha: 16-12-2008 a las 14:42:16.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
inicializacion de vector de cadenas personilla Varios 3 26-02-2007 00:41:35
Inicializacion de variables xerkan OOP 3 24-05-2004 16:21:48
error de inicializacion en una BD BDE viajero2015 Conexión con bases de datos 1 27-01-2004 22:17:45
Frames y inicialización de variables __cadetill OOP 6 25-11-2003 18:22:54
Problemas de Inicialización de un componente Angel OOP 16 24-07-2003 15:32:40


La franja horaria es GMT +2. Ahora son las 22:18:25.


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