Kolorowanie pikseli o współrzędnych ze StringGrida

0

Proszę o pomoc. Jak zamalować piksele o współrzędnych z tablicy?
Kombinowałem w ten sposób:

procedure TForm1.Button2Click(Sender: TObject);
var
  xs,ys:integer;
  punkty:array of punkt;
  i:integer;
begin 
SetLength(punkty,Form1.StringGrid1.Rowcount);
for i:=1 to Form1.StringGrid1.RowCount-1 do
  begin
    punkty[i].x:=round(StrToInt(Form1.StringGrid1.Cells[1,i]));
    punkty[i].y:=round(StrToInt(Form1.StringGrid1.Cells[2,1]));
    punkty[i].nr:=Form1.StringGrid1.Cells[0,i];
  end;

for i:=1 to high(punkty) do
  begin
    Form2.Image1.Canvas.Pixels[punkty[i].y,punkty[i].x]:=clBlack;
  end;

Przy próbie odpalenia wyskakuje błąd: [Error] Unit1.pas(109): Incompatible types: 'Integer' and 'Double'

Nie wiem co zrobiłem źle (Być może wszystko, to mój pierwszy program). Proszę o pomoc.

0

Przy próbie odpalenia wyskakuje błąd: [Error] Unit1.pas(109): Incompatible types: 'Integer' and 'Double'

Zapewne tu:

punkty[i].x:=round(StrToInt(Form1.StringGrid1.Cells[1,i]));
punkty[i].y:=round(StrToInt(Form1.StringGrid1.Cells[2,1]));

Round zwraca zaokrągloną liczbę typu Extended, a punkty[i].x i punkty[i].y pewnie są typu całkowitoliczbowego, ale oczywiście nie łaska podać deklaracje wszystkich przedstawionych tutaj własnych typów...
Jezu, co ja napisałem... Nie zwraca Extended, tylko jako argument przyjmuje Extended, zwraca Int64; Napisz w której linii dokładnie występuje błąd;

0

błąd dotyczy linijki: Form2.Image1.Canvas.Pixels[punkty[i].y,punkty[i].x]:=clBlack;

0

Dobra już mam...

w type punkt=record
podałem x,y:double zamiast integer

Sorry za kłopot

0

Tak na przyszłość: przyjęło się poprzedzanie nazw typów literą T, np.:

Type TPoint = Record
               X, Y: Integer;
              End;

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