LVSL Dil Tanımları burada kısaca anlatılmıştır.
Fonksiyon ve Alt İfadeler
Sentaks
Function name ([arglist])
[statements]
[name = expression]
[statements]
[Exit Function]
[statements]
End Function
Sub name ([arglist])
[statements]
End Sub
arglist: argname [As type], argname [As type]...
Açıklama
Arglist, virgülle ayrılan fonksiyon değişkenleri listesidir. Değişken listesi boş olduğunda parantez kullanımı gereklidir. Bir fonksiyondan değer döndürmek için, ilgili fonksiyon fonksiyonun adına atanır. Fonksiyondan herhangi bir türden nesne döndürülebilir. Eğer fonksiyon adına değer atanmamışsa, NULL döner.
Alt Çizgi ile İfade Sürekliliğinin Sağlanması (Statement continuation with underscore)
Sentaks
Koşul 1
[Long string statement Part 1] + _ [Long string statement Part 2]
Örnek ;
GVariable = “Logo ” + _“Software”
Koşul 2
Birden fazla parametreyi virgül(,) ile ayırın.
Örnek;
Application.CreateAppForm(1017, 0, 0, 0, 1, _2, 1, 0, _MySelRef, MyFrm)
If İfadesi
Sentaks
If condition Then statement [Else statement]
If condition Then
[statements]
[ElseIf condition Then
[statements]]
...
[Else
[statements]]
End If
Açıklama
Koşul herhangi bir deyim (expression) olabilir. Boolean constant false haricinde, tam sayı (integer), gerçek sıfır (real zero) ve sabit boş değer (constant null) de false olarak kabul edilir. Diğer tüm değerler true değerini alır.
İlişki operatörleri (=, <>, <, >, <=, >= ), mantıklar operatörler olan Not, And, Or, Xor, Eqv ve Imp koşullarda kullanılabilir.
While İfadesi
Sentaks
While condition
[statements]
Wend
Açıklama
Koşul, true değerinde iken (false, sıfır(0) veya null değerlerine eşit olmadığında) bir dizi ifadeyi çalıştırır.
Do İfadesi
Sentaks
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
Açıklama
"While" anahtar kelimesi kullanılmışsa, koşul true iken veya "Until" anahtar kelimesi kullanılmışsa, koşul false iken, bir dizi ifadeyi çalıştırır. İlk formda, ifadeler çalıştırılmadan önce koşul test edilir. İkinci formda ise, ifadeler çalıştırıldıktan sonra koşul test edilir. Bu sebeple döngü gövdesi en az bir kez çalışır.
For İfadesi
Sentaks
For counter = expression To expression [Step expression]
[statements]
[Exit For]
[statements]
Next [counter]
Açıklama
Sayaç (counter) tarafından kontrol edilen bir döngüyü çalıştırır. Sayaç basit bir değişken olmak zorundadır.
Let İfadesi
Sentaks
[Let] expression = expression
Açıklama
Bir değişkene değer atar. "Let" anahtar sözcüğü ifadeden çıkartılabilir. Bu ifade, aşağıdaki örnekte görüldüğü gibi, birden fazla değişkene atama yapmak için kullanılabilir.
Let a = b = 10
a[i] = b.name = "XXX"
Dim İfadesi
Sektaks
Dim name [(arraysize)] [As type], [(arraysize)] [As type] ...
Açıklama
Değişken veya dizi (arrays) oluşturmak için kullanılır. Eğer arraysize (dizi boyutu) belirtilirse, oluşturulan yerel değişken belirlenen dizi boyutunda bir diziye atanır. Aksi takdirde, değişkenin değeri boş (null) olarak ayarlanır. Dim ifadeleri bir fonksiyon içerisinde herhangi bir yere yerleştirilebilir ve bir dizi boyutu, negatif olmayan bir tam sayı değerini alan herhangi bir deyim (expression) olabilir.
LOGO VISUAL SCRIPT DİL TÜRLERİ
Tamsayılar (Integers)
Tamsayı değerleri -231 ile 231-1 arasındadır. Tamsayı sabitleri ondalık ([+|-]dddd), sekizlik ([+|-]&dddd) veya onaltılık ([+|-]&Hdddd) formüllerle ifade edilebilir. Tamsayılarla kullanılabilen operatörler aşağıda verilmiştir:
toplama +
çıkarma -
çarpma *
tamsayı bölme /
artan % veya Mod
bitsel ve &
bitsel veya |
bitsel özel veya ^
Gerçek Sayılar (Reals)
Gerçek sayılar, ondalık ayracı ile ve/veya üstel gösterim biçiminde yazılır. Tür bildirim karakterleri (!, # ve @) aynı zamanda gerçek sabitleri yazmak için de kullanılabilir. Sabit bir değer olan N'i gerçek değere dönüştürmek için, real(N) ifadesi yazılabilir.
Metinler (Strings)
Metinler çift tırnak işareti arasına yazılır. Metinler içerisinde kullanılan çift tırnak işaretleri, iki ardışık çift tırnak işareti olarak yazılır. Sabit boyutta metin yoktur; bir metin tipinin boyutunu dinamik olarak değiştirebilirsiniz.
Metinsel İşlemleri (String operations)
Metindeki bir karaktere ulaşma:
Metin karakterlerine karakter indeksi kullanılarak ulaşılır.
x = str[n]
str[0] = 'A'
Metin boyutunu öğrenme ve belirleme:
size özelliği metnin boyutuna ulaşmak için kullanılır.
count = str.size
Metinler, size özelliğine atama yapılarak dinamik olarak tekrar boyutlandırılabilir.
str.size = str.size + 10
Eğer boyut artarsa, metin sıfır ile doldurulur. Eğer boyut azalırsa, dizginin sonundaki karakterler kaybolur.
Birleştirme:
+ operatörü dizgileri birbirine bağlamak için kullanılır.
str1 = str2 + str3
Alt metin oluşturma:
SubStr yöntemi alt dizgiler oluşturmak için kullanılabilir.
s = str.SubStr(start, length)
Oluşturma ve kopyalama:
Tür adı metni, dizgi oluşturmak ve kopyalamak için kurucu görevi görür.
str = string(100) ' 100 karakterlik metin oluşturur
copy = string(str) ' str metin değişkeninin özelliklerinde bir değişken oluşturur
Not : Değer taşımaz, sadece özellikleri kopyalar.
Diziler (Arrays)
Diziler aşağıdaki şekillerde oluşturulabilir:
1. Dim ifadesini kullanarak:
Dim a[N]
Null değerlere sahip N elemanlık bir dizi oluşturur
2. Tür adı olan array, yapıcı (constructor) olarak kullanılır:
a = array(N)
N boyutunda bir dizi oluşturur. N negatif değerde olmayan bir tamsayıdır.
a = array(expr)
Bir dizinin kopyasını oluşturur.
3. Değerleriyle birlikte dizi oluşturma (Direct construction):
a = [expr1, ..., exprN]
Öğeleri, köşeli parantez içinde yer alan değerleri olan bir dizi (array) oluşturur.
Dizi (array) öğelerine indeks numarasıyla ulaşılır:
x = a[N]
a[N] = x
Size özelliğini kullanarak bir dizinin boyutunu belirleyebilirsiniz.
count = a.size
a.size = 100
Diziler (Arrays), LVSL'deki tüm diğer veri türleri gibi, fonksiyonlardan döndürülebilir, fonksiyon parametreleri olarak verilebilir, yerel değişkenlere, diğer dizilerin elemanlarına ve diğer yapıların öğelerine atanabilir.
Yapılar (Structs)
Yapı (structure), bileşen erişim sentaksının kullanımıyla erişilebilen ve değiştirilebilen bileşenlere sahip bir veri nesnesidir. LVSL'de rasgele öğelerle yapılar oluşturabilir ve bir yapıya dinamik biçimde yeni öğeler ekleyebilirsiniz. Aşağıda konuyla ilgili örnekler verilmiştir:
rec = struct() 'boş bir yapı oluştur
rec = {} 'boş bir yapı oluştur
rec = {name:"Ali", age:8} 'iki öğeli bir yapı oluştur
x = rec.name 'yapı öğesine erişimi sağlar
rec.age = rec.age + 1 'bir yapı değerini değiştir
rec.weight = 31 'yapıya yeni bir değer atar
Ole Otomasyon Nesneleri
LVSL, Ole teknolojisini tam desteklemektedir. oleObject türünü, Ole otomasyon nesnelerini oluşturmak için kullanabilirsiniz. Aşağıdaki örnekte verilen çağrı Excel'i çalıştıracak ve Excel'in tüm özelliklerine programlanabilir bir biçimde erişiminizi sağlayacaktır.
excel = oleObject("excel.application")
Artık programın Ole aracılığıyla aktarılan tüm özelliklerini kullanabilirsiniz.
sheet = excel.workbooks.Add().activeSheet 'Sayfa oluşturur
sheet.cells[1, 1].value = "TestString" 'Bir hücrenin değerini ayarlar
sheet.cells[1, 1].font.size = 60 've yazı büyüklüğünü ayarlar
OLAYLAR (EVENTS)
Uygulama Olay sırası aşağıdaki şekilde belirtilmiştir.
- LOD Application
- LOD Doküman Türleri
- LOD Form
- LOD LBSLib
- LOD Math
- LOD Nesne Özellikleri
- LOD Parabirimleri
- LOD QTable
- LOD Quilt
- LOD Rapor
- LOD SetColumnProp & GetColumnProp için Özellik Türleri
- LOD Tarih ve Nümerik Formatlar
- LOD Uyarlamalarının yüklenmesi
- LOD Varitabanı Hataları