Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Canvas von zwei verschiedenen proceduren verarbeiten


crackm - Di 27.05.08 10:41
Titel: Canvas von zwei verschiedenen proceduren verarbeiten
Die eigentliche Frage ist kann man ein Canvas von zwei procedure gleichzeitig bemahlen lassen? Und zwar habe ich das Problem, dass der Canvas nur in teilen gemahlt werden soll d.h. von zwei verschiedenen funktionen. Die funktionen an sich alleine Funktionieren, allerdings sollten diese gleichzeitig funktionieren(ihre aufgabe erfüllen).
Hier der Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
i:=1;
        while i<=pl do begin
        pys:=pys+5;
        i:=i+1;
        ahead.Draw(MyWorld, pr, px, py, pl);
        tail.Draw1(MyWorld, pr, px, pys, i);
        hide();
        delay(500);
        if y=py then continue;
        end;

Die Bieden proceduren sind Draw1 und Draw, wie mann hier sieht zeichnen Kreise in verschiedenen Positionen, in diesem falle senk und wagerecht. Hier der Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 procedure TWormSeg.Draw(MyWorld:TWorld; r,x,y,l:integer);
 begin
  World:=MyWorld;
   with MyWorld.CanWorld do begin
     while l <> 0 do begin
       Ellipse(x+r, y+r, x-r , y-r);
       l := l -1;
       x:= x+2*r;
     end;
   end;
 end;


Hier der Teil wo das ganze nicht mehr funktioniert:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TWormSeg.Draw1(MyWorld:TWorld; r,x,y,l:integer);
 begin
  World:=MyWorld;  //<-- hier bricht das Zeichnen ab.
   with MyWorld.CanWorld do begin
     while l <> 0 do begin
       Ellipse(x+r, y+r, x-r , y-r);
       l := l -1;
       y:= y+2*r;
     end;
   end;
 end;


Wenn es doch umsetzbar ist würde ich micht freuen, wenn jemand verraten würde wie.
Vielen schon mal im Vorraus.


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 27.05.2008 um 11:05