Delphi-PRAXiS
Seite 4 von 10   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Image bewegen (https://www.delphipraxis.net/144048-image-bewegen.html)

Jonski 28. Nov 2009 23:05

Re: Image bewegen
 
Ich weiß das ist irgendwie verschwunden, aber es bewegt sich nichts!

DeddyH 28. Nov 2009 23:08

Re: Image bewegen
 
Das Ereignis OnKeyDown ist zugewiesen, das war der Code daraus und Du hast zum Testen die Pfeiltaste links gedrückt?

Jonski 28. Nov 2009 23:11

Re: Image bewegen
 
Ja nichts passiert alles bleibt wie es ist.

Hier ist der Text:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

var Bitmap1,Bitmap2:TBitmap;
begin
Bitmap1:=TBitmap.Create;
  try
    Bitmap1.Width:=Image1.Width;
    Bitmap1.Height:=Image1.Height;
    Bitmap1.Canvas.pen.color:=clGreen;
    Bitmap1.Canvas.pen.width:=10;
    Bitmap1.Canvas.Ellipse(5,5,50,50);
    Image1.Picture.Assign(Bitmap1);
  finally
    Bitmap1.Free;
  end;

Bitmap2:=TBitmap.Create;
  try
    Bitmap2.Width:=Image2.Width;
    Bitmap2.Height:=Image2.Height;
    Bitmap2.Canvas.pen.color:=clBlue;
    Bitmap2.Canvas.pen.width:=10;
    Bitmap2.Canvas.Rectangle(10,10,1000,15);
    Image2.Picture.Assign(Bitmap2);
  finally
    Bitmap2.Free;
  end;

  with Image1 do
  begin
  transparent:=true;
  end;

  with Image2 do
  begin
  transparent:=true;
  end;

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of
  VK_LEFT:
  if Image1.Left -10 < Image2.Left then
    begin
    Image1.Left := Image1.Left -10;
    end;
  end;
end;

end.

DeddyH 28. Nov 2009 23:12

Re: Image bewegen
 
Wenn die Unit nicht allzu groß ist, poste sie mal komplett hier, ansonsten häng sie mal an.

Namenloser 28. Nov 2009 23:13

Re: Image bewegen
 
Zitat:

Zitat von Jonski
Ja nichts passiert alles bleibt wie es ist.

Versuche, deinen Code zu verstehen. Wenn dir das nicht gelingt, setze am Anfang der procedure einen Breakpoint und steppe dann mit dem Debugger durch.

DeddyH 28. Nov 2009 23:17

Re: Image bewegen
 
Zitat:

Delphi-Quellcode:
if Image1.Left -10 < Image2.Left then

Du willst nach links. Muss Image1.Left dann größer oder kleiner sein als Image2.Left?

Jonski 28. Nov 2009 23:23

Re: Image bewegen
 
Ich hab es umgeändert und es passiert immer noch nichts!

DeddyH 28. Nov 2009 23:25

Re: Image bewegen
 
Setz mal im OnKeyDown den Cursor auf die erste Zeile hinter dem begin und drücke F5. Wenn Du nun das Programm ausführst, bleibt es dann bei dieser Zeile stehen?

Lumpiluk 28. Nov 2009 23:29

Re: Image bewegen
 
Du könntest auch testen, ob OnKeyDown überhaupt ausgeführt wird (z.B. indem du einfach ein ShowMessage einbaust). Falls nicht, solltest du mal überprüfen, ob in den Eigenschaften der Form KeyPreview auf True ist. Es könnte nämlich sein, dass gerade irgendein Edit oder ein Button aktiv ist...

[edit]Tut mir Leid; dachte, ich hätte schon alle Beiträge hier durchgelesen...[/edit]

DeddyH 28. Nov 2009 23:31

Re: Image bewegen
 
Zitat:

Zitat von DeddyH
Falls Du noch weitere Komponenten auf dem Formular hast, solltest Du ggf. dessen Eigenschaft KeyPreview auf true setzen.

Nicht, dass das nicht schon gesagt wurde :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Seite 4 von 10   « Erste     234 56     Letzte »    

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