Hab dir mal schnell was geschrieben, dass dir mal zeigen soll, wie man das ohne lästige Schleifen, die die Prformance deines Programmes in die Knie gehen lässt, sowas programmiert. Das habe ich schnell in 5min und ist ein erster Vorschlag, an dem sicherlich noch einiges verbessert werden kann. Hab aber nicht deine gewollte Funktion einprogrammiert, weil ich das glaube ich noch nicht richtig verstanden habe und damit du mit meinen Funktionen noch etwas spielen kannst.
Hier mal der Quelltext und unten ist auch das gepackte Programm:
Delphi-Quellcode:
unit Tastendruck;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const WMKeyDown = WM_KEYDOWN;
WMKeyUp = WM_KEYUP;
type
TForm1 =
class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
private
procedure WMKeyDown(
var Msn: TMessage);
message WMKeyDown;
procedure WMKeyUp(
var Msn: TMessage);
message WMKeyUp;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMKeyDown(
var Msn: TMessage);
var Index: integer;
begin
Index := 36;
repeat
Index :=
Index+1;
until (GetasyncKeyState(
Index) <> 0)
or (
Index >=41);
if Index < 41
then
begin
case Index of
37: Label2.visible := true;
38: Label1.Visible := true;
39: Label4.Visible := true;
40: Label3.Visible := true;
end;
end
else Label5.Visible := true;
end;
procedure TForm1.WMKeyUp(
var Msn: TMessage);
begin
LAbel1.Visible := false;
LAbel2.Visible := false;
LAbel3.Visible := false;
LAbel4.Visible := false;
LAbel5.Visible := false;
end;
end.
MfG BAMatze
Edit: Anpassung des Quelltextest auf Hybrid666 Hinweis hin in #6
2. Account Sero