AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Image bewegen

Ein Thema von Jonski · begonnen am 28. Nov 2009 · letzter Beitrag vom 30. Nov 2009
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    
Jonski

Registriert seit: 28. Nov 2009
Ort: Hessen
75 Beiträge
 
Delphi 7 Personal
 
#1

Image bewegen

  Alt 28. Nov 2009, 21:33
Hallo Leute;

Meine Frage heute, wie bringe ich ein Image dazu sich per Tastendruck zu bewegen?

Danke schonmal für eure Antworten.
Jonas
MFG Jonski
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#2

Re: Image bewegen

  Alt 28. Nov 2009, 21:37
Zur Änderung der Position musst Du Left bzw. Top des Image neu setzen. Und für Tastendrücke gibt es die Ereignisse OnKeyPress bzw. OnKeyDown. Falls Du noch weitere Komponenten auf dem Formular hast, solltest Du ggf. dessen Eigenschaft KeyPreview auf true setzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Image bewegen

  Alt 28. Nov 2009, 21:39
hier im Feld "Search" Move Image eingeben.

Die Adresse würde ich bookmarken.

[Edit] zu spät ? [/Edit]

Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Image bewegen

  Alt 28. Nov 2009, 21:42
Dein Formular hat ein Event namens OnKeyDown. Dieses Event wird immer dann ausgelöst, wenn der Nutzer eine Taste drückt und das Formular den Fokus hat. Damit du weißt, in welche Richtung das Image bewegt werden soll, musst du natürlich noch abfragen, welche Tastae gedrückt wurde. Die Taste ist im Parameter "Key" angegeben, für die Pfeiltasten gibt es die Konstanten VK_LEFT, VK_RIGHT, VK_UP und VK_DOWN.

Lange Rede, kurzer Sinn:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(..., const Key: integer, ...);
begin
  case Key of
    VK_LEFT: Image1.Left := Image1.Left - 10;
    VK_RIGHT: Image1.Left := Image1.Left + 10;
    VK_UP: Image1.Top := Image1.Top - 10;
    VK_DOWN: Image1.Top := Image1.Top + 10;
  end;
end;
Eine andere Möglichkeit wäre ein Timer/eine Schleife, in dem/der du den Zustand (Gedrückt/Nicht gedrückt) der Tasten selbst abfragst. Das ginge dann mit Delphi-Referenz durchsuchenGetAsncKeyState.
  Mit Zitat antworten Zitat
Jonski

Registriert seit: 28. Nov 2009
Ort: Hessen
75 Beiträge
 
Delphi 7 Personal
 
#5

Re: Image bewegen

  Alt 28. Nov 2009, 22:01
Ich hab jetzt mal wieder ne Frage!

Ich habe diesen Quellcode geschrieben:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

var Bitmap:TBitmap;

begin
Bitmap:=TBitmap.Create;
Bitmap.Width:=Image1.Width;
Bitmap.Height:=Image1.Height;
Image1.Picture.Graphic:=Bitmap;
with Image1.Canvas do
  begin
  pen.color:=clGreen;
  pen.width:=10;
  MoveTo(500,500);
  end
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of
  VK_LEFT: Image1.Left := Image1.Left - 10;
  VK_RIGHT: Image1.Left := Image1.Left + 10;
  VK_UP: Image1.Top := Image1.Top - 10;
  VK_DOWN: Image1.Top := Image1.Top + 10;
end;
end;

end.
Und jetzt habe ich das Problem ,dass sich das Image bewegt und der grüne Punkt erst garnicht erscheint.
Jonas
MFG Jonski
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#6

Re: Image bewegen

  Alt 28. Nov 2009, 22:06
Du erzeugst ein Bitmap, das Du aber nie benutzt. Zeichne statt auf den Canvas des Image lieber auf den der Bitmap und weise diese erst im Anschluss dem Image zu.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jonski

Registriert seit: 28. Nov 2009
Ort: Hessen
75 Beiträge
 
Delphi 7 Personal
 
#7

Re: Image bewegen

  Alt 28. Nov 2009, 22:15
Und wie soll ich das machen?

Ich hab wirklich bis jetzt fast nur Ahnung von Rechenprogrammen und ein bisschen von Grafiken!
Jonas
MFG Jonski
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#8

Re: Image bewegen

  Alt 28. Nov 2009, 22:20
Versuch es mal so (ungetestet):
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Bitmap:TBitmap;
begin
  Bitmap:=TBitmap.Create;
  try
    Bitmap.Width:=Image1.Width;
    Bitmap.Height:=Image1.Height;
    Bitmap.Canvas.pen.color:=clGreen;
    Bitmap.Canvas.pen.width:=10;
    Bitmap.Canvas.Ellipse(0,0,Bitmap.Width,Bitmap.Height);
    Image1.Picture.Graphic.Assign(Bitmap);
  finally
    Bitmap.Free;
  end
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jonski

Registriert seit: 28. Nov 2009
Ort: Hessen
75 Beiträge
 
Delphi 7 Personal
 
#9

Re: Image bewegen

  Alt 28. Nov 2009, 22:25
Danke alles ist gut bis auf diese Zeile:

Image1.Picture.Graphic.Assign(Bitmap);

Die funktioniert nicht ich weiß nicht warum .
Jonas
MFG Jonski
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#10

Re: Image bewegen

  Alt 28. Nov 2009, 22:27
Das mach ich jedesmal falsch . Lass das "Graphic." einfach weg.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 10  1 23     Letzte »    


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 00:38 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