Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   elegir y concatenar en Delphi 7.0 (https://www.clubdelphi.com/foros/showthread.php?t=46393)

arespremium 31-07-2007 01:17:06

elegir y concatenar en Delphi 7.0
 
Hola me plantie un ejercicio sencillo en Delphi 7.0
en el cual se usa los formularios

al seleccionar un check este muestre el valor donde esta el label al presionar aceptar

si se selecciona el check SI, solo mostrara SI
si se selecciona el check NO, solo se mostrara NO
si se seleccion ambos, mostrara los dos.

Button1
CheckBox1
CheckBox2
Label1

Podria usar la sentencia IF, pero no se como usarla con un CheckBox en Borland 7.0

Saludos

Ver imagen_1

Ver imagen_2

roman 31-07-2007 01:23:21

Una posibilidad:

Código Delphi [-]
if CheckBox1.Checked and CheckBox2.Checked then
  Label1.Caption := 'Sí y No'
else if CheckBox1.Checked then
  Label1.Caption := 'Sí'
else if CheckBox2.Checked then
  Label1.Caption := 'No'
else
  Label1.Caption := '';

// Saludos

Caral 31-07-2007 01:26:11

Hola
Me parece asi:
Código Delphi [-]
  if CheckBox1.Checked = True then
   Begin
   Label1.Caption:= 'SI';
   end;
  if CheckBox2.Checked = True then
   Begin
    Label1.Caption:= 'NO';
   end;
   if CheckBox1.Checked and CheckBox2.Checked = True then
   Begin
   Label1.Caption:= 'SI y NO';
Supongo que funcionara, ultimamente no doy una.
Saludos

Caral 31-07-2007 01:27:35

Hola
Mucho mas simple y mejor tu codigo Roman.
Saludos

roman 31-07-2007 01:31:33

Pues es prácticamente lo mismo, sólo que comparar un booleano contra true o false es redundante.

// Saludos

Caral 31-07-2007 01:33:23

Hola
Todos los dias se aprende, siempre los he puesto True o False, no se de donde lo saque.
Saludos

roman 31-07-2007 01:38:00

A ver, la sintaxis de un condicional es:

Código:

IF valor booleano THEN
  sentencia

Es decir, no necesariamente se trata de una igualdad entre dos valores, simplemente una expresión que sea cierta o false. Por ello, como CheckBox.Checked es un valor booleano, es todo lo que se requiere.

Cuando ponemos

Código:

IF P = Q THEN
  sentencia

se comparan P y Q y el IF recibe el resultado (true o false).

// Saludos

Caral 31-07-2007 01:43:05

Hola
Ahora lo entiendo, hice una prueba y funciona perfectamente, el problema lo tenia en el concepto, sobre todo en cuanto a no estar chequeado.
Lo ponia asi:
Código Delphi [-]
   if CheckBox1.Checked = False then
   Begin
   ADOQuery2.Close;
   ADOQuery3.Close;
Ahora asi:
Código Delphi [-]
   if not CheckBox1.Checked then
   Begin
   ADOQuery2.Close;
   ADOQuery3.Close;
Casi lo mismo, verdad :D
Saludos

AzidRain 31-07-2007 03:05:53

Por cierto que tambien se pueden asigar comparaciones a un booleano:

Código Delphi [-]
  var Mayorquecero:Boolean;
     i:integer;

Begin
  I:=5;
  MayorqueCero := ( i > 0)

 If MayorqueCero Then ShowMessage('si es mayor que cero');

end;

Mick 31-07-2007 10:43:03

Me aburro un pelin asi que propongo otra forma de hacerlo, mas escuenta y que utiliza menos codigo una vez compilado (y sin compilar). Eso si, un poco mas ofuscado:

Código:

const
 messages: array [0..3] of string= ( '' , 'Sí' , 'No', 'Sí y No' );
begin
 Label1.Caption:= messages[Integer(CheckBox1.Checked) + (Integer(CheckBox2.Checked) SHL 1)];
end;

O esta forma que en realidad es identica a la anterior:

Código:

const
 messages: array [0..1] of array [0..1] of string= (  ('' , 'No') , ('Sí', 'Sí y No') );
begin
 Label1.Caption:= messages[Integer(CheckBox1.Checked)][Integer(CheckBox2.Checked)];
end;

Saludos


La franja horaria es GMT +2. Ahora son las 10:40:31.

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