Entwickler-Ecke

Multimedia / Grafik - Canvas in FormCreate


beastofchaos - So 02.01.11 13:07
Titel: Canvas in FormCreate
Hi Leute, habe mich mal durch einige Threadds gewühlt, aber finde keine geeignete Lösung.
Also: In FormCreate(bei Programmstart) kann man aus irgendeinem Grund (direkt) nicht Canvaszeichnungen machen.
hier ein Beispiel an Hand einer Ellipsenzeichnung:


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm.FormCreate(Sender: TObject);
begin
Canvas.Pen:=ClBlack;
Canvas.Ellipse(x1,y1,x2,y2);  
end;



Gibt es keinen direkten Befehl, der einmalig zeichnet in Formcreate. Ich will nämlich nciht so Ressourcenverschwendend sein und z.B. das so gestalten:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm.FormCreate(Sender: TObject);
begin
Timer1.Enabled:=True;
end;

procedure TForm.Timer1Timer(Sender: TObject);
begin
Canvas.Pen:=ClBlack;
Canvas.Ellipse(x1,y1,x2,y2);
Timer1.Enabled:=False;
end;



Freue mich auf Antwort, MfG Thomas


bummi - So 02.01.11 13:17

Im OnPaint des Forms, wenn es nicht mehr gewünscht ist OnPaint abhängen oder nur per Flag ausführen.
Gegf. Invalidate aufrufen um "Malreste" zu entfernen.