Image ve Line

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
engerex
Üye
Mesajlar: 21
Kayıt: 19 Kas 2010 02:53

Image ve Line

Mesaj gönderen engerex »

Herkese merhabalar.
Deliphide Image bileşeni ile çizgi çizmek için

Kod: Tümünü seç

...Image1.Picture.Bitmap.canvas.moveto(10,10);
Image1.Picture.Bitmap.canvas.lineto(300,50);....
yapmamız yeterliydi.
Firemonkeyde sanırım işler değişmiş.

çizimden önce beginscene, çizim bitince endscene vs. dememiz gerekiyor.
şöyle bir şey.

Kod: Tümünü seç

  Image1.Canvas.BeginScene;

  Image1.Canvas.DrawLine(PointF(0.0, 0.0), PointF(100, 100), 1.0); 

   Image1.Canvas.EndScene;
burada sorun pencereyi küçültüp büyütürseniz çizim kayboluyor yada ekran dışına taşıyıp tekrar ekrana getirdiğiniz kısımlar kayboluyor.

Bunu nasıl çözebiliriz?

İyi çalışmalar.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Image ve Line

Mesaj gönderen SimaWB »

Kodlarınızı TImage'ın OnPaint olayında yazmalısınız
There's no place like 127.0.0.1
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Image ve Line

Mesaj gönderen sabanakman »

Aslında Image nesnesinin amacı, yapılan çizimi akılda tutarak, bu tür kaybolmaları engelleyen tazeleme işlemlerini otomatik olarak işleyen bir mantıkla çalışmaktadır. Bunu da Bitmap özelliğine yapılan çizimle sağlamaktadır. FireMonkey tarafında yöntem biraz değişmiş sanırım ama aşağıdaki gibi bir kod işe yarayabilir.

Kod: Tümünü seç

Image1.Bitmap:=TBitmap.Create(trunc(image1.Width),trunc(image1.Height));
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.DrawLine(PointF(0.0, 0.0), PointF(100, 100), 1.0);
Image1.Bitmap.Canvas.EndScene;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
engerex
Üye
Mesajlar: 21
Kayıt: 19 Kas 2010 02:53

Re: Image ve Line

Mesaj gönderen engerex »

Çizgiler anti aliasing destekli çiziliyor. AA iptal edilebilir mi?
Çizgi çizilen çizgi üzerinden geçtikçe çizgi koyulaşıyor ve kalınlaşıyor. Bu iptal edilebilir mi?
Birde eskisi gibi Move(X,Y) ve Line(X,Y) kullanma imkanı var mı?
Cevapla