Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Objekte Vordergrund/Hintergrund(canvas)

  Alt 22. Aug 2004, 13:11
Hallo,
ich habe mehre objekte auf meinem canvas gezeichnet das mache ich so:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  i:Integer;
begin
  StatusBar1.Panels[0].Text:=IntToStr(ObjIndex) + '\' + IntToStr(TempObjIndex);
  Bit.Canvas.Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);;

  for i:=0 to High(Obj) do begin
    Bit.Canvas.Pen.Width:=obj[i].pw;

    Bit.Canvas.Pen.Style:=obj[i].PenStyle;
    Bit.Canvas.Brush.Style:=obj[i].BrushStyle;

    Bit.Canvas.Pen.Color:=obj[i].FColor;
    Bit.Canvas.Brush.Color:=obj[i].BColor;

    if Obj[i].Visible = True then begin
      if i = TempObjIndex then // das obj wurde makriert
        DrawObjt(Obj[i].typ,obj[i].x,obj[i].y,obj[i].w+obj[i].x,obj[i].y+obj[i].h,True)
      else //es ist nicht makriert
        DrawObjt(Obj[i].typ,obj[i].x,obj[i].y,obj[i].w+obj[i].x,obj[i].y+obj[i].h,false)
    end;

  end;


  PaintBox1.Canvas.Draw(0, 0, Bit);
  Bit.Canvas.Pen.Color:=clBlack;
  Bit.Canvas.Brush.Color:=clWhite;
  
  Bit.Canvas.Pen.Width:=PW;
  Bit.Canvas.Pen.Style:=psSolid;
  Bit.Canvas.Brush.Style:=bsSolid;
end;
ich weiß es ist nicht die beste lösung, aber für den anfang solls reichen.

problem ist jetzt: wenn ich merhe objekte gezeichnet habe und die teielweise übereinander liegen verdecken sie sich ja. wie könnte ich das am besten machen, das z.b.das hinter objekte nach vorne geholt wird ???
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat