Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Sumar con Checkbox (https://www.clubdelphi.com/foros/showthread.php?t=47874)

tazzmk 10-09-2007 04:00:48

Sumar con Checkbox
 
hola, se me ocurrio sumar usando checkbox

el formulario se usa
edit1
CheckBox1
CheckBox2
CheckBox3
Button1

• El boton es el que procesado todo

Al edit1 se le pone un numero y si se decea se le agrega otro numero el cual se le sumara al edit1

ejemplo:
se ingresa "2" al edit1, luego se marca el checkbox1, cuyo valor interno es de "2" al ejecutar el boton el resultado es de "4"

ejemplo 2:
se ingresa "5" al edit1, se marca los 3 checkbox cuyo valor del primer checbox es de "2", el segundo checkbox vale 4 y el tercer checkbox vale 8

entonces el resultado sera "19"

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
nro1,nro2,nro3,nro4,resultado:word;
begin
nro1:=strtoint(edit1.text);
nro2:=strtoint(checkbox1.text);
nro3:=strtoint(checkbox2.text);
nro4:=strtoint(checkbox3.text);
resultado:=nro1+nro2+nro3+nro4;

if CheckBox1.Cheked Then
2+edit1
Else if CheckBox2.Cheked Then
4+edit1
Else if CheckBox3.Cheked Then
8+edit1

mostrar.caption:='El resultado es = '+inttostr(resultado);
end;

Saludos

Delphius 10-09-2007 04:45:30

Hola tazzmk,
¿Y cual es tu duda?
Acabo de abrir lo que adjuntas y veo que solo te limitaste a hacer la interfaz.
No lo tomes a mal, pero con mostrar la interfaz y no haber expuesto cual es tu problema... llama a una invitación del tipo "Hazme la tarea"

El código que expusiste te arroja un error, debido a que estás intentando sumar un integer a un string y no estás asignando dicha operación a ninguna variable.

Entiendo que recién te inicias... dime. ¿Probaste de otra manera?
En donde, o en que aspecto te confundes, No es complicado hacer lo pides... La lógica que estuviste aplicando no está tan mal... abría que pulir algunas cosas nada más.

Si quieres te ayudo. Dime si lograste avanzar en algo...
¿Dale?

Saludos,

tazzmk 10-09-2007 05:14:34

hola puse el interfaz para que se entendiera mejor la idea, no puse el codigo hay, para que no tenga problemas para compilar.

mi problema radica en el checkbox, como le asigno un numero interno y luego se pueda combinar con el edit1.

saludos

Delphius 10-09-2007 05:21:50

Todo componente tiene entre sus propiedades una que se denomina Tag. No tiene uso específico y está para que cada quien lo use a su antojo.
Esta propiedad es de tipo integer.

Saludos,

tazzmk 10-09-2007 17:33:47

hola, eh provado de distintas forma el checkbox pero no me funciona

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
n1,n2,resultado:integer;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(CheckBox1.text);
n2:=2;
//para el primer checkbox
if n2.Checked Then
Begin n2+edit1 end
resultado:=n1+n2;
//muestra el resultado
mostrar.caption:='El resultado es = '+inttostr(resultado);
end;
end.

cuando el checkbox esta marcado deberia se agregarse como suma al edit.

Caral 10-09-2007 18:02:27

Hola
Revisa el archivo
Saludos

tazzmk 10-09-2007 18:45:14

muchas gracias "Caral" tu ejemplo me a resolvido muchas dudas

"eres un ser divino"

egostar 10-09-2007 19:44:46

Cita:

Empezado por tazzmk (Mensaje 229759)
muchas gracias "Caral" tu ejemplo me a resolvido muchas dudas

"eres un ser divino"

:eek::eek::eek:, Vaya había visto agradecimientos en el foro, pero como este, ninguno, sea pues amigo Carlos, buen inicio de semana.:D

Salud OS

Olenkaguilar 28-05-2013 22:22:29

subir archivo
 
Por favor, me encuentro en el mismo problema, alguíen seria tan amable de subir el archivo de Caral, no veo donde descargarlo o ah sido borrado

ecfisa 28-05-2013 22:50:44

Hola Olenkaguilar y bienvenido a Club Delphi :)

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Seguramente el amigo Caral haya eliminado el adjunto ya que son tantos los aportes realizados que se le sabe agotar el espacio disponible.

Aunque ignoro cuál fué el código que puso anteriormente Carlos, de este modo también te va a funcionar:
Código Delphi [-]
// Tus CheckBox se deben llamar: CheckBox1, CheckBox2 y CheckBox3
procedure TForm1.Button1Click(Sender: TObject);
var
  i, r: Integer;
  cp : TComponent;
begin
  if TryStrToInt(Edit1.Text,r) then
  begin
    for i:= 1 to 3 do
    begin
      cp := FindComponent('CheckBox'+IntToStr(i));
      if Assigned(cp) and TCheckBox(cp).Checked then
        r := r + StrToInt(TCheckBox(cp).Caption);
    end;
    ShowMessage(Format('El resultado es: %d',[r]));
  end;
end;
Si en alguna pasada Caral lee el hilo y recuerda o aún tiene la otra sugerencia, seguramente te pondrá en conocimiento de ella.

Saludos. :)

Olenkaguilar 29-05-2013 00:01:07

Hola Muchas gracias por responder, me marca el siguiente error al marcar cualquiera de los CheckBox:

'CheckBox1' is not a valid integer value.

ecfisa 29-05-2013 00:22:19

Cita:

Empezado por Olenkaguilar (Mensaje 461427)
Hola Muchas gracias por responder, me marca el siguiente error al marcar cualquiera de los CheckBox:

'CheckBox1' is not a valid integer value.

Hola.

¿ Y le asignaste los valores 2, 4 y 8 a las propiedades Caption de los respectivos TCheckBox como especifica tazzmk en el mensaje #1 ?
Cita:

Empezado por tazzmk (Mensaje 229582)
...
ejemplo 2:
se ingresa "5" al edit1, se marca los 3 checkbox cuyo valor del primer checbox es de "2", el segundo checkbox vale 4 y el tercer checkbox vale 8

entonces el resultado sera "19"
...



Saludos. :)

Olenkaguilar 29-05-2013 01:32:07

Si gracias va perfecto, eso es con números enteros, en caso de que los checkbox el caption sea números por ejemplo 0.1 0.25 0.78 ??
Eso sería todo muchas gracias :)

ecfisa 29-05-2013 01:56:20

Cita:

Empezado por Olenkaguilar (Mensaje 461435)
Si gracias va perfecto, eso es con números enteros, en caso de que los checkbox el caption sea números por ejemplo 0.1 0.25 0.78 ??
Eso sería todo muchas gracias :)

Hola.

Código Delphi [-]
...
var
  i  : Integer;
  r  : Double;
  cp : TComponent;
begin
  if TryStrToFloat(Edit1.Text, r) then
  begin
    for i:= 1 to 3 do
    begin
      cp := FindComponent('CheckBox'+IntToStr(i));
      if Assigned(cp) and TCheckBox(cp).Checked then
        r := r + StrToFloat(TCheckBox(cp).Caption)
    end;
    ShowMessage(FormatFloat('0.00', r))
  end
end;

Saludos. :)


La franja horaria es GMT +2. Ahora son las 18:58:12.

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