viernes, 4 de marzo de 2011

Porcentaje

Comienzo preparando los controles que necesito en un ficha nueva como puedes ver en la imagen.
figura151.jpg (17126 bytes)
Objetos utilizados:  Los botones son de la paleta Adicional. Observa que algunos tienen en panel de fondo.  He puesto dos etiquetas Tlabel, NUMERO1 y otra para la solución que ahora no ves.
Solo escribo 'a dedo' el código del  evento On_Clic de los botones; y el resto lo ha construido el Delphi mientras que yo he ido arrastrando objetos a la ficha.
unit PORCENT;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls;
type
  TForm1 = class(TForm)
    NUM: TLabel;
    NUMERO: TEdit;
    ACEPTAR: TBitBtn;
    PORCENTAJE: TBitBtn;
    SOLUCION: TLabel;
    CERRAR: TBitBtn;
    BORRAR: TBitBtn;
    Panel1: TPanel;
    Panel2: TPanel;
    procedure ACEPTARClick(Sender: TObject);
    procedure PORCENTAJEClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BORRARClick(Sender: TObject);
    procedure CERRARClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  NUMEROS:ARRAY[1..20] OF INTEGER;
  I:INTEGER;
implementation
{$R *.DFM}
PROCEDURE MOSTRAR;    // INSTRUCCIÓN QUE ME HE INVENTADO PARA EL "PORCENTAJE"
VAR
  POSITIVOS,NOCERO:REAL;
  K:INTEGER;
BEGIN
  K:=I;  // "K" ES EL TOPE
  // RECORRO LA TABLA Y CUENTO POSITIVOS:
         // PRIMERO PONGO LOS CAMPOS A CERO:
  POSITIVOS:=0;
  NOCERO:=0;
  FOR I:=1 TO K DO     //<-SIEMPRE QUE SEA ASIGNACIÓN LO PONGO ASÍ
    BEGIN
      IF NUMEROS[I]>0 THEN
         POSITIVOS:=POSITIVOS+1;
      IF NUMEROS[I]<>0 THEN
         NOCERO:=NOCERO+1;
    END;
  FORM1.SOLUCION.CAPTION:='EL PORCENTAJE ES '+FLOATTOSTR(POSITIVOS/NOCERO*100);
END;
procedure TForm1.ACEPTARClick(Sender: TObject);
begin
    NUMEROS[I]:=STRTOINT(NUMERO.TEXT);
    I:=I+1;
    IF I>20 THEN
        MOSTRAR
      ELSE
        FORM1.NUM.CAPTION:='NUMERO '+INTTOSTR(I)+':';
    NUMERO.CLEAR;
    NUMERO.SetFocus;
end;
procedure TForm1.PORCENTAJEClick(Sender: TObject);
begin
    MOSTRAR;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
    NUM.CAPTION:='NUMERO'+INTTOSTR(I);
end;
procedure TForm1.BORRARClick(Sender: TObject);
begin
   NUMERO.CLEAR;
   NUMERO.SETFOCUS;
   SOLUCION.CAPTION:=' ';  //EN VEZ DE "CLEAR" PORQUE NO ES UN CAMPO DE ENTRADA  
end;
procedure TForm1.CERRARClick(Sender: TObject);
begin
    CLOSE;
     
end;
INITIALIZATION
    I:=1;
end.
Y este es el programa ejecutando:
figura152.jpg (20207 bytes)

No hay comentarios:

Publicar un comentario

Con la tecnología de Blogger.

Busqueda

Vistas de página en total

Sabias que?

chat

Popular Posts