Page History
Dinamik Kodlama ile ilgili ayrıntılı bilgiye bu dokümandan ulaşabilirsiniz.
Ürün Grubu | [X] Fusion@6 |
Kategori | [X] Yeni Fonksiyon |
Versiyon Önkoşulu | @6 |
...
Kaydet: Script'in saklanmasını sağlar. Yazılan script'ler bu butonla saklandıktan sonra, değişikliklerin geçerli olması için ekranın en alt bölümündeki Tamam butonuna basarak ekranın kapatılması gerekmektedir. Script ekranı Tamam butonu dışında bir şekilde kapatılırsa, değişiklikler saklanmadan çıkılacaktır.
Yenile: Kod geliştirilme ortamının güncellenmesi için kullanılan butondur. Bu butona basıldığında, script girişi en son kaydedilen haline dönecektir.
Temizle: Kod içeriğinin temizlenmesi için kullanılan butondur. Yani butona basıldığında, ekranda görülen scriptler silinecektir.
Kod Şablonları: Daha önceden saklanmış kod şablonları arasından seçim yapmak için kullanılan butondur. Bu butona basıldığında, Netsis Script Kod Şablon Tanımlamaları rehberi gelecektir.
Form Global:
Session Global:
Uygulama Global: Tüm formlarda, tüm şirketlerde ortak kullanılmak istenilen tanımlamaların girilmesi için kullanılan butondur. Yani eğer yazılan bir fonksiyon veya sub her yerde ortak olarak kullanılmak isteniyorsa bu tanımlamayı uygulama global kısmında yaparak tüm modüllerde ve şirketlerde bu fonksiyona erişerek çalıştırılabilir. Bu özellik ile ortak olan bir fonksiyon tanımlamasının, kullanılacak olan her ekranda tekrar tekrar yazılması önlenmiştir.
Örneğin; sub mail(kime,cc,subject,ek,body) call NETSISCORE.NetLibEMail.EPostaGonder(kime,cc,subject,ek,body) end sub şeklinde Uygulama Global'de yapılan bir tanımlamayı bizim hazırladığımız menüde kullanabilmek için; call appglobal.mail(MAIL,"","MEKTUP","",ICERIK) şeklinde çağırılması gerekmektedir.
Yukarıdaki sub tanımlamasında NETSISCORE.NetLibEMail.EpostaGonder şeklinde bir tanımlama yapılmıştır. Bu tanımlama ile Netsis'in nesnelerinin kullanıldığı belirtilmiştir. Bu nesneler hakkında bilgi almak için Nesne Tarayıcısı Kullanılabilir. Bknz: Nesne Tarayıcısı.
Nesneye Yönelik Programlama Kavramları
Sınıf (Class): Nesneye yönelik programlamada temel öğelerdir. Gerçek dünyadaki ya da akıldaki mantıksal nesnelerin programlamda ifade edilmesi için Class yapısı kullanılır. Sınıfların özellik (property) ve yöntemleri (method) vardır. Özellikler, sınıfı tanımlayan verileri olup, yöntemler ise sınıfın yapabileceği işlemler, yani yetenekleridir. Sınıf tanımı içinde sınıfa ait özellik ve yöntemler belirtilir. Programda sınıf tanımlarından nesneler türetilir. O nedenle sınıf tanımı, aynı zamanda nesne şablonu olarak da düşünülebilir.
Nesne (Object, Instance): Tanımlı bir sınıfın programda kullanılan bir örneğidir ya da olumudur. Sınıfların amacı, bir yapıyı bir kez tanımlamak, isimlendirmek ve tekrar tekrar kullanılmasını sağlamaktır. Bknz: Sınıf (Class). Program yazılırken, bir sınıf tanımına ait gerektiği sayıda nesne yaratılıp kullanılabilir. Bu nesneler, sınıf tanımındaki özelliklere sahiptir ve yöntemleri gerçekleştirebilir. Aynı program parçası içinde, sınıflardan türemiş her bir nesnenin tekrarsız bir adı olmak zorundadır ve nesne bu isimle kullanılır.
Olay Sürmeli (Event Driven) Programlama: Bir program, bir başlangıç noktasından başlayıp, sırayla devam edip bir yerde bitmiyorsa, kod parçacıklarının çalışması olaylara bağlanmışsa buna olay sürmeli programlama diyoruz. Win32 görsel formlarının olay sürmeli programlanması zorunludur. Çünkü kullanıcı form üzerinde işlem yaparken bir sıra takip etmek zorunda değildir ve birbiri arkasından çok farklı olaylar meydana gelebilir. Örneğin bir bilgi giriş sahasına giriş, bilgi giriş sahasından çıkış, başka bir bilgi giriş sahasına uğramadan bir butona basılması gibi. O nedenle, form, üzerinde oluşabilecek her olay için bir kod parçacığı yazılarak yönetilmelidir.
Form ve formun üzerindeki görsel bileşenlerin her biri kendi sınıf tanımının özellik ve yeteneklerini içeren birer nesnedir. Bknz: Nesne (Object, Instance). Her nesnenin olmamakla birlikte çoğunun nesne girişi, çıkışı, tıklanması gibi olayları mevcuttur.
Nesneler, sınıflarından gelen yeteneklerinden dolayı bazı işlemleri doğal olarak her seferinde aynı şekilde yapabilir. Örneğin, nümerik veri girişi alanı sınıfından türemiş ve form üzerine konmuş tüm nesneler, nümerik karakterleri alacak, alfabetik karakterleri kabul etmeyecek, belki basamak gruplaması ve ondalık gösterim gibi yetenekleri sergileyecek tir. Ancak bu nesne, Örneğin, iki tane nümerik sahadaki değerlerin çarpılarak başka bir sahada gösterilmesi gibi bir yeteneğe sahip değildir. İstenen bu işlem, nesne çıkışlarına ya da bir buton tıklanması olayı için ayrıca yazılmalıdır.
Dinamik kodlamada, bir form üzerinde mevcut görsel bileşen nesnelerinin olayları gerçekleşmesi sırasında çalışacak kod parçacıkları yazılabilmektedir. O nedenle kod yazımız öncesinde, hangi nesnenin hangi olayı için kod yazıldığı belirlenir. Bknz: Nesne Đzleme Bölümü, Nesne Olayı (Event) Bölümü.
...
Stok kodu girildiğinde girilen kod'a göre oluşan değerin depo kodu sahasına atılması istenebilir. Stok koduna IZM001,IZM002 gibi kodlar yazıldığında stoğun stokun depo koduna 1 yazılması; IST001,IST002 şeklinde kodlar yazıldığında depo koduna 2 yazılması aksi durumda 3 yazılması isteniyorsa;
Burada stok kodu bilgisi edit olduğu için TDBNEdit altında bulunabilir. Yukarıdaki tanımlamaya bakıldığında Stok_kodudb'nin OnExit olayında script yazılmıştır ve stok koduna yazılan değerin ilk 3 hanesini alarak IZM olup olmadığı kontrol ediliyor eğer IZM ise depo koduna 1 yazılıyor. Depo kodu bilgisi de edit olduğu için Depo_Kodu.TEXT olarak atama yapılmıştır. Eğer IZM değilse kontrole devam ederek IST olup olmadığına bakılıyor doğru ise 2 aksi durumda 3 olarak depo kodu belirleniyor.
...
SGTEST.StrColumn(0).Font.Bold = true SGTEST.StrColumn(0).Title = "Stok Adı"
'Đlk kolonun 1..5 satırlarına değer 1..5 yaz
for I=1 to 5 sgtest.cells(1,I) = "değer " & i next
'Grid üzerindeki boyama işlerini gözden geçir
sgtest.Invalidate
'Grid nesnesine ait önemli bilgiler gösteriliyor
GridBilgi = "aktif kolon " & sgtest.Col & chr(13) & chr(10) &_ "aktif satır " & sgtest.Row & chr(13) & chr(10) &_ "sabit satır sayısı " & sgtest.FixedRows & chr(13) & chr(10) &_ "sabit kolon sayısı " & sgtest.FixedCols & chr(13) & chr(10) &_
"Solda görünen kolonun numarası " & sgtest.LeftCol & chr(13) & chr(10) &_
WEB Renk Değerleri
Aşağıdaki tabloda yer alan renk değerlerini NETSISCORE.NetLibGraph .WEBColorToColor yönteminde başına "clWEB" sabit değerini ekleyerek kullanabilirsiniz. edObj.PropertyValue("Color") = GraphLib.WEBColorToColor ("clwebTomato")
AliceBlue
'Graphic nesnesi hazırlanıyor | |
Örnek-8: INetTWEBBrowser | |
'WEB nesnesini ilk kullanım için hazırla 'Hazırlanan HTML bilgisinin ekranda görünmesi için güncelle | |
'NetWB nesnesini Netsis ana sayfasına yönlendir call NETWB.Navigate("http://www.netsis.com.tr") | |
| |
'************************************************************************* 'CB_GETITEMHEIGHT windows mesajı nedir? '************************************************************************* ' | |
Örnek-10: INetObject | |
'Button nesnesindeki "OnClick" olayının (event) tetiklenmesi | |
OnClick olayının Dinamik Kodlama Ekranından izlenmesi Örnek – 11: ICoreSession Örnek – 12: ICoreLocalizationConvert | |
'Localization servis nesnesine erişim yap | |
Örnek-13: ICoreWin32 | |
Dim BasimParamAcik | |
WinPostMessage Kullanımı | |
'Windows form kapanış özel mesaj değeri tanımlanıyor... | |
Örnek-14: ICoreSMS | |
SendMessages yöntemleridir. Toplu mesaj gönderimlerinde, mesajlar AddMessage yöntemi ile eklenmeli ve tüm mesajlar eklendikten sonra SendMessages yöntemi çağırılmalıdır. Sadece bir mesaj gönderimi durumunda ise; SendMessage yöntemi çağırılmalıdır. | |
'ICoreSMS nesnesi yaratılıyor |
UYARILAR & EK BELGELER
- Netsis dinamik kodlama sisteminde yer alan Visual Component Library (NVCL) nesne katmanları Borland Delphi mimarisine uyumlu olacak şekilde tasarlanmıştır. ( Borland Delphi mimarisi ile ilgili temel bilgiler için {+}http://www.marcocantu.com/edelphi/EssentialDelphi_103.zip+ bağlantısından yararlanabilirsiniz. )
- Nesne, sınıf, yöntem ve özellik isimlerinin genelinde Borland isimlendirme tekniği değiştirilmeden kullanılmıştır.
- Netsis dinamik kodlama sisteminde yer alan örnekler tamamen konunun öğrenilmesine yönelik hazırlanmış çalışmalardır. Buradaki örnek kodların her durumda çalışması ve desteklenmesi söz konusu değildir.
- Windows mesajlaşma sisteminde uygun mesajın uygun yerlerde kullanılması gerekmektedir. Aksi takdirde uygulamada beklenmeyen sorunlar ortaya çıkabilir.
- Windows'un bazı özel mesajlarının uygulamada sorun yaratması durumunda daha sonraki sürümlerde kapatılabilir.
Gainsboro | MistyRose |
MistyRose
AntiqueWhite
GhostWhite | Moccasin |
Moccasin
Aqua
Gold | NavajoWhite |
NavajoWhite
Aquamarine
GoldenRod | Navy |
Navy
Azure
Gray | OldLace |
OldLace
Beige
Grey | Olive |
Olive
Bisque
Green | OliveDrab |
OliveDrab
Black
GreenYellow | Orange |
Orange
BlanchedAlmond
HoneyDew | OrangeRed |
OrangeRed
Blue
HotPink | Orchid |
Orchid
BlueViolet
IndianRed | PaleGoldenRod |
PaleGoldenRod
Brown
Indigo | PaleGreen |
PaleGreen
BurlyWood
Ivory | PaleTurquoise |
PaleTurquoise
CadetBlue
Khaki | PaleVioletRed |
PaleVioletRed
Chartreuse
Lavender | PapayaWhip |
PapayaWhip
Chocolate
LavenderBlush | PeachPuff |
PeachPuff
Coral
LawnGreen | Peru |
Peru | CornflowerBlue | LemonChiffon | Pink |
Cornsilk | LightBlue | Plum | |
Crimson | LightCoral | PowderBlue | |
Cyan | LightCyan | Purple | |
DarkBlue | LightGoldenRodYellow | Red | |
DarkCyan | LightGray | RosyBrown | |
DarkGoldenRod | LightGrey | RoyalBlue | |
DarkGray | LightGreen | SaddleBrown | |
DarkGrey | LightPink | Salmon | |
DarkGreen | LightSalmon | SandyBrown | |
DarkKhaki | LightSeaGreen | SeaGreen | |
DarkMagenta | LightSkyBlue | SeaShell | |
DarkOliveGreen | LightSlateGray | Sienna | |
Darkorange | LightSlateGrey | Silver | |
DarkOrchid | LightSteelBlue | SkyBlue | |
DarkRed | LightYellow | SlateBlue | |
DarkSalmon | Lime | SlateGray | |
DarkSeaGreen | LimeGreen | SlateGrey | |
DarkSlateBlue | Linen | Snow | |
DarkSlateGray | Magenta | SpringGreen | |
DarkSlateGrey | Maroon | SteelBlue | |
DarkTurquoise | MediumAquaMarine | Tan | |
DarkViolet | MediumBlue | Teal | |
DeepPink | MediumOrchid | Thistle | |
DeepSkyBlue | MediumPurple | Tomato | |
DimGray | MediumSeaGreen | Turquoise | |
DimGrey | MediumSlateBlue | Violet | |
DodgerBlue | MediumSpringGreen | Wheat | |
FireBrick | MediumTurquoise | White | |
FloralWhite | MediumVioletRed | WhiteSmoke | |
ForestGreen | MidnightBlue | Yellow | |
Fuchsia | MintCream | YellowGreen |
Windows mesajlaşma sistemi (Windows Messaging) GDI (Graphics Device Interface) CANVAS BRUSH Brush nesnesi, taşıdığı renk(color), resim(bitmap) ve desen(style) ile tanımlanmaktadır. |
PEN
Canvas nesnesi aracılığı ile kullanılabilecek olan Pen nesnesi, nesneye atanan renk ile(pen.color) çizgi çizmek için kullanılmaktadır.
RECT
Rect tipi, bir dikdörtgenin ölçülerini ifade etmektedir. Koordinatlar, sol, üst, sağ ve alt kenarları ifade eden 4 ayrı sayısal değer olarak ya da sol üst köşe ve sağ alt köşe noktaları olarak ifade edilirler.
...
Point tipi, ekran üzerindeki bir pixel' in yerini ifade eder. X, Point tipinin yatay koordinatını ifade eder.