Das Thema ist vll sehr alt, aber das Problem ist das selbe.
Ich arbeite mit Delphi 7 und will für mein MSA-Referat in Informatik (bin Schüler) mit meinem Freund ein Minigolfprogramm bauen.
Mein Ziel ist es, zur Richtung- und Geschwindigkeitsberechnung eine Linie von der Maus zur Kugel zu erzeugen. Bisher hab ich immer mit einem image gearbeitet. Jetzt versuch ich es, wegen besserer Handhabung mit Bitmap und Paintbox. Bei image gab es den Befehl "image.picture:=Nil;". Gibnt es wirklich keinen Befehl heutzutage, der das auch mit einer Bitmap/Paintbos macht?
Hier mal der Quelltext:
Delphi-Quellcode:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if not Timer1.Enabled then begin
bmp.Canvas.Pen.Color:=ClWhite;
bmp.Canvas.brush.Color:=ClWhite;
bmp.Canvas.MoveTo(trunc(d-PaintBox1.Left),trunc(e-PaintBox1.top));
bmp.Canvas.LineTo(Maus.x,Maus.y);
PaintBox1.Repaint;
bmp.Canvas.Brush.Color:=clBlue;
bmp.Canvas.Pen.Color:=ClBlack;
Maus:=PaintBox1.ScreentoClient(Mouse.CursorPos);
d:=(x1+x2)/2;
e:=(y1+y2)/2;
bmp.Canvas.MoveTo(trunc(d-PaintBox1.Left),trunc(e-PaintBox1.top));
bmp.Canvas.LineTo(Maus.x,Maus.y);
bmp.Canvas.Ellipse(x1,y1,x2,y2);
PaintBox1.Repaint;
end;
end;
Wie ihr seht, übermalt er mit Weiß die alte Linie und berechnet die neue. Leider blinkt die Linie imemr wieder und auch ein kleiner Teil in der Kugel (auch in Paintbox gezeichnet). Die Kugel ist innen Blau und dauernd geht halt ein weißer Strich über eine bestimmte Stelle. Könnt euch das auch mal selbst anschauen, hier eine Zip-Satei mit allen Dateien:
http://rapidshare.com/files/439357797/Test.zip