Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Boolean automático (https://www.clubdelphi.com/foros/showthread.php?t=77628)

José Luis Garcí 13-02-2012 19:24:45

Boolean automático
 
Hola compañeros, resulta que he leído en un par de ocasiones que se puede hacer que cuando usamos boolean, si esta en true al llamarla por código (es la parte que no encuentro) se pase a false.

Como siempre muchas Gracias y un saludo.

Caral 13-02-2012 19:28:03

Hola
Amigo, hoy no tienes muchas ganas de escribir por lo visto.:D
Que parte no entiendes ?.
Es algun componente ?.
No termino de entender.
Saludos

José Luis Garcí 13-02-2012 19:33:32

Hola Carlos, no es que no tenga ganas de escribir, no no se trata de componentes, es simplemente, curiosidad, se que puedo hacer un a función que lo haga, pasandole un parametro boolean devuelva el contrario, pero se trata de saber si existe y aprender un poco más.

roman 13-02-2012 19:36:32

Yo no entiendo la pregunta. Tómate un tiempo y vuelve a formularla.

// Saludos

Caral 13-02-2012 19:37:02

Hola
Ah bueno, entonces me apunto a aprender.
Saludos
PD: Gusto en saludarte.

Delphius 13-02-2012 19:54:17

Déjame ver si entiendo.

Tu tienes una variable boolean:
Código Delphi [-]
var mi_var: boolean;

Y al parecer, te preguntas, cómo, por algún "truco" al hacer un simple:

Código Delphi [-]
algo := mi_var;

o algo como:

Código Delphi [-]
if mi_var then ....

De forma automática, ¿cambie a su negado?

Si es así sinceramente no tengo ni la más remota idea de si es posible y existe. Yo no vislumbro algo más simple como hacer uso de una función:

Código Delphi [-]
function UseAndNegate(var Variable: boolean): boolean;
begin
result := Variable;
Variable := NOT Variable;
end;

E invocar a dicha función cada vez que sea necesario.

Saludos,

José Luis Garcí 13-02-2012 19:54:54

Vamos a ve si con un poco de código me entendéis

Normalmente haríamos
Código Delphi [-]
Var VarBElBoolean:Boolean;
begin
   
   VarBElBoolean:=true;
   //O con un CheckBox
  if CheckBox1.checked=false then  Checkbox1.checked:=true
                                             else    Checkbox1.checked:=False;
end; 
end;

Lo que yo recuerdo haber visto es

Código Delphi [-]
Var VarBElBoolean:Boolean;
begin
   VarBElBoolean;
   //O con un CheckBox
  Checkbox1.checked;
end; 

{Lo que quiere decir si VarBElBolean es true lo pone en false y viceversa}
end;

Lo que no estoy seguro ya es si después de varBElBolean va alguna propiedad o función integrada al ide o al propio método que lo permita.

Aclara que no estoy seguro de que lo viese en delphi, pudo ser en C o VisaulBasic.

José Luis Garcí 13-02-2012 19:57:51

Delphius, por ahí van los tiros, se que lo puedo hacer con una función, pero quiero asegurarme, que no este implantado en el lenguaje o el ide.
La verdad es que recuerdo que en c tiene algunas ventajeas a la hora de programar comparado con el Delphi como el incremento
Código Delphi [-]
Variable++; //es igual a Variable:=Variable+1;

roman 13-02-2012 19:58:34

Pues tal como dice Delphius:

Código Delphi [-]
Variable := not Variable;

// Saludos

Delphius 13-02-2012 20:00:38

Pues, yo tampoco sigo sin entender amigo, aún después de haber expuesto ese código. :(
Lo siento.

Como he dicho, empleando esa función que puse se puede conseguir tanto leer el valor actual, como así también negarlo.

Quizá si nos comentas cual es el objetivo real que te persigues para tu aplicación (si es que la intención es llevar ese supuesto "truco" a la práctica) podríamos proponerte alternativas.

Que yo sepa no hay otra forma de alterar un boolean que negarlo:
Código Delphi [-]
mi_var := NOT mi_var;

Saludos,

José Luis Garcí 13-02-2012 20:15:10

sólo se trata de aclárame si existía tal posibilidad. Gracias a Todos.

javier7ar 13-02-2012 22:31:16

Cita:

Empezado por José Luis Garcí (Mensaje 425048)
Vamos a ve si con un poco de código me entendéis

Normalmente haríamos
Código Delphi [-]
Var VarBElBoolean:Boolean;
begin
   
   VarBElBoolean:=true;
   //O con un CheckBox
  if CheckBox1.checked=false then  Checkbox1.checked:=true
                                             else    Checkbox1.checked:=False;
end; 
end;

Normalmente yo haria:
Código Delphi [-]
CheckBox1.checked:=not CheckBox1.checked

No es necesario preguntar si una variable es igual a true solo tienes que preguntar por el valor que tiene esa variable:
Código Delphi [-]
if (variable = true)...
// quedaria:
if (variable)...

// y para el caso false
if (variable = false)...
// quedaria:
if not(variable)...


La franja horaria es GMT +2. Ahora son las 02:09:07.

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