Autor Beitrag
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Do 25.10.07 16:14 
In der Freeware-Sparte wurde ich gebeten hier den Quelltext zu meinem Reaktionszeitmesser zuposten. Zu dem gibt es nicht viel zu sagen, bis auf einige Neuerungen. Ich würde sagen ich stell hier mal Version 1.04 ein. Tschüss!
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Mitmischer 1703 am Do 25.10.07 16:49, insgesamt 1-mal bearbeitet
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.10.07 16:28 
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;
Integer Reaktionszeit, Zufall = 1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   Reaktionszeit = Reaktionszeit + 13;
   Label1->Caption = IntToStr (Reaktionszeit);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if ((((Reaktionszeit == 1) || (Reaktionszeit == 13) || 
     (!Timer1->Enabled) || (Reaktionszeit == 0))))
  {
    Form1->FormClick (Sender);
  }
  else
  {
     Button1->Hide();
     Timer1->Enabled = false;
     StartTimer->Enabled = true;
     Form2->Memo1->Lines->Add(IntToStr (Reaktionszeit));
     Reaktionszeit = 0;
     Button1->Hide();
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Form2->Show();
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormClick(TObject *Sender)
{
  Label1->Caption = "Schummler!";
  Form2->Memo1->Clear();
  Timer1->Enabled = false;
  StartTimer->Enabled = true;
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
  Timer1->Enabled = true;
  Timer1->Interval = 1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::StartTimerTimer(TObject *Sender)
{
  Timer2->Enabled = true;
  StartTimer->Enabled = false;
  Button1->Show();
  randomize();
  Zufall = random (2000) + 555;
  Timer2->Interval = Zufall;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  // Neuerungen: 'Aufhängen' des Programmes rausgenommen/Button hat immer den Focus
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
  Button1->Click();        
}
//---------------------------------------------------------------------------


ich habs ma so hochgestellt.

junge, ich kann nicht verstehen, was du da genau machst! was soll denn die unit1.pas darstellen?
weil sowas, was da drin steht, hat mit reaktion nix zu tun!

erklär mir doch mal bitte, was du dir bei den einzelnen schritten gedacht hast!

hab dir doch nicht umsonst die pm geschrieben!

wenn du im timer event ein Application->ProcessMessages einfügst, dürfte dein progi auch nicht ruckeln. wenn denn der befehl unter c nicht anders ist! damit gibst du dem processor zeit, auch andere befehle auszuführen.

mfg matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Do 25.10.07 16:45 
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;
Integer Reaktionszeit, Zufall = 1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   Reaktionszeit = Reaktionszeit + 13// Reaktionszeitaufzeichnung
   Label1->Caption = IntToStr (Reaktionszeit); //Reaktionszeit zeigen 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if ((((Reaktionszeit == 1) || (Reaktionszeit == 13) || 
     (!Timer1->Enabled) || (Reaktionszeit == 0))))  // WENN geschummelt, ...
  {
    Form1->FormClick (Sender); // ..., dann Schmummler-Routine
  }
  else
  {
     Button1->Hide(); // nicht mehr klicken!
     Timer1->Enabled = false// Damit nicht mehr weitergezählt wird 
     StartTimer->Enabled = true// Es geht von vorne los
     Form2->Memo1->Lines->Add(IntToStr (Reaktionszeit)); // Ergebnis eintragen
     Reaktionszeit = 0;
     Button1->Hide(); // kann weg :roll:
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Form2->Show(); // Ergebnisse zeigen
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormClick(TObject *Sender)  // Wenn man früher auf das Formular klickt als erlaubt, zählt das als unerlaubt -> Nochmal neu
{
  Label1->Caption = "Schummler!";
  Form2->Memo1->Clear();  // Ergebnisse löschen
  Timer1->Enabled = false// Damit nicht weitergezählt wird!
  StartTimer->Enabled = true// Damit alles von vorne losgeht
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Timer2Timer(TObject *Sender)  // könnte ich rausnehmen
{
  Timer1->Enabled = true;  // zugegeben = ??? [ Ich glaube ich hab da aber ein Problem im Objektinspekto
  Timer1->Interval = 1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::StartTimerTimer(TObject *Sender)
{
  Timer2->Enabled = true;
  StartTimer->Enabled = false;  // Der hier soll nix mehr machen!
  Button1->Show();  // Drück mich
  randomize();
  Zufall = random (2000) + 555;
  Timer2->Interval = Zufall; // Bis Timer2 das Drücken freigibt, muss eine Zufallszahl Zeit verstreichen -> sonst is ja nich fair
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  // Hier schreib ich mir für die Freeware-Sparte Neuerungen auf
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
  Button1->Click();  // Man kann ja auch alternativ zum Button->Click einen Knopf drücken      
}
//---------------------------------------------------------------------------
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.10.07 16:50 
und was soll die 13 bedeuten?

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Do 25.10.07 16:53 
Während der Aufzeichnung verstreicht ja auch einige Zeit und wenn ich nur um 1 höher gehe, bin ich zu langsam. Also habe ich mich für eine tolerante Möglichkeit entschieden -> 13
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.10.07 17:05 
ich gebs auf!

unstrukturiert.

da braucht man ja allein schon etliche mins, um durchzublicken! und das hab ich bis jetzt noch nicht geschafft!

also, ums mal auseinander zu nehmen:

1. du erzeugst eine zufallszahl in einem bestimmten bereich, der dein programm startet.
2. dann startest du den timer, der die zeit nimmt und gibst den button frei.
3. bei einem klick stoppst du den timer und wertest alles andere aus.

ist schon etwas arg böse verschachtelt für das bissle.

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!