Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi break it problem (https://www.delphipraxis.net/147030-break-problem.html)

EWeiss 31. Jan 2010 18:01

Re: break it problem
 
Zitat:

Zitat von speedy23
danke für die antwort :)
leider funktinoiert es weiterhin nicht
der punkt wird kreiert und flimmert auf einer stelle ohne jegliche bewegung... was zu hölle mach ich denn falsch?

|edit
soll ich evtl den ganzen quelltext nochmal posten?

DX, DY global definieren und x, y innerhalb des Timers

Dann setze in den Zeilen einen Breakpoint

Delphi-Quellcode:
if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then
if (Shape1.Left <= 0) or (Shape1.Left >= image1.ClientWidth - Shape1.Width) then
und schau was Dx, und Dy ausgeben wenn du in diese zeile springst.

Nebenbei
Wenn man nur eine zeile hinter einer IF abfrage schreibt ist ein Begin .. End nicht nötig.

Delphi-Quellcode:
  if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then
    y := -dy;
gruss

mkinzler 31. Jan 2010 18:04

Re: break it problem
 
Zitat:

Nebenbei
Wenn man nur eine zeile hinter einer IF abfrage schreibt ist ein Begin .. End nicht nötig.
Macht den code aber übersichtlicher und verhindert Fehler beim späteren Ergänzungen an der Stelle

EWeiss 31. Jan 2010 18:05

Re: break it problem
 
Zitat:

Zitat von mkinzler
Zitat:

Nebenbei
Wenn man nur eine zeile hinter einer IF abfrage schreibt ist ein Begin .. End nicht nötig.
Macht den code aber übersichtlicher und verhindert Fehler beim späteren Ergänzungen an der Stelle

Aber nicht nötig ;)

gruss

speedy23 31. Jan 2010 18:09

Re: break it problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
das mit dem begin end hinter den if sachen ist angewohnheit, weil ja öfters nicht nur ein befehl danach steht...so aber wie gehe ich mit einem breakpoint um das kenn ich gar nicht? delphi hilfe bringt mir da leider auch nichts... anbei das beispiel in der exe

EWeiss 31. Jan 2010 18:12

Re: break it problem
 
Zitat:

Zitat von speedy23
das mit dem begin end hinter den if sachen ist angewohnheit, weil ja öfters nicht nur ein befehl danach steht...so aber wie gehe ich mit einem breakpoint um das kenn ich gar nicht? delphi hilfe bringt mir da leider auch nichts... anbei das beispiel in der exe


jo jeder wie er will ;)

Jetzt mal im ernst was sollen die Leute hier mit einer EXE ?
Damit kann dir niemand helfen.

gruss

mkinzler 31. Jan 2010 18:13

Re: break it problem
 
Zitat:

Aber nicht nötig Wink
Zeielumbrüche auch nicht.
Man sollte aber alles tun, um den Code lesbar zu gestalten!

speedy23 31. Jan 2010 18:15

Re: break it problem
 
ja okay das mit der .exe war nur damit ihr sehr was ich meine mit dem hängenbleiben... hier der code

Delphi-Quellcode:

var
  Form1: TForm1;

implementation
const dx=5;
      dy=5;
{$R *.dfm}
 var x,y:integer;
procedure TForm1.PauseknopfClick(Sender: TObject);
begin
  {Spiel pausieren und button pause unsichtbar --> Start sichtbar}
 pauseknopf.visible:=false;
 timer1.enabled:=false;
end;

procedure TForm1.StartknopfClick(Sender: TObject);
begin
  {macht den pauseknopf sichtbar, setzt spiel fort}
  timer1.Enabled:=true;
  pauseknopf.Visible:=True;
end;

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

      if reflektor.left > 110 then
      begin
       case ord(key) of
        vk_left:reflektor.left:=reflektor.left-14;
       end;
      end;

      if (reflektor.left < 426) then
      begin
       case ord(key) of
         vk_right:reflektor.left:=reflektor.left+14;
       end;
      end;
   end;

procedure TForm1.Timer1Timer(Sender: TObject);
var x,y:integer;
begin
   x:=DX;
   y:=dy;

  if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then
  begin
    y := -dy;
  end;
  if (Shape1.Left <= 0) or (Shape1.Left >= image1.ClientWidth - Shape1.Width) then
  begin
    x := -dx;
  end;

  Shape1.Left := Shape1.Left + x;
  Shape1.Top := Shape1.Top + y;
end;





procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;

end;

procedure TForm1.NeuesSpiel1Click(Sender: TObject);

begin
 timer1.enabled:=true;

end;

end.

EWeiss 31. Jan 2010 18:18

Re: break it problem
 
grmmm ..
Immer noch feste werte !
const dx=5;

Wie soll sich der Ball dann bewegen.

EDIT:
Blick da nicht mehr durch.
Man hat dir schon soviele vorschläge unterbreitet und du hast nichts davon angenommen.

Ich beziehe mich hier drauf.
Delphi-Quellcode:
  if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then
  begin
    dy := -dy;
  end;
  if (Shape1.Left <= 0) or (Shape1.Left >= image1.ClientWidth - Shape1.Width) then
  begin
    dx := -dx;
  end;
Scheint aber wieder verworfen zu sein.

gruss

speedy23 31. Jan 2010 18:21

Re: break it problem
 
aber ich muss der konstnten doch einen wert zuweisen? wenn ich ihr x und y zuweise ist das nicht effektiv oder?

mkinzler 31. Jan 2010 18:23

Re: break it problem
 
Zitat:

Zitat von speedy23
aber ich muss der konstnten doch einen wert zuweisen? wenn ich ihr x und y zuweise ist das nicht effektiv oder?

Rate mal warum Konstaten so heissen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr.
Seite 3 von 6     123 45     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