M
mouse_ingrief
Unregistered / Unconfirmed
GUEST, unregistred user!
下面这段程序编译通过,可以执行。
procedure TForm1.Button1Click(Sender: TObject);
var
x,y : Integer;
BitMap : TBitMap;
P : PByteArray;
Str: string;
begin
BitMap := TBitMap.create;
try
Str := ExtractFilePath(Paramstr(0)) + 'Blue hills.bmp';
BitMap.LoadFromFile(Str);
for y := 0 to BitMap.height - 1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.width - 1 do
P[x] := y;
end;
Canvas.draw(0,0,BitMap);
finally
BitMap.free;
end;
end;
我想问的是:P是指向数组的指针,那引用指针变量不是P^[x]这样吗?P[x] := y;中的P[x]是什么道理?
问题2:上面这段程序的效果是图片的左边的一截区域变成其他的图案,其他的部分不变。
就是for x := 0 to BitMap.width - 1 do
P[x] := y;
这几句,看不明白在干什么?
希望得到大家的帮助!谢谢!
procedure TForm1.Button1Click(Sender: TObject);
var
x,y : Integer;
BitMap : TBitMap;
P : PByteArray;
Str: string;
begin
BitMap := TBitMap.create;
try
Str := ExtractFilePath(Paramstr(0)) + 'Blue hills.bmp';
BitMap.LoadFromFile(Str);
for y := 0 to BitMap.height - 1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.width - 1 do
P[x] := y;
end;
Canvas.draw(0,0,BitMap);
finally
BitMap.free;
end;
end;
我想问的是:P是指向数组的指针,那引用指针变量不是P^[x]这样吗?P[x] := y;中的P[x]是什么道理?
问题2:上面这段程序的效果是图片的左边的一截区域变成其他的图案,其他的部分不变。
就是for x := 0 to BitMap.width - 1 do
P[x] := y;
这几句,看不明白在干什么?
希望得到大家的帮助!谢谢!