forma çizdiğim şekil form arka plana gidince kayboluyor.??

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

forma çizdiğim şekil form arka plana gidince kayboluyor.??

Mesaj gönderen nitro »

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?

Kod: Tümünü seç

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;
Kullanıcı avatarı
mersoy328
Üye
Mesajlar: 13
Kayıt: 26 Tem 2003 03:40
İletişim:

Mesaj gönderen mersoy328 »

Merhaba,

Kaybolmasının sebebi formun canvasının refreshlenmesi olması lazım yanlış hatırlamıyorsam. Eğer draw ettiğiniz resim hep form üzerinde bulunacaksa

Kod: Tümünü seç

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.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

O zaman çizimleri Forma değil başka bir TImage nesnesinin Bitmap Canvas'ına yap.
Resim
Resim ....Resim
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

teşekkürler @mrmarman. image nesnesine çizince kalıcı oldu.
Cevapla