so hab alles her geLitten. geht auch alles ganz gut
was mich jetzt aber noch stört ist das der mir beim start nich gleich anzeigt sondern erst wenn man reset oder start drückt kann da mir mal jemand sagen wie man das hin bekommt
Delphi-Quellcode:
procedure TForm1.Formcreate(Sender: TObject);
begin
x0:=148;
y0:=128;
form1.button2.Visible:=true;
form1.Button4.Visible:=false;
timer1.Enabled:=false;
doublebuffered := true; // anzeigen der erzeugten bitmaps
w:= paintbox1.width ;
h:= paintbox1.height ;
paintbox1.canvas.brush.color:=clwhite;
bitmap1 := Tbitmap.Create;
bitmap2 := Tbitmap.Create;
bitmap1.PixelFormat := pf8bit;
bitmap1.Width := w;
bitmap1.height := h;
bitmap1.TransparentColor := clBtnFace;
bitmap2.PixelFormat := pf8bit;
bitmap2.Width := w ;
bitmap2.height := h ;
with bitmap1.Canvas do begin
ellipse(x0-r1,y0-r1,x0+r1,y0+r1); //zentraler Kreis
ellipse(x0+r1,y0+r2,x0+r1+2*r2,y0-r2); //außen Kreis
pen.Color:=clred;
ellipse(x0+r1+2,y0+2,x0+r1-2,y0-2);
pen.Color:=clblack;
end;
paintbox1.Canvas.Draw(0,0,bitmap1);
end;
falls der ausschnitt nich reicht oben ist ja der gesammte angehängt
hoffe ihr könnt mir helfen
achso hab gleich noch ein problem
wenn ich stop drücke und dann wieder ohne was zu machen wieder start mache soll der mir ander stelle weiter malen das macht er aber die alte bahn soll auch erhalten werden und das wird immer gelöscht
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
winkel:=winkel+1; // pro schritt erhöhung des winkels
winkelrad:=winkel/180*pi;
xn:=x0+round((r1+r2)*cos(winkelrad)-r2*cos((r1+r2)*winkelrad/r2));
yn:=y0+round((r1+r2)*sin(winkelrad)-r2*sin((r1+r2)*winkelrad/r2));
xk:=x0+round((r1+r2)*cos(winkelrad));
yk:=y0+round((r1+r2)*sin(winkelrad));
with bitmap1.Canvas do begin
brush.Color:=clwhite;
pen.Color:=clwhite;
rectangle(0,0,w,h);
pen.Color:=clblack;
ellipse(x0-r1,y0-r1,x0+r1,y0+r1);
ellipse(xk-r2,yk-r2,xk+r2,yk+r2);
pen.Color:=clred;
ellipse(xn+2,yn+2,xn-2,yn-2);
pen.Color:=clblack;
end;
bitmap2.Canvas.Pixels[xn,yn]:=clblack;
paintbox1.Canvas.Draw(0,0,bitmap2);
paintbox1.Canvas.Draw(0,0,bitmap1);
paintbox1.Canvas.CopyMode:=cmSrcAnd;
paintbox1.Canvas.CopyRect(rect(0,0,w,h) ,bitmap2.Canvas, rect(0,0,w,h));
paintbox1.Canvas.CopyMode:=cmSrcCopy ;
end;
procedure TForm1.Button4Click(Sender: TObject); //Stop knopf
begin
form1.button2.Visible:=true;
form1.Button4.Visible:=false;
timer1.Enabled:=false;
end;