Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo compartiría el evento OnKeyPress de los 6 edit, para evitar las comprobaciones.

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (key in [#8,'0'..'9','+','-']) then
 key:=#0;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #2  
Antiguo 21-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Y me quedé pensando...

Se puede simplificar aún más:
Código Delphi [-]
var
  Cont: Integer = 0;
  Prom: Double = 0;

procedure TForm1.EditExit(Sender: TObject);
var
  cd: Double;
begin
  if TryStrToFloat(TEdit(Sender).Text, cd) then
  begin
    Prom:= Prom + cd;
    Inc(Cont);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Prom > 0 then
    ShowMessage(Format('El promedio es: %8.2f',[Prom/Cont]))
  else
    ShowMessage('Nada que promediar');
  Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit6.Clear;
  Prom:= 0;
  Cont:= 0;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 21-05-2012
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 ecfisa Ver Mensaje
Y me quedé pensando...
Ya dejar de rizar el rizo

El método que propones está bien... Siempre y cuando el usuario no tenga la osadía de regresar a algún edit a cambiar un valor o algo así

// Saludos
Responder Con Cita
  #4  
Antiguo 21-05-2012
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 23
champy Va por buen camino
¿Que error es el que ta Alen? Porque no debería darte ninguno. Lo único que se me ocurre que pudiese fallarte es que por la configuración regional, tu ordenador tenga asignado como separador decimal la coma ',' y no el punto '.'

Prueba con


Código Delphi [-]
ShowMessage(FormatFloat('#0,0', NotaPromedio));

De todas maneras, si nos pones el error será muchísimo mas facil ayudarte.

Ah! y como dice Roman con mucha razón, acuerdate de inicializar las variables a 0 para evitar el posible error de que se creen con valores basura.

Código Delphi [-]
nota1:=0;nota2:=0;nota3:=0;nota4:=0;nota5:=0;nota6:=0;
NumeroDeExamenes :=0;
Responder Con Cita
  #5  
Antiguo 21-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por roman Ver Mensaje
Ya dejar de rizar el rizo
Creo que tenes razón, tratar de arreglarlo lo va a complicar mucho más...

En realidad la primera propuesta que había pensado hacía la media aritmética al finalizar:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i,Cont: Integer;
  Prom,cd: Double;
begin
  Cont:= 0;
  Prom:=0;
  for i:= 0 to ComponentCount - 1 do
   if Components[i] is TEdit then
     if TryStrToFloat(TEdit(Components[i]).Text, cd) then
     begin
       Prom:= Prom + cd;
       Inc(Cont);
     end;
  if Cont > 0 then
    ShowMessage(Format('El promedio es: %8.2f',[Prom/Cont]))
  else
    ShowMessage('Nada que promediar');
end;
Pero pensé que no correspondía al nivel del ejercicio. Luego me embarullé tratando de simplificar...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-05-2012 a las 21:42:05.
Responder Con Cita
  #6  
Antiguo 21-05-2012
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 23
champy Va por buen camino
Todo las formas que le estais explicando son fantásticas, seguramente así es como lo hariamos la mayoría.

Pero si le están pidiendo que haga un promedio del valor de 6 variables, supongo que su profesor se morirá de un espasmo si le ve usar ComponentCount, TryStrTofloat y otras funciones similares que es improbable que conozca (Seguramente FormatFloat ya estaría de sobra). Seamos consecuentes que el nivel del ejercicio que le están pidiendo.
Responder Con Cita
  #7  
Antiguo 22-05-2012
alenbebote alenbebote is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 9
Poder: 0
alenbebote Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Creo que tenes razón, tratar de arreglarlo lo va a complicar mucho más...

En realidad la primera propuesta que había pensado hacía la media aritmética al finalizar:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i,Cont: Integer;
  Prom,cd: Double;
begin
  Cont:= 0;
  Prom:=0;
  for i:= 0 to ComponentCount - 1 do
   if Components[i] is TEdit then
     if TryStrToFloat(TEdit(Components[i]).Text, cd) then
     begin
       Prom:= Prom + cd;
       Inc(Cont);
     end;
  if Cont > 0 then
    ShowMessage(Format('El promedio es: %8.2f',[Prom/Cont]))
  else
    ShowMessage('Nada que promediar');
end;
Pero pensé que no correspondía al nivel del ejercicio. Luego me embarullé tratando de simplificar...

Saludos.
demonios mil gracias ya no marca el error solo mande el mensaje a un memo ya quedo mil gracias
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
Promedio.. digitos primos .. luisito2011 Varios 3 07-05-2011 02:54:02
Promedio de fechas Pancholp1986 MySQL 6 23-03-2011 15:34:29
cálculo de promedio en delphi ??? Trident OOP 8 24-09-2010 20:18:40
promedio velezbunzl Varios 12 17-03-2009 00:07:32
Sacar el promedio o media en sql ? juangabriel1786 SQL 4 04-12-2008 23:33:28


La franja horaria es GMT +2. Ahora son las 18:32:04.


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