Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prozedur auf Knopfdruck? (https://www.delphipraxis.net/85515-prozedur-auf-knopfdruck.html)

lycaine 31. Jan 2007 20:58


Prozedur auf Knopfdruck?
 
wie kann ich eine Prozedur auf Knopfdruck starten?

ich hab schon mal ne bissl rumgeguckt und das hier gefunden:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
[...]

aber sagt mir der Compiler immer undefinierter Bezeichner 'FormKeyPress'

hab ich eine Unit zu wenig geladen? wenn ja, welche?

komm momentan mal irgendwie überhaupt nich weiter :?

na ja, schon mal thx im Vorraus

inherited 31. Jan 2007 21:05

Re: Prozedur auf Knopfdruck?
 
Das hatten wir wirklich schon mindestens 42 mal hier... benutz einfach mal die Suchfunktion

Blackheart 31. Jan 2007 21:09

Re: Prozedur auf Knopfdruck?
 
Ich schätze mal Du hast das zu Fuß eingegeben.
Such mal im Objektinspektor unter Ereignisse OnKeyPress und mach dann links daneben einen Doppelklick dann erstellt Dir Delphi folgendes.

Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
//Hier deine Code
end;

inherited 31. Jan 2007 21:12

Re: Prozedur auf Knopfdruck?
 
Ich glaube er meint, wie er eine bestehende Procedure aufrufen kann.

xZise 1. Feb 2007 17:11

Re: Prozedur auf Knopfdruck?
 
Zitat:

Zitat von lycaine
wie kann ich eine Prozedur auf Knopfdruck starten?

Hi Caine...

---------------------
Hinweis:
Dies ist der falsche Bereich ("OpenSource")! Bitte poste demnächst deine Posts im richtigen Bereich! Danke
---------------------


Was meinst du mit "Auf Koopfdurck"?
Und hast die die Porzedur schon?

PS: Mit der Prozedur bei dir gibt es an sich keine Probleme, wenn du im OI auf das Ereignis "OnKeyPress" doppelt geklickt hast.

DP-Maintenance 1. Feb 2007 19:36

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Open-Source" nach "Object-Pascal / Delphi-Language" verschoben.

lycaine 1. Feb 2007 20:13

Re: Prozedur auf Knopfdruck?
 
Liste der Anhänge anzeigen (Anzahl: 1)
blackheart hatte im Prinzip Recht, ich habs einfach so reingeschrieben und nicht im OI eingestellt - na ja, bin halt nochn Delphi-Noob

aber irgendwie klappt das doch nicht ganz so recht, ich wollt nen Reaktionstest schreiben, der auf Mausklick oder Tastendruck reagiert - aber ich hab 4 mögliche ergebnisse. Ich hab den Quellcode/ .exe mal angefügt, damit ihr ne ungefähre Vorstellung davon habt.

PS: auch für anderweitige Verbesserungsvorschläge bin ich gerne offen :lol:

Delphi-Quellcode:
procedure TForm1.Panel1Click(Sender: TObject);
var zw: integer;
begin
timer1.Enabled:=false;
zw:=random(4);
CASE zw OF
0: labelchange.Color:=clred;
1: labelchange.Color:=clblue;
2: labelchange.Color:=cllime;
3: labelchange.Color:=clyellow;end;
time := Now;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
labelchange.Color:=clsilver;
randomize;
timer1.Interval:= 1000 + random(4000);
timer1.Enabled:=true;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
  if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label1.color) then
  begin
    labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
      IF StrToInt(labelmillisek.caption) < 1000 THEN
      gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
      ELSE gauge1.Progress:=0;
  timer2.enabled:=true;
  time := 0;
  end
  else
    IF not(labelchange.color=label1.color) THEN showmessage('Falsche Farbe!!!')
      ELSE
        IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
        ELSE showmessage('Bitte erst mal starten!');
end;

procedure TForm1.Label2Click(Sender: TObject);
begin
  if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label2.color) then
  begin
    labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
      IF StrToInt(labelmillisek.caption) < 1000 THEN
      gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
      ELSE gauge1.Progress:=0;
  timer2.enabled:=true;
  time := 0;
  end
  else
    IF not(labelchange.color=label2.color) THEN showmessage('Falsche Farbe!!!')
      ELSE
        IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
        ELSE showmessage('Bitte erst mal starten!');
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
  if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label3.color) then
  begin
    labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
      IF StrToInt(labelmillisek.caption) < 1000 THEN
      gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
      ELSE gauge1.Progress:=0;
  timer2.enabled:=true;
  time := 0;
  end
  else
    IF not(labelchange.color=label3.color) THEN showmessage('Falsche Farbe!!!')
      ELSE
        IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
        ELSE showmessage('Bitte erst mal starten!');
end;

procedure TForm1.Label4Click(Sender: TObject);
begin
  if (not Timer1.Enabled) and (time <> 0) and (labelchange.color=label4.color) then
  begin
    labelmillisek.caption:=FloatToStr(floor(MilliSecondSpan(time, Now)));
      IF StrToInt(labelmillisek.caption) < 1000 THEN
      gauge1.Progress:=100-(floor(StrToInt(labelmillisek.Caption)/10))
      ELSE gauge1.Progress:=0;
  timer2.enabled:=true;
  time := 0;
  end
  else
    IF not(labelchange.color=label4.color) THEN showmessage('Falsche Farbe!!!')
      ELSE
        IF timer1.enabled=true THEN showmessage('Ein wenig früh, oder?')
        ELSE showmessage('Bitte erst mal starten!');
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
gauge1.Progress:=0;
labelchange.color:=clsilver;
timer2.enabled:=false;
end;

procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
CASE key OF
81: TForm1.Label1Click(Sender: TObject);
65: TForm1.Label2Click(Sender: TObject);
87: TForm1.Label3Click(Sender: TObject);
83: TForm1.Label4Click(Sender: TObject);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz