https://www.youtube.com/watch?v=LPFRUoq5NZg&t=1759s

Eğitim İçeriği

Bölüm #1

  • Action nedir?
  • Action ile neler yapılır?
  • Küçük bir demo

Bölüm #2

  • Share Sheet kullanımı
  • TabAction kullanımı
  • Örnek uygulamalar.

Action Nedir?

Yapılması gereken işlemleri paket haline getiren kısaltan olaylardır. Uygulamanın en küçük yapı taşı gibi düşünülebilir. Bu olayları bütünleştirdiğimizde ortaya fonksiyonlar çıkar. Fonksiyonların bir araya gelmeside uygulamamızı oluşturur.

Action ile Neler Yapılır?

  • Kod revizyonunu kolaylaştırır.
  • Kod verimliliğini arttırır.
  • Etkili ve hızlı arayüz geliştirme sağlar.
  • Standartlarınızı korumanızı sağlar.
  • Pratik kullanımı ile kolay prototip çıkartmanızı sağlar.
  • Tekrar eden işlemleri hızlandırır.
  • Aynı kodu birden fazla yöntemle çalıştırabilmeyi sağlar.

DEMO

Uygulamamızı açıyoruz. File > New > Multi device application > Blank Application. Palette bölümünden Action List ekliyoruz. Eklediğimiz Action Liste çift tıklayarak yada sağ tuş> Action List Editor’e tıklayarak Action listesine ulaşabiliyoruz.

Açılan listeye sağ tuş> New Action seçeneğiyle action oluşturabilirsiniz. Uygulamamızın içine yeni bir action oluşturuyoruz. Action > object inspector > name →HelloWorldAction - text →Hello World  şeklinde isimlendiriyoruz. Object inspector> category > kısmından action’ı kategorilendirebiliyoruz. Bu bize daha yönetilebilir bir sistem sağlıyor. Biz catgory kısmına main değerini vererek kategorilendiriyoruz.

Action’ın object inspector kısmında bulunan UnsupportedPlatforms ve UnSupportedArchitectures alanları actionların seçili platformlarda aktif olup olmayacağını anlayabileceğimiz alanlardır.

TActionların event kısmına geliyoruz burada 3 fonksiyonumuz var.

OnExecute : Doğrudan bir action’ın çalışması execute olmasıyla alakalıdır. Eğer componentin adıyla çağırırsak HelloWorldAction.Execute yaparsak otomatik olarak çağrılmış olur. Eğer doğrudan bir componente çağrılacağın yer gönderenin bu componenttir dersek otomatik olarak bu compomnent bunu tetiklemiş olur. Tetikleme esnasında koda müdahale etmek istersek OnExecute alanında herhangi bir değer girebiliriz. OnExecute kısmına çift tıklıyoruz bizim için procedure oluşturuluyor.


procedure  TForm1.HelloWorldActionExecute(Sender : TObject);
begin
ShowMessage(‘Hello World : OnExecute’ );
end;

Formumuza geçelim ve HelloWorld fonksiyonumuzu bir butona bağlıyalım. Button ekliyoruz. Button1>  object inspector> action ve istediğimiz action seçiyoruz. Bağlantı sağlandı butonumuzda fonksiyonumuzun text’indeki HelloWorld yazıyor. Buttonumuzun object inspector’ındaki action alanının solundaki > (büyüktür) sembolüne tıklayarak actiona gitmeden burada düzenlemeler yapabiliriz. Bu haliyle çalıştırıyoruz ve butona tıklayınca HelloWorld : OnExecute mesajını görüyoruz.

Standart Action : Sınıflardan türetilen componentlere bağlı olarak geliştirilmiş olan actionları kapsar.

TControlAction : Tamamen bir kontrole bağlı olarak ve o kontrolün yönetebileceği kontrollerle alakalı actionları oluştururken kullanılır.

BÖLÜM #2

Share Sheet : Mobil cihazlardaki paylaş butonu ve bu paylaş butonundan çıkan pop-up’un yönetimini sağlayan bir actiondır. Share sheet ile resim ve metin paylaşımı yapılabiliyor. ShowShareAction.BeforeExecute burada action execute edilmeden hemen öncesini algılayıp yapmak istediğiniz değişiklikleri üzerine atayarak işlemlerini hazır hale getirmiş oluyor. Bu sayede kullanıcı bir resmi ya da metni kolaylıkla paylaşabiliyor. Action componentinin üzerinde doğrudan bir bitmap ve textmessage alanlarını kullanarak bu işlemleri gerçekleştiriyoruz.

ShareSheet ile demo

Uygulamamız şu şekilde çalışıyor Take Photo ile fotoğrafımızı çekiyorve share ile paylaşım kutucuğu açılıyor ve gönderim gerçekleşiyor. ShareSheet Embarcadero’nun örnek kodları arasında yer alan bir proje. Share sheet’in action ile ilgili gerçek bir ortamdaki örnek kodlarını birlikte inceleyelim.

Action liste çift tıklıyoruz, 3 action eklenmiş olduğunu görüyoruz. Bunlar;

ShowShareSheetAction1 → Fotoğrafı paylaşmak için bir action

Action1

TakePhotoFromCameraAction1→Kameradan fotoğrafı çekmemizi sağlayan bir action

New standart action classes penceresinden bu actionu görebiliriz. Bu action çekme işlemini tamamladığında hangi işlemleri yapıyormuş inceleyelim.


procedure TShareSheetForm.TakePhotoFromCameraAction1DidFinishTaking(Image:TBipmap);
begin
{display the Picture taken from the camera to the Image control}
ImgCameraPicture.Bitmap.Assign(Image);
end;

ImgCameraPicture adında bir compenenti var. Bu componentin üzerine doğrudan kendisine gelen anlık çekilen resmin bitmap dosyasını assign ediyor.

ShowShareSheetAction’ ın event’ında OnBeforeExecute var. Buraya çalışmadan öncesinde yapmak istediğimiz işlemi atıyoruz. Bu action’ın kodlarını inceleyelim;


procedure TShareSheetFormçShowShareSheetAction1BeforeExecute(Sender : Object);
begin
{Show the share sheet}
ShowShareSheetActin1.Bitmap.Assign(ImgCameraPicture.Bitmap);
end;

ShareSheetAction’ı açmadan önce içerisine arayüzündeki ImgCameraPicture.Bitmap.Assign ediyoruz böylelikle paylaşma ekranını size sunmuş oluyor

TabAction Kullanımı

Standart Action;

NextTab(TNextTabAction)

PreviousTab(TPrevious TabAction)

Title(TControlAction)

3 Fonksiyon belirledik.

Title : Aktif ettiğimiz tab’ın hangi başlığa aitse onu yazması için.

Next Tab ve Previous Tab : Tablolar arasında bir öncekine bir sonrakine geç işlemini yaparlar.

Yeni bir uygulama oluşturuyoruz. File> New> Multi Device Application> Blank application. Uygulamamıza bir TabControl ekliyoruz. Palette> toolbar ekliyoruz ve içerisine 2 adet button ve 1 adet label ekliyoruz. TabControl’ün üstüne sağ tuş 4 adet item ekliyoruz. TabControl > align > center – Button1 >align > left – Button2 > align > right – label1>align > client – label1> horzalign >center seçtik bu sayede label’a yazdığımız text’in ortalanmasını sağlıyoruz. Componentlerimiz hazır.

Gesture Management ve Action list ekleyelim. Action liste çift tıklayarak açalım. Listeye sağ tuş > Standart Action List içerisinden Next TabAction, Previous TabAction, Control Action seçelim. Control Action >name → title action olarak değiştirdik. Standart Action classes da tab grubundan aldığımız için hepsini tab isminde otomatik bir kategorilendirilme yapıldığını görüyoruz.

Gesture Manager: Kullanıcının arayüzde yapacağı parmak hareketlerini algılayan bir component yönetici sınıfı. Bu sınıfın erişimi için tab üzerinde Touch> Gesture Manager alanında Gesture Manager seçerek bağlamasını yapıyoruz. Böylelikle tabControl içerisinde OnGesture olayına çift tıklayıp yazmak istediğimiz event’ı yazıyoruz. Parametre EventInfo’su geliyor.


procedure TForm1.TabControlGesture(Sender : Object const EventInfo: TGestureEventInfo :var Handled :Boolean) ;
begin
 case EventInfo.GestureID  of
  sgiLeft:
   begin
    TabControl.Next;
    Handled:= true;
   end;
  sgiRight:
   begin
    TabControl.Previous;
    Handled:= true;
   end;
 end;
end;

Left bir sonraki sayfaya geç yani tabcontroldeki bir sonraki sayfasına geç analamındadır. Right ise önceki sayfaya gider.

Arayüzümüzü tasarlayalım. Buttonların görüntüsü için object inspectorda > style lookup içerisinde uygun bulduklarınızı kullanabilirsiniz. Biz sol için <  sağ için > sembollerini kullandık. Label’ın action’ına titleActionu bağlıyoruz. TitleActionu execute edebilmek için olayını anlamamız gerek. Butonlara bastığımızda hangi tab aktifse o tab TitleActionda yazsın istiyoruz. TabItemlara isimlendirme yapalım. TabItem1 > name→ 1.adım – TabItem2>name →2.adım- TabItem3> name → 3.adım- TabItem4> name→ 4.adım. Daha iyi bir görüntü için TabPosition > none yaptık. Geçişleri net görebilmek için her bir sayfaya farklı componentler yerleştiriyoruz. Sırayla actionları bağlayalım. Button1> action> Previous TabAction – Button2> action > Next TabAction . Label1> text → lblTitleAction tab geçişlerine göre title’ın güncellenmesi için ActionList> object inspector >OnUpdate çift tıklıyoruz.


procedure TForm1.ActionListupdate(Action : TBasicAction var Handled : Boolean);
var
Ltab :TTabItem;
Begin
Ltab := TabControl.ActiveTab;
İf Action = TitleAction then
LblTitleAction.Text:= Ltab.Text;

