Показать сообщение отдельно
  #2  
Старый 20.04.2011, 13:29
Max.Gr Max.Gr вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 4
Репутация: 10
Счастье Вот так можно сделать

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    summa: TEdit;
    koef: TEdit;
    win: TEdit;
    prib: TEdit;
    OK: TButton;
    Label1: TLabel;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    procedure OKClick(Sender: TObject);
    procedure summaKeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  w, p, ss, k: Real;
 i: integer;
 str: string;

implementation

{$R *.dfm}

function Separator(Text:String):String;
begin
  //Если первый символ разделитель, то ставим первым символом 0
  if (Pos(',',Text)=1) or (Pos('.',Text)=1) then Insert('0',Text,0);
  // Проверяем разделитель на правильность
  // и в случае необходимости меняем
  if (DecimalSeparator=',') and (Pos('.',Text)<>0) then
  begin
    Insert(',',Text,Pos('.',Text));
    Delete(Text,Pos('.',Text),1);
  end;
  if (DecimalSeparator='.') and (Pos(',',Text)<>0) then
  begin
    Insert('.',Text,Pos(',',Text));
    Delete(Text,Pos(',',Text),1);
  end;
  Separator:=Text
end;

procedure TForm1.OKClick(Sender: TObject);
begin
  Summa.Text:=Separator(Summa.text);
  Koef.Text:=Separator(koef.Text);

  ss:=StrToFloat(summa.Text);
  k:=StrToFloat(koef.Text);
  w:=ss*k;
  p:=w-ss;
  win.Text:=FloatToStr(w);
  prib.Text:=FloatToStr(p);
end;

procedure TForm1.summaKeyPress(Sender: TObject; var Key: Char);
 begin
if not (Key in ['0'..'9', '.', ',', #13, #8]) then
begin
 ShowMessage('Вводи цифры');
  key:= #0;
end;
end;


end.
Ответить с цитированием