Co jest nie tak z stworzeniem bmp

0

Czesc
Dlaczego nie chce mi rysować tej bmp (komenda Draw), jezeli mam procedure:

procedure TForm1.Button2Click(Sender: TObject);
var
Bat : TBitmap;

begin
Bat := TBitmap.Create;
Bat.Height:=192;
Bat.Width:=192;

Bat.Canvas.Brush.Color := colors[kol];
Bat.Canvas.Pen.Color := colors[kol];
Bat.Canvas.Polygon([Point(x1, y1), Point(x2, y2), Point(x3, y3)]);

Canvas.Draw(0,0, Bat); // i tutaj jest problem
end;

Jezeli zamiast Bat.Canvas.Polygon uzyje Bat.Canvas.Pixel to wszystko jest OK.
</b>

0
procedure TForm1.Button1Click(Sender: TObject);
var
  Bat : TBitmap;
begin
  Bat := TBitmap.Create;
  Bat.Height:=192;
  Bat.Width:=192;
  Bat.Canvas.Brush.Color := clBlack;
  Bat.Canvas.Pen.Color := clBlack;
  Bat.Canvas.Polygon([Point(10, 20), Point(50, 30), Point(10, 40)]);
  Canvas.Draw(0,0, Bat); // i tutaj jest problem
  Bat.Free; // to nie zmienia faktu, ale tak byc powinno
end;

Nie wiem co Ci nie działa, nie zdefiniowałeś błędu [glowa] . Dla mnie ten powyższy kod działa (nie mam Twojej tablicy colors, ani zmiennych z punktami.

0

Jezeli wyswietlam rysunek na Canvas (bez tworzenia bmp) to go widać na formie.
Jezeli chce wyswietlic to samo za pomocą Canvas.Draw to nie mam rysunku na formie. Faktycznie jezeli wstawie jakies stale wartosci wspolrzednych to jest w porzadku. Musze sprawdzic co jest z wspolrzednymi. Ale przeciez w pierwszej opcji wyswietla sie na formie???!!!!

0

kochzg: twoja procedura u mnie rowniez dziala poprawnie. wstawilem jedynie konkretne wartosci zamiast zmiennych, ale to na 100% nie ma znaczenia.

0
czarownik napisał(a)

kochzg: twoja procedura u mnie rowniez dziala poprawnie. wstawilem jedynie konkretne wartosci zamiast zmiennych, ale to na 100% nie ma znaczenia.

wlasnie moze miec i to spore... zdebuguj aplikacje i zobacz czy w tablicy nie wystepuja ci wartosci ujemne lub wieksze od rozmiaru bmp... (znaczy czy sa wartosci mieszczace sie w obszarze bmp)

0

migajek: no to jest chyba oczywiste, ze jak jest bitmapa o rozmiarach 100x100 pikseli to nikt nie bedzie rysowac jakiejsc bazgroly gdzies zaczynajac od punktu 150x200 :) no ale moze faktycznie ma to jakies glebsze znaczenie - nie znam sie na tym szczerze mowic :)

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