You are on page 1of 6

unit U_Equacao;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;

type TF_Equacao = class(TForm) P_1: TPanel;

P_2: TPanel; P_3: TPanel; P_4: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edt_A: TEdit; Edt_B: TEdit; Edt_C: TEdit; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edt_X1: TEdit; Edt_X2: TEdit; Btn_Calcular: TBitBtn; Btn_Limpar: TBitBtn; Btn_Sair: TBitBtn; procedure FormKeyPress(Sender: TObject; var Key: Char); procedure Btn_SairClick(Sender: TObject); procedure Edt_AKeyPress(Sender: TObject; var Key: Char); procedure Edt_BKeyPress(Sender: TObject; var Key: Char); procedure Edt_CKeyPress(Sender: TObject; var Key: Char); procedure Btn_LimparClick(Sender: TObject); procedure Btn_CalcularClick(Sender: TObject); private { Private declarations } public { Public declarations } end;

var

F_Equacao: TF_Equacao;

implementation

{$R *.dfm}

procedure TF_Equacao.Btn_CalcularClick(Sender: TObject); var A, B, C, DELTA, X1, X2 : Real; begin if Edt_A.Text = '' then begin ShowMessage('Digite o valor do A da funo.'); Edt_A.SetFocus; end else if Edt_B.Text = '' then begin ShowMessage('Digite o valor do B da funo.'); Edt_B.SetFocus; end else if Edt_C.Text = '' then begin ShowMessage('Digite o valor do C da funo.'); Edt_C.SetFocus; end else begin A := StrToFloat(Edt_A.Text); B := StrToFloat(Edt_B.Text); C := StrToFloat(Edt_C.Text); DELTA := (b * b) - ( 4 * A * C); if DELTA < 0 then begin

ShowMessage('Equao sem soluo.'); Exit; end else if DELTA = 0 then begin X1 := -b / ( 2 * a ); X2 := X1; end else begin //DELTA > 0 X1 := ((-b ) - (Sqrt(DELTA))) / (2 * a); X2 := ((-b ) + (Sqrt(DELTA))) / (2 * a); end; Edt_X1.Text := FloatToStr(X1); Edt_X2.Text := FloatToStr(X2); end; end;

procedure TF_Equacao.Btn_LimparClick(Sender: TObject); begin Edt_A.Text := ''; Edt_B.Text := ''; Edt_C.Text := ''; Edt_X1.Text := ''; Edt_X2.Text := ''; Edt_A.SetFocus; end;

procedure TF_Equacao.Btn_SairClick(Sender: TObject); begin //poderia ser Application.Terminate;

F_Equacao.Close;

end;

procedure TF_Equacao.Edt_AKeyPress(Sender: TObject; var Key: Char); begin if key in ['0'..'9', '-', ',',chr(8)] then begin exit; end else begin key := #0; end; end; //chr(8) backspace

procedure TF_Equacao.Edt_BKeyPress(Sender: TObject; var Key: Char); begin if key in ['0'..'9', '-', ',',chr(8)] then begin exit; end else begin key := #0; end; end; //chr(8) backspace

procedure TF_Equacao.Edt_CKeyPress(Sender: TObject; var Key: Char); begin //s aceita nmeros, sinal de menos //vrgula e o backspace if key in ['0'..'9', '-', ',',chr(8)] then begin

exit; end else begin key := #0; end; end;

//chr(8) backspace

procedure TF_Equacao.FormKeyPress(Sender: TObject; var Key: Char); begin //faz com que o ENTER funcione como o TAB //no esquecer de alterar a propriedade KeyPreview //para TRUE

if key = #13 then begin key := #0; perform(WM_NextDlgCtl,0,0); end; end;

end.

You might also like