merhabalar. aşağıdaki kodlarla bir resimdeki siyah pixelleri forma alıyorum. Formun aktif pencere olma özelliği gidince (başka bir pencereyi tıklayınca falan) çizim kayboluyor. neden kaynaklanıyoru olabilir?
VAR
i,j: integer;
begin
for i:=0 to image1.Width do
begin
for j:=0 to image1.Height do
begin
if image1.Canvas.Pixels[i,j]=clblack then
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.Pixels[i,j]:=clblack;
end;
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
VAR
i,j: integer;
begin
for i:=0 to image1.Width do
begin
for j:=0 to image1.Height do
begin
if (image1.Canvas.Pixels[i,j]=clblack) then
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.Pixels[i,j]:=clblack;
end;
end;
end;
end;
formun onpaint olayına kodunuzu yazmanızı tavsiye ederim. Veya bir fonksiyon içine alırsınız kodunuzu ve gerekli şartlar sağlandığında formun onpaintinde çalışır.
hocam ben bu çizim işlemini bir kere değil değişen şartlara göre onlarca kez yapabilirim. o nedenle onpaint olayına yazılacak kod sabit kalır ve işimi görmez diye düşünüyorum. şu anda deneme imkanım yok, canvas refresh gibi bir fonksiyon var mı diye yarın sabah bakayım.
ilginiz için teşekkürler.