Also ich habe vollgendes Problem hoffe ihr könnt mir helfen.
Zum einem benutze ich die Funktion getcursorpos() die variable in den Klammern ist vom typ tpoint soweit alles ok, aber das ergebnis welches es liefert ist oder schein zumindes vollkommen willkürlich und ich würde ausßerdem gern die position im canvas bestimmen und nicht im ganzen Fenster. Hier die Funktion die ich benutze:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.TImage(Sender: TObject); var pt:tpoint; begin getcursorpos(pt); showmessage('The cursor pos. is: x='+inttostr(pt.x)+' y='+inttostr(pt.y)); end; |
mit
Delphi-Quelltext
zum anderem habe ich lange im netz gesucht und keine wirkliche möglichkeit gefunden, wie mann den Inhalt des Canvas löscht, deshalt habe ich eine Funktion geschriebne, die ein Weißes Viereck rüberzeichnet gibt eine bessere Alternative?
Und letztendlich bezieht sich die letzte Frage auf mein größtes Problem und zwar soll eine Figur in schritten sich bewegen, also würde es für den Syntax heißen malen, löschen, malen einen schritt weiter. Aber da es ja schritte sein sollten habe ich zu der funktion sleep gegriffen, die allerding bei Werten über 100 einfach hängt.
Hier die Vorwertsbewegung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| while x<>px do begin px:=px+10; hide(); ahead.Draw(MyWorld, pr,px,py, pl); sleep(100); end; |
Aber die schritte dabei sind nicht sichbar. Erhöht mann den Wert bei sleep tritt das oben genannte Problem ein.
x ist übrigens der Wert der position des Cursors im Canvas, wobei ich das auch schon manuell festzulegen versucht habe.
Über Ideen und vorschläge würde ich mich sehr freuen.
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt