[delphi] stałe rysowanie na formie

0

Dzień dobry!
rysuję kółeczka w ten sposób na formie :

procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.Canvas.Brush.Color:=clred;
  form1.Canvas.Ellipse(50,100,90,140);
  form1.Canvas.Brush.Color:=clblue;
  form1.Canvas.Ellipse(100,100,140,140);
end;

niestety kółeczka znikają jak się formę przykryje innym oknem:(
wiem, że się coś takiego da draw.. czy coś takiego ale nie mam pojecia bo zgubiłem zródła z przykładami. proszę o pomoc lub skierowanie :]

0
buba napisał(a)

Dzień dobry!
rysuję kółeczka w ten sposób na formie :

procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.Canvas.Brush.Color:=clred;
  form1.Canvas.Ellipse(50,100,90,140);
  form1.Canvas.Brush.Color:=clblue;
  form1.Canvas.Ellipse(100,100,140,140);
end;

niestety kółeczka znikają jak się formę przykryje innym oknem:(
wiem, że się coś takiego da draw.. czy coś takiego ale nie mam pojecia bo zgubiłem zródła z przykładami. proszę o pomoc lub skierowanie :]

To możesz na wiele sposobów rozwiązać np: po przez timer albo po przez procedurke OnPaint.
Na przyszłość proponuje ci nie rysować tak jak ty rysujesz bezpośrednio na canvasie formy, raczej proponował bym Ci tak:
utwórz sobie bitmpake, rysuj na jej canvasie, a pozniej tylko używasz: Canvas.Draw(0,0,bmp) i w taki sposób pozbędziesz się migania...

0
buba napisał(a)

Dzień dobry!
rysuję kółeczka w ten sposób na formie :

procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.Canvas.Brush.Color:=clred;
  form1.Canvas.Ellipse(50,100,90,140);
  form1.Canvas.Brush.Color:=clblue;
  form1.Canvas.Ellipse(100,100,140,140);
end;

niestety kółeczka znikają jak się formę przykryje innym oknem:(
wiem, że się coś takiego da draw.. czy coś takiego ale nie mam pojecia bo zgubiłem zródła z przykładami. proszę o pomoc lub skierowanie :]

procedure TForm1.Button1Click(Sender: TObject);
var r:trect;
begin
r:=clientRect;
Canvas.Pen.Width:=5;
Canvas.Ellipse(r);
end;
0

Witam. Proponuję abyś sobie utworzył komponent Timage na formie, nazwij go naprzykład tlo,

następnie aby trwale rysować napisz

tlo.canvas.>>dalsze rysowanie>>

np tlo.canvas.recetange(10,10,20,20);

albo lepiej

with tlo do
  begin
    Canvas.Rectangle(10,11,200,300);
    ...........
  end;

pozdrawiam Paulus :)

0

dzięki wielkie! bo robię gierkę prostą dla dziecka 6letniego jesczze raz dzieki :]
a może znacie jakieś nazwy gierek dla bardzo małych dzieci bo ja nie moge znaleŹć jej żadnych:( i musze sam coś napisać prostego ;myszką umie już klikać :] ale z klawiszami sobie jeszcze nie radzi :] a tak to się przynajmniej zajmie na jakiś czas :] wielkie dzieki :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1