Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TMS Web Core - JavaScript Kullanmak
#1
Merhabalar arkadaşlar,

Bir önceki makalemizde TMS Web Core projemizde Delphi tarafında HTML içeriğine nasıl müdahale ederiz konusuna değinmiştik. Bu makalede de isteğe bağlı .js (Javascript) dosyalarını nasıl kullanabiliriz bundan bahsedeceğim. Gerçi aramızdan bazıları yine "aaa bu unigui'de de vardı zaten" diyecekler ama ben yine de paylaşayım. UniGui'de de Javascript dosyası kullanmış birisi olarak TMS'de bu işin daha rahat olduğunu söyleyebilirim.

Bu örnekte kullanmak istediğim JavaScript kütüphanesi Moment.js (http://www.momentjs.com)
Bu kütüphane, tarih ve saat verilerini ayıklama, doğrulama, değiştirme ve görüntüleme vb. gibi bir çok alanda kullanabilme imkanı sağlıyor. Çoklu dil desteği de var. 

NOT : Buradaki verileri Delphi kodu ile halledebiliriz. Burada amaç tamamen JS dosyalarının nasıl kullanıldığını göstermek. Sırf tarih saat olarak düşünmeyin, açık kaynak kodlu binlerce javascript kütüphanesi var.

9tl12ov.jpg

Yukarıdaki resimdeki .add fonksiyonunu kullanıp istediğim tarihi elde etmek istiyorum. 

Moment.Js dosyamızı indirdikten sonra, projeme sağ tıklayıp "Add.." ile dosya ekliyorum :

8rzskcw.jpg

Açılan pencereden JavaScript dosyamızı seçiyoruz  :

t62pc1k.jpg

Sonra, Projemizin HTML kodunu açarak aşağıdaki şekilde Javascript dosyamızı ekliyoruz. Buraya kadar olan kısım her HTML geliştiricisinin bildiği şeyler :

mqkbi5r.jpg

Ardından projemin ekran tasarımına bir Adet SpinEdit, bir adet ComboBox, Bir düğme ve Label kontrolü ekliyorum. ComboBox'un Items Özelliğine "minutes, days, weeks" değerlerini ekliyorum. (Bunları Türkçe olarak da kullanabiliriz ama konuyu uzatmamak için orijinali gibi kullanıp hızlı geçtim )

24nlewo.jpg

Şimdi geldik Delphi tarafında JavaScript kodumuzu nasıl yazacağımıza; Bunun için kodu yazarken Begin-End Bloğu arasında ASM diye bir alan ekliyoruz. Ve tüm JavaScript işlemlerini orada hallediyoruz. Burada noktalama işaretleri de JavaScript'te nasılsa öyle olacak. Mesela eşittir yapmak için := yerine normal = kullanıyoruz :

procedure TForm1.WebButton1Click(Sender: TObject);
var
    num : Integer;
    period, time : string;
begin
    num := WebSpinEdit1.Value;
    period := WebComboBox1.Items[WebComboBox1.ItemIndex];

    asm
        moment.locale("TR-tr");
        time = moment().add(num, period).calendar();
    end;
    
    WebLabel3.Caption := time;

end;
end.

Num isimli değişkene SpinEdit'in değerini, period isimli değişkene dakika, gün veya haftayı aktardıktan sonra Label üzerinde bu değeri gösteriyorum. Örnekte bugünden itibaren 3 gün sonrasını seçtim :

kfm44fd.jpg

Görüldüğü gibi, bugün perşembe olduğu için ve 3 gün sonrası da Pazar gününe denk geldiği için, alt kısımda "Gelecek Pazar saat 10:31" şeklinde bir değere ulaştık. Bu veriyi de istediğimiz gibi parse edebilir, delphi tarafında da yine sorunsuz olarak kullanabiliriz.

TMS Web Core'da Javascript kullanmak da diğer tüm şeyler gibi çok kolay. Şimdiye kadar yaptığım tüm paylaşımlarda herkes genelde uniGUI ile kıyaslama yapıyor, burada şunu vurgulamak istiyorum; Ben kimseye UniGUI'yi bırakın da TMS'ye geçin demiyorum. Burada amacımız, Delphi ile web geliştirme seçeneklerinin çokluğunu vurgulamak. Yani sadece IntraWEB veya UniGUI değil, bir de TMS WEB Core diye bir alternatif de var demek için paylaşıyorum. Hepsinin de kendine göre avantajları/dezavantajları var. Ben şirket içi (Intranet) uygulamalarında halen UniGUI kullanıyorum, ama yüzlerce, binlerce kişinin kullanacağı uygulamalara gelince UniGUI hantal çalışıyor, TMS Daha cazip hale geliyor. Burada tercih şansınızı kullanabilmek için, diğer framework'leri de iyi bilip kıyaslayabilmek gerekiyor. Paylaşımlarımın özü budur Smile

Buraya kadar okuduğunuz için teşekkür ederim.

Sevgiler, saygılar.
Firebird Ekipler Amiri. Dmitry Kouzmenko ve Dmitry Yemanov ile çalışmış , Eski IBSurgeon personeli, Kıdemli Firebird Kurtarma Uzmanı, Firebird Foundation bağışçısı...
Cevapla
#2
Asla ve asla kullan(a)mayacağım bir teknoloji (yanlış anlama olmasın hobici olduğum için, local de çalışan exe'ler dışında geliştirme ihtiyacım olmadığı için) ama beni bile okudukça heyecanlandırıyor makaleleriniz, bazı uygulamaları webe taşıma isteği uyandırıyor  Smile  teşekkürler.
Cevapla
#3
Güzel bilgiler için teşekkürler. Merak ettiğim şey şu. Javascript kodlarını sadece "asm" bloğu içinde bir değer elde edip bunu delphi içindeki değişkenlere atamak için mi kullanabiliyoruz? Yoksa javascript içinde ne çalışırsa "asm" içinde çalışır mı?
Şunun için sordum. "alert" fonksiyonunu "asm" içinde deneyim dedim, ama böyle bir fonksiyon yok dedi. Yani bu javascript kullanımındaki kısıtlamaları nasıl anlayabiliriz?

Örneğin mikrofondan gelen sesin frekansını ölçen gelişmiş bir javascript dosyamız var olsun. Bunu tms web core içinde kullanabilir miyiz? Bu işin sınırlarıyla ilgili bir doküman var mıdır?

Şimdi şunu gördüm. Asm içindeki javascript kodlarının altını kırmızıyla çiziyor, ancak derleme yaptığımda kodlar çalışıyor.
Örneğin alert için "undeclared identifier" hatası veriyor, değişkenler için "label expected" hatası veriyor. Ancak uygulama çalışıyor. Nerede hata yapıyorum?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TMS Web Core - Database bcore 6 894 13-04-2024, Saat: 08:12
Son Yorum: erol.micset
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı 2 delphi.developer 0 203 04-03-2024, Saat: 16:14
Son Yorum: delphi.developer
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı delphi.developer 3 441 14-02-2024, Saat: 15:22
Son Yorum: parlakcuma
  TMS Web Core - Genel Bakış rmzgenius 61 19.866 22-01-2024, Saat: 18:47
Son Yorum: delphi.developer
  TMS Web Core : Güzel Özellikler-2 rmzgenius 13 3.486 08-01-2024, Saat: 11:57
Son Yorum: rmzgenius



Konuyu Okuyanlar: 1 Ziyaretçi