Update olduktan sonra aktif tab’ı ele alarak o tab’ın içerisindeki title değerini kontrol ederek label’a atamış olduk. Action tablolarımızda doğrudan hangi actionu yöneteceğini bildirmemiz gerekiyor bunun içinde Next TabAction> object inspector >TabControl de tabcontrol seçtik. Bunu hepsi için uyguluyoruz. Çalıştırıyoruz çalıştığı anda TitleActionda 1.adım yazdığını görüyoruz ve geçişler sağlanıyor güncellemeler yapılıyor.

Cam ++

CAM++

CNC Tezgahlara Program Yazan Program.

CAM++ Nedir?

CAM++, makine üreticisi firmaların, kendi ihtiyaçlarına göre özelleştirilmiş CAM (Computer-Aided Manufacturing) programlarını parametrik olarak oluşturabilecekleri gelişmiş bir yazılım geliştirme ortamıdır. Bu , firmaların üretim süreçlerini optimize etmelerine, verimliliklerini artırmalarına ve pazardaki rekabet güçlerini yükseltmelerine yardımcı olur. CAM++ ile, üretim alanında esneklik kazanırken, iş akışlarınızı hızlandırabilir ve kaynakları daha etkin kullanabilirsiniz.

Özellikler

Kapsamlı API Desteği

CAM++ , CAD/CAM süreçlerinizi basitleştiren geniş kapsamlı API desteği sunar. Karmaşık geometrik hesaplamalar, 3D modelleme ve hassas üretim verileri işleme gibi ihtiyaçlarınıza tam çözüm sunar.

Kolay Entegrasyon

CAM++ , mevcut sistemlerinize hızlı ve verimli bir şekilde entegre edilebilir. Özellikle iş akışınıza tam uyum sağlayarak üretkenliğinizi artırmak için tasarlandı.

Hassas Üretim Kontrolü

CAM++ , CNC makinelerinizin hassas kontrolünü sağlar. Gerçek zamanlı veri işleme ve programlama ile üretim süreçlerinizi hatasız yönetebilirsiniz.

Kimler İçin?

Makine Üreticileri

Kendi makineleri için özelleştirilmiş CAM programları geliştirmek isteyen makine üreticileri, CAM++ ile parametrik ve esnek çözümler oluşturabilirler.

CNC Tezgah Operatörleri

CAM++ , farklı üretim senaryoları için hızlı ve esnek çözümler oluşturmak isteyen CNC tezgah operatörlerine yönelik ideal bir araçtır.

Endüstriyel Otomasyon Firmaları

Üretim süreçlerini optimize etmek ve verimliliği artırmak isteyen endüstriyel otomasyon firmaları, CAM++ ile üretim hatlarında esnek ve özelleştirilebilir çözümler geliştirir.

Neden CAM++?

CNC Üniteniz ile Entegre Çalışan CAM Çözümleri

CAM++ size CNC tezgahınıza özel, ünitenizin içerisinde entegre çalışan güçlü bir CAM yazılımı sunar. Bu sayede, dış yazılımlarla vakit kaybetmeden CAD ve CAM işlemlerini tek bir ortamda yapabilirsiniz.

Zamandan Kazanın, Verimliliğinizi Artırın

CAM++ ile tüm CAD/CAM işlemlerinizi aynı platformda yaparak, iş süreçlerinizi hızlandırır ve zaman tasarrufu sağlarsınız. Bu, iş verimliliğinizi önemli ölçüde artırırken, üretim hattınızdaki duraksamaları minimuma indirir.

Kolay Kullanım ve Parametrik Ekranlarla Esneklik

Kullanıcı dostu arayüzler ve parametrik ekranlar sayesinde CAM++ kullanımı son derece kolaydır. Bu özellikler, farklı üretim senaryolarına hızlıca uyum sağlamanızı ve ihtiyacınıza göre özelleştirilmiş çözümler geliştirmenizi mümkün kılar.

Rekabette Bir Adım Önde Olun

CAM++’ın sağladığı verimlilik, hız ve esneklik avantajlarıyla rakiplerinizin önüne geçin. Üretim maliyetlerinizi düşürürken, iş gücü ve zaman yönetiminizi optimize edin.

Firma Bilgileri


Camart Araştırma Geliştirme Yazılım Otomasyon San. Tic.Ltd. Şti.

Mersis no : 3356 7133 6775 9746

info@camartarge.com

Vergi Dairse / no : Pamukkale v.d. 196 074 62 30

Tel : +90 850 333 80 20

İban (TL): TR30 0020 5000 0085 3809 5000 03

Arge :

Pamukkale Üniversitesi teknoloji geliştirme bölgesi (Teknokent)

Kınıklı mah. Hüsseyin yılmaz cad. no 67

idari bina d blok no g05 Pamukkale / Denizli

İban (USD):TR03 0020 5000 0085 3809 5001 01


Barbaros Mah. Halk Cad. No 47 / 2 34746 Ataşehir İstanbul

İban (Euro):TR73 0020 5000 0085 3809 5001 02

 
Harita verileri ©2015 Google

İletişim

Facebook Pinterest Twitter Google+ Dribbble