Показать сообщение отдельно
  #5  
Старый 11.09.2012, 17:15
lacasombra lacasombra вне форума
Прохожий
 
Регистрация: 11.09.2012
Сообщения: 3
Репутация: 10
По умолчанию

Вот код, который я написал:
Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer2: TTimer;
Timer1: TTimer;
Label5: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
chas1,min1,sec1,msec1,chas2,min2,sec2,msec2:word;
sk1,sec1real,msreal,sk,obsk:real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
label2.Caption:=floattostr(obsk)+' '+'симв/мин';
label4.Caption:=floattostr(sk)+' '+'симв/мин';
timer2timer(timer2);

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
label5.Caption:=timetostr(now);
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var begtime,vreme:tdatetime;
begin
vreme:=time;
DecodeTime((vreme), chas2, min2, sec2, msec2);
if sec2<sec1 then //если секунды2<секунды1
begin
sec2:=(sec2+60-sec1);
end
else
begin
sec2:=sec2-sec1;
end;
if msec2<msec1 then //если милисекунды2<милисекунды1
begin
msec2:=msec2+1000-msec1;
end
else
begin
msec2:=msec2-msec1;
end;
sec1real:=round(sec2);
msreal:=round(msec2);
sk1:=sec1real+(msreal/1000);
sk:=(60 / sk1); //скорость набора за 1 минуту
obsk:=(obsk+sk)/ 2;
label2.Caption:=floattostr(round(obsk))+'симв/мин';
label4.Caption:=floattostr(round(sk))+'симв/мин';
timer1.Enabled:=true;
begtime:=time;
DecodeTime((BegTime), chas1, min1, sec1, msec1);

end;

end.
Bargest: Оформляем код тегами!
Код работает, скорость определяется, но дело не в этом. Проблема в том, что я не уверен в правильности определения скорости...
Ответить с цитированием