AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ereginiss: onkeydown funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

ereginiss: onkeydown funktioniert nicht

Ein Thema von bl4ckb1rd · begonnen am 19. Feb 2009 · letzter Beitrag vom 20. Feb 2009
Antwort Antwort
bl4ckb1rd

Registriert seit: 3. Okt 2008
53 Beiträge
 
#1

ereginiss: onkeydown funktioniert nicht

  Alt 19. Feb 2009, 16:19
Ich möchte wenn ich die pfeil taste nach unten drücken, mein alter kreis überzeichnet wird, und ein neuer 10 pixel unter dem alten kreis erstellt wird. Leider funktioniert das ganze nicht. Das ereignis: OnKeyDown von Form1 scheint überhaupt nicht zu gehen -.- Habe Testweise einen Button erstellt der mir den alten kreis überzeichnen soll, dies hat auch wunderbar geklappt.

Hier der Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Button2Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    meinstartX, meinstartY : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Canvas.Pen.color:=cl3DDkShadow;
image1.canvas.Brush.Color := clblack;
image1.Canvas.fillrect(rect(0,0,image1.width,image1.height));
image1.canvas.Brush.Color := cl3DDkShadow;
image1.Canvas.FillRect(rect(20,20,image1.Width-20,image1.Height-20));
image1.Canvas.Brush.Color := clwhite;
image1.Canvas.ellipse(meinstartX-10,meinStartY-10,meinStartX+10,meinStartY+10);




end;

procedure TForm1.Button2Click(Sender: TObject);
begin
image1.Canvas.Pen.color:=cl3DDkShadow;
image1.canvas.Brush.Color := cl3DDkShadow;
  image1.Canvas.ellipse(meinstartX-10,meinStartY-10,meinStartX+10,meinStartY+10);

  meinstartY := meinstartY +10;
  image1.Canvas.Pen.color:=cl3DDkShadow;
  image1.Canvas.Brush.Color := clwhite;
  image1.Canvas.ellipse(meinstartX-10,meinStartY-10,meinStartX+10,meinStartY+10);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
meinstartX := image1.Width div 2;
meinStartY := 100;
form1.KeyPreview := true;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin


if key = vk_down then
  begin
  image1.canvas.Brush.Color := cl3DDkShadow;
  image1.Canvas.ellipse(meinstartX-10,meinStartY-10,meinStartX+10,meinStartY+10);

  meinstartX := meinstartX +10;
  meinstartY := meinstartY +10;
  image1.Canvas.Pen.color:=clwhite;
  image1.Canvas.Brush.Color := clwhite;
  image1.Canvas.ellipse(meinstartX-10,meinStartY-10,meinStartX+10,meinStartY+10);

  end;


end;


end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ereginiss: onkeydown funktioniert nicht

  Alt 19. Feb 2009, 16:20
Ist Form.KeyPreview True?
Markus Kinzler
  Mit Zitat antworten Zitat
bl4ckb1rd

Registriert seit: 3. Okt 2008
53 Beiträge
 
#3

Re: ereginiss: onkeydown funktioniert nicht

  Alt 19. Feb 2009, 16:43
früher hat alles wunderbar geklappt, habe aber jetzt mal form1.keyprevie auf true gesetzt aber es geht immernoch nicht ;(
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#4

Re: ereginiss: onkeydown funktioniert nicht

  Alt 19. Feb 2009, 18:32
Ist das Ereignis auch im OI gesetzt?
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#5

Re: ereginiss: onkeydown funktioniert nicht

  Alt 20. Feb 2009, 07:29
Wie wäre es, wenn du es einfach über die Application Events machst ? (OnMassages)
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: ereginiss: onkeydown funktioniert nicht

  Alt 20. Feb 2009, 07:35
Zitat von 5etH:
Wie wäre es, wenn du es einfach über die Application Events machst ? (OnMassages)
Wäre eine Möglichkeit doch ist in diesem Fall wohl zu viel des Guten.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#7

Re: ereginiss: onkeydown funktioniert nicht

  Alt 20. Feb 2009, 07:41
ich denke das es besser ist, da ich mir denken kann das er zukünftig noch mehr keys abfragen will. Das ganze hört sich stark nach einem Spiel an ^^. Aber ich denke, dass es der Programmierer selber wissen muss was angemessen ist, aber ich bin der meinung das es Wohl besser ist, wenn er zukünftig mehr Keys abfragen möchte.

Gruß
5etH
Manuel
Lieber heimlich schlau als unheimlich dumm
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: ereginiss: onkeydown funktioniert nicht

  Alt 20. Feb 2009, 10:04
Hallo,

noch einfacher wäre es mit TForm.OnShortCut.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz