bilgiz.org

Dinamik Kodlama

  • Giriş
  • Netsis Visual Component Library ( NVCL )
  • INetStrColumn
  • INetGraphLibrary ( Netsis Grafik Kütüphanesi)
  • Arayüz (Interface) yenilikleri
  • INetTWEBBrowser



  • Tarih01.10.2017
    Büyüklüğü124.82 Kb.

    Indir 124.82 Kb.

    Dinamik Kodlama

    Sürüm 2 Yenilikleri

    Giriş 3

    Yenilikler 4

    Netsis Visual Component Library ( NVCL ) 5

    INetStrGrid ( Netsis grid nesnesi) 5

    INetStrColumn 6

    INetXGrid ( Veri tabanı bağlantılı grid nesneleri) 6

    INetGraphLibrary ( Netsis Grafik Kütüphanesi) 6

    Arayüz (Interface) yenilikleri 11

    INetComponentList 11

    INetTWEBBrowser 11

    INetControl 12

    INetObject 12

    ICoreSession 13

    ICoreLocalizationConvert 13

    ICoreWin32 13

    ICoreSMS 14

    Uyarılar & Ek Bilgiler 15

    Referanslar 16

    WEB Renk Değerleri 16

    GDI ( Graphics Device Interface) 17



    Giriş


    Bu belge, Forerunner paketinde kullanılan “Dinamik Kodlama” sistemindeki yenilikleri göstermek için düzenlenmiştir. Belge içinde yer alan örnekler, VBS olarak tasarlanmıştır. Aşağıda gösterilen tüm özellikler 4.0.6 seti ile aktif hale gelecektir.

    Yenilikler

    Netsis Visual Component Library ( NVCL )

    INetStrGrid ( Netsis grid nesnesi)


    Aşağıdaki sıralama, StrGrid nesnesinin hangi sınıf hiyerarşisinin parçası olduğunu göstermektedir. Bu yapıya göre, StrGrid nesnesi, hiyerarşide kendinden önce gelen( atası olan ) tüm sınıfların özelliklerini, otomatik olarak desteklemektedir.

    Sınıf Hiyerarşisi

    INetTObject  INetTComponent  INetTControl  INetTWinControl  INetStrGrid

    StrGrid Nesnesi, tüm Netsis paketlerinde kullanılan grid nesnesidir .





    StrGrid nesnesine ait örnek görünüm

    '******************************************

    'StringGrid nesnelerine ait test kodları

    '

    'sgTest : String Grid nesnesidir

    '******************************************
    'İlk kolon uzunlugunu 100 pixel yap

    SGTEST.StrColumn(0).Width = 100


    'İlk kolonda gösterilen bilgileri bold göster

    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) &_

    "Standart satır yüksekliği " & sgtest.DefaultRowHeight & chr(13) & chr(10)
    MsgBox GridBilgi

    INetStrColumn


    Bu tür nesnelere doğrudan erişim yapılamaz. StrGrid veya XGrid nesnelerindeki StrColumns özelliği kullanılarak erişim yapılabilir ve özellikleri kullanılabilir. StrGrid ve Xgrid nesneleri, kolon bilgilerine erişim için kullanılan bir sınıftır.

    INetXGrid ( Veri tabanı bağlantılı grid nesneleri)


    Sınıf Hiyerarşisi

    INetTObject  INetTComponent  INetTControl  INetTWinControl  INetStrGrid INetTXGrid

    Tüm Netsis paketlerinde kullanılan, veri tabanı bağlantılı grid nesnesidir.

    NDI paketinde, XGrid nesnesi, hazırlanan ekrandaki değişik amaçlara göre kısıtlanabilir. Eğer stok hareket ekranına benzer bir tasarım yapılacaksa, stok kodu nesnesinin çıkışında xgrid nesnesinin SQL özellik değeri, aktif kod kısıtına göre hazırlanabilir ve kayıtlar gösterilebilir.

    '******************************************

    'XGrid nesnelerine ait test kodları

    '

    'xgTest : XGrid nesnesidir

    '******************************************
    'Grid üzerinde gösterilecek kayıtlar için SQL cümlesi hazırlanıyor

    SQLStr = "select top 10 * from tblcasabit " &_

    "where cari_kod like 'A%' "

    XGTEST.Sql.Text = SQLStr


    'Hazırlanan sql cumlesine gore kayıtları göster

    XGTEST.Active = true


    'grid nesnesindeki kayıtlar tekrar sunucudan alınıyor

    XGTEST.Active = false

    XGTEST.Active = true

    INetGraphLibrary ( Netsis Grafik Kütüphanesi)


    ICanvas, IBrush, IPen, IRec, IPoint ve IGraphUtil arayüzlerini tanımlar. IGraphUtil; ICanvas, IBrush, IPen, IRec nesnelerinin kullanımı için yardımcı yöntemleri tanımlar. Kütüphanenin sağladığı, çizim, boyama ve yazı yazma gibi grafik işlemleri kullanımı örnekleri aşağıdaki gibidir.

    1. Aşağıdaki örnek, NDI paketi ile hazırlanan bir ekranın, dinamik kodalma ile, grafiksel olarak şekillendirilmesini göstermektedir.

    '********************************************************************************

    'FORM GLOBAL TANIMLAMA ALANI

    '********************************************************************************

    'Rastgele bir renk türetmek için kullanılacak olan yöntem, uygulama içinde birden 'çok yerde kullanılacağı için global olarak tanımlanıyor.

    Function RenkTuret()

    RenkTuret = Int(rnd(1)*2^24)

    End Function



    'TNDITimer bileşeninin zaman aralığını dinamik olarak değiştirmek için kullanılacak 'yöntem, global olarak tanımlanıyor. Yöntem, ekran üzerindeki grup kutusundan yeni 'bir aralık seçilmesi durumunda, TNDITimer nesnesi aralık değerini değiştirir

    Sub TimerAta

    NDITIMER1.PropertyValue("TimerInterval") = CINT(CBTIMERHIZ.propertyValue("Text"))

    End Sub


    '********************************************************************************

    'NDI TIMER “ONTIMER” OLAYI TANIMLAMA ALANI

    'TNDITimer nesnesi “OnTimer” olayı ile, belirli aralıklarla(NDITimer.Interval),

    'ekran üzerindeki bilgilerin güncellenmesi sağlanıyor

    '********************************************************************************

    'Panel üzerindeki TGauge(sayaç) nesneleri, ölçüm değerlerinin ve renklerinin değiştirilmesi

    For i=1 To PANEL1.ControlCount

    PANEL1.Controls(i-1).PropertyValue("Progress") = Int(rnd(1)*100)

    PANEL1.Controls(i-1).PropertyValue("ForeColor") = RenkTuret

    Next

    'TNDIPaintBox nesneleri üzerinde grafiksel değişiklikler yapmak için “Canvas” 'nesnelerinin değişkenler aracılığı ile kullanımı için gereken atamalar

    Set C1 = NDIPAINTBOX1.PropertyValue("Canvas")

    Set C2 = NDIPAINTBOX2.PropertyValue("Canvas")

    ' IGraphUtil nesnesi GradientFillCanvas yöntemi ile boyama işlemi

    Set GL = NETSISCORE.NetLibGraph

    Call GL.GradientFillCanvas(C1,RenkTuret,RenkTuret,C1.ClipRect,Int(Rnd(1)))

    ' IBrush nesnesi ile boyama işlemi.

    C2.Brush.Color = RenkTuret

    C2.Pen.Color = RenkTuret

    C2.Brush.Style = Int(Rnd(1)*6)

    C2.FillRect( C2.ClipRect )

    Yukarıda dinamik kodlama tanımlamalarının verildiği ve NDI ile tasarlanan ekranın çalışma anındaki görüntüsü aşağıdaki gibidir.





    1. Aşağıdaki örnek; Grid nesnesi OnChangeCanvasRect olayı kullanılarak grid hücreleri görünümünde ve içeriğinde değişiklik yapılması için kullanılmaktadır.


    'Progbil için tasarlanan örnek script kodu, SGBilgi grid nesnesinin '“OnChangeCanvasRect” olayına atanıyor

    if ( Col = 2)  then

     

      Set GL = NETSISCORE.NetLibGraph



     

      StartCol = GL.WEBColorToColor("clwebPink")

      StopCol = GL.WEBColorToColor("clwebLightGreen")

      GL.GradientFillCanvas CellCanvas, StartCol, StopCol, Rect, 0

     

      CellCanvas.Brush.Style = bs_Clear



      CellCanvas.TextOut rect.left, rect.top, SGBILGI.Cells(COL,ROW)

     

    end if


    '****NOT:*****
    'OnChangeCanvasRect olayı, grid çizimi adımında, hücrelerin, grafik ve içerik olarak değiştirilebilmesine olanak sağlamaktadır.
    Uygulamanın çalışması sonucu oluşan çıktı aşağıdaki gibidir.


    Arayüz (Interface) yenilikleri

    INetComponentList


    INetComponent sınıfından türeyen tüm nesnelerde “ComponentList” fonksiyonu kullanıldığında INetComponentList sınıfından bir nesne hazırlanmaktadır. Bu nesne ile form veya panel gibi taşıyıcı nesnelerin içinde yer alan nesneler, sınıf isimi verilerek listelenebilir.

    'Graphic nesnesi hazırlanıyor

    Set GraphLib = NETSISCORE.NetLibGraph


    'Ekran nesnesindeki TEdit sınıfına ait örnekler listeye alınıyor

    Set EditListesi = Self.ComponentList("TEdit")


    'Listede kayıt var mı?

    if EditListesi.Count > 0 then



    'Listedeki tüm kayıtları dön

    For i=1 To EditListesi.Count



    'Listedeki aktif nesneye erişim

    Set edObj = EditListesi.Items(I - 1)



    'erişim yapılan nesnenin renk özelliği "domates" rengine atanıyor...

    edObj.PropertyValue("Color") = GraphLib.WEBColorToColor ("clwebTomato")

    Next

    End If

    INetTWEBBrowser


    WEB sayfaları ve HTML düzeninde hazırlanan bilgilerin gösterilmesi için tasarlanmıştır. NDI paketinde Win32 ortamında, WEB sekmesinde TNetWEBBrowser nesnesi için kullanılabilir.

    'WEB nesnesini ilk kullanım için hazırla

    call NETWB.Navigate("about:blank")


    'Basit HTML rapor hazırla

    htmlcode = ""&_

    ""&_

    "

    Adıyasi"&_

    "

    Cemal50"&_

    "

    Kemal18"&_



    "
    İnes20"&_

    "







        Ana sayfa


    Dinamik Kodlama

    Indir 124.82 Kb.