Ver Mensaje Individual
  #5  
Antiguo 30-05-2011
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Reputación: 14
martinartaza Va por buen camino
corregido

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RxCalc, StdCtrls, Mask, ToolEdit, CurrEdit;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    RxCalculator1: TRxCalculator;
    procedure RxCalculator1CalcKey(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    CANTENTER: INTEGER;
    valor: Currency;
    banvalor: boolean;
  end;

var
  Form1: TForm1;

implementation

uses ComObj;

{$R *.dfm}

procedure TForm1.RxCalculator1CalcKey(Sender: TObject; var Key: Char);
begin
if key = #61 then
   begin
   IF CANTENTER = 1 THEN
      BEGIN
         valor :=  RxCalculator1.CalcDisplay;
         keybd_event(vk_menu,0,0,0);
         keybd_event(VK_F4,0,0,0);
         CANTENTER:= 0;
      end
   else  inc(CANTENTER);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//Inicializo la cantidad de enter a 0
CANTENTER:= 0;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// detecto si se presiona un * (con eso abro la calculadora)
if key = #42 then
   begin
   banvalor:= True;
   RxCalculator1.Execute;
   // no uso if RxCalculator1.Execute (debido a que se la
   // cerrara con alt + F4
   banvalor:= False;
// con la siguiente linea levanto la tecla alt.
   keybd_event(vk_menu,0,keyeventf_keyup, 0);
   end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   // cuando se levanta la tecla, se borra el * y
   // se pone el valor y luego seteo la bandera.
if key = vk_menu then
   begin
   Edit1.Clear;
   Edit1.Text:= floattostr(valor);
   end;
end;

end.
Responder Con Cita