Einzelnen Beitrag anzeigen

mimi

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

Re: Eigene Objekte -> PaintBox

  Alt 27. Aug 2005, 19:14
ich habs in der lezten woche versucht und wier nicht hinbekommen der code sieht jetzt so aus:
Delphi-Quellcode:

procedure FillPixel(sx,sy,zx,zy:Integer; PaintBox:TPaintBox);
var
  x,y:Integer;
begin

 { for x:=sx to zx do begin
    for y:=sy to zy do begin
      PaintBox.Canvas.Pixels[x,y]:=clBlack;
    end;
  end;}


  x:=sx; y:=sy;
  while (x <= zx) or (y <= zy) do begin
    inc(x);
    inc(y);

    PaintBox.Canvas.Pixels[x,y]:=clBlack;
  end;
// ShowMessage('OK');
end;

rocedure TForm1.ObenObj(F:TFileName);
var
  i,x1,y1,x2,y2,fx,fy,m:Integer;
  l:TStringList;
begin
  ox:=-1; oy:=-1; m:=0;

  if FileExists(f) = True then begin
    l:=TStringList.Create;
    l.LoadFromFile(f);
    fx:=2; fy:=2;

    for i:=0 to l.Count-1 do begin
      x1:=StrToInt(GetToken(l.Strings[i],':',1));
      y1:=StrToInt(GetToken(l.Strings[i],':',2));
      SetPixel(x1,y1,paintbox2);

      SetPixel(x1*fx,y1*fy,paintbox2);

      if i+1 <= l.Count-1 then m:=+1 else m:=0;

      if m = +1 then begin
        x2:=StrToInt(GetToken(l.Strings[i+m],':',1));
        y2:=StrToInt(GetToken(l.Strings[i+m],':',2));
        SetPixel(x2*fx,y2*fy,paintbox2);
        FillPixel(x1*fx,y1*fy,x2*fx,y2*fy,PaintBox3);
      end;
    end; // for

  end // If
  else
    ShowMessage('Dateinamen gibt es nicht !');
end;
der code sollte folgendes machen:
Wenn ich die pixle vergrößer ändert sich auch die Pos von den pixel, richtig ?
also der abstant wird größer und fillpixel sollt die lücken füllen. aber genau das passiert nicht er zeichnet ein komische 3D gebilde siehe anhang.

das schwarzte objekt ist das orgnial objekt(verkleinert da gestellt) das ganz rechte ist das neue objekte so sollte es aber nicht aussehen.
Miniaturansicht angehängter Grafiken
bild_151.jpg  
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat