Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FireMonkey Resimlerde Pan ve Zoom İşlemleri
#11
(15-03-2018, Saat: 23:04)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba;

Bu konuda 10.2.3 versiyonun bir gelişme yok mu yoksa yine Fesih bey'in belirttiği şekilde mi yapılıyor hala. Kurup deneyen var mı acaba.

İyi çalışmalar.

Merhaba,
Tahminimce o kısım (pan, zoom vb. interaktif etkileşimler) biz geliştiricilere bırakılmış. 
TGestureManager, Pan veya Zoom ile sınırlı olmayıp bir çok kullanıcı etkileşimi içerdiğinden ve TFMXObject sınıfı tarafından ortak kullanılan bir özellik olduğundan TImage için özelleştirilmiş değildir. 
İstediğiniz özellikler Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol tarafından Image bileşenine entegre edilmiş hali açık kaynak kod olarak paylaşılmaktadır.





Kaynak: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#12
Merhaba;

Fesih bey'in örneğine göre birkaç işlem eksik şekilde aşağıdaki şekilde uygulanabilir.


Image nesnesinin Zoom işlemleri için;

1- Forma bir adet Image nesnesi yerleştirin.
2- Image nesnesine herhangi bir resim ekleyin.
4- Object Inspector'dan Formun Touch>InteractiveGestures özelliğinin Zoom özelliğini True yapın.
5- Projenin aşağıdaki aşağıdaki tanımlamaları yapın;

var
  FLastDistance: Integer;
  PinchZoom: TForm1;

procedure TForm1.FormGesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
var
  LObj: IControl;
  LImage: TImage;
  LImageCenter: TPointF;
begin
  if EventInfo.GestureID = igiZoom then
  begin
    LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
    if LObj is TImage then
    begin
      if (not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags)) and
        (not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags)) then
      begin
        { zoom the image }
        LImage := TImage(LObj.GetObject);
        LImageCenter := LImage.Position.Point + PointF(LImage.Width / 2,
          LImage.Height / 2);
        LImage.Width := LImage.Width + (EventInfo.Distance - FLastDistance);
        LImage.Height := LImage.Height + (EventInfo.Distance - FLastDistance);
        LImage.Position.X := LImageCenter.X - LImage.Width / 2;
        LImage.Position.Y := LImageCenter.Y - LImage.Height / 2;
      end;
      FLastDistance := EventInfo.Distance;
    end;
  end;
end;

İşlem tamamdır.

Kaynak : Object Pascal\Mobile Snippets\InteractiveGestures\ImageZoom
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  SGK Evrak Doküman İşlemleri, Belge Gönderme csunguray 3 258 21-02-2018, Saat: 14:06
Son Yorum: csunguray
  Delphi Firemonkey Local İp Adresi Öğrenme esrehmaan 12 1.562 15-02-2018, Saat: 15:15
Son Yorum: elixir84
  Delphi Firemonkey Android İzin Kontrolü esrehmaan 2 742 23-12-2016, Saat: 22:22
Son Yorum: esrehmaan
  Firemonkey Label'a Arkaplan Rengi Vermek Fesih ARSLAN 1 1.559 15-08-2016, Saat: 23:50
Son Yorum: 10.Köy
  Firemonkey (FMX) Nesne Boyutunu (Yükseklik, Genişlik) Yeniden Düzenlemek Fesih ARSLAN 0 1.054 24-07-2016, Saat: 17:16
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi