Παρακάτω είναι το παράδειγμα με το ComboBox. Είναι ο τύπος με το textbox με τιμή από μια λίστα. Σε άλλη αναθεώρηση θα βάλω και το Editable Combobox με AutoComplete (όπως έχει ένα στο παράθυρο Ρυθμίσεις)
Επιπλέον έφτιαξα lambda συναρτήσεις, που κρατούν κάποιες non local μεταβλητές (προς το παρόν όχι πίνακες).
item$={alfa
delta
gamma
beta
}
declare form1 form
declare combo1 combobox form form1
declare text1 textbox form form1
With combo1,"label","Combo1", "ListText",Item$, "listtext" as list$, "list" as list$(), "text" as combo1$
With combo1,"Find" as Find()
Method combo1,"Sort"
combo1$=list$(find("gam*"))
Method combo1,"Move", 1000,1000,6000,600
Method text1, "Move", 1000,2900,6000,600
With text1, "left" as left, "text" as text1.text$
Print left
Method form1, "show"
function form1.unload {
Keyboard "!"
show
}
Function combo1.dblclick {
text1.text$=list$
}
Function combo1.click {
text1.text$=list$
}
Function combo1.scroll {
text1.text$=list$(number-1)
}
Function combo1.move {
text1.text$=list$(number-1)
}
a$=key$
declare Text1 nothing
declare combo1 nothing
declare form1 nothing
Εδώ είναι η Lambda (υπάρχουν δυο, μια για αλφαριθμητικά και μια για νούμερα και άλλα αντικείμενα, αλλά και οι δύο δίνουν παίορνουν και δίνουν Lambda συναρτήσεις.
f=Lambda ->number+3
L=Lambda -> number**2
Def Twice(z)=Lambda z ->z(z(number))
Dim G(10)
G(2)=Twice(f)
G(3)=Twice(L)
K=Twice(L)
Print Type$(G(2))
Print G(2)(7) \\13
Print G(2)(8) \\14
Print G(3)(3), K(3) \\ 81 , 81
Dim KL()
KL()=G() \\ copy array, produce new objects
Print KL(3)(2) \\ 16
KL(3)=G(2) \\ change function
Print Kl(3)(7) \\13
KL(1)=L
Print KL(1)(10) \\ 100
Print KL(1)(KL(1)(10)) \\ 10000
Group Alfa {
Dim AA(10)
Module GetFunc {
read where, .AA(where), KL
}
Function PlayMe {
=.AA(number)(number)
}
}
Alfa.AA(2)=L
Print Alfa.AA(2)(2)
Alfa.GetFunc 3, twice(F), 1000
Print Alfa.PlayMe(3, 7)
Def A$(A1$)= lambda$ A1$ ->{
Read X%
Let B$="", L=Len(A1$)
While X%<>0 {
B$=Mid$(A1$,X% mod L+1,1)+B$
X%/=L
}
=B$
}
Hx$=A$("0123456789ABCDEF")
Oct$=A$("01234567")
Bin$=A$("01")
M=256
Print Hx$(M) \\ 100
Print Oct$(M) \\400
Print Bin$(M) \\100000000
Dim A$(10)
Stack New {
Data Hx$, Oct$, Bin$
For I=0 to 2 : Read A$(I) : Next I
}
For I=0 to 2 {
Print A$(I)(1000) \\ 3E8, 1750, 11111010000
}
Επιπλέον έφτιαξα lambda συναρτήσεις, που κρατούν κάποιες non local μεταβλητές (προς το παρόν όχι πίνακες).
item$={alfa
delta
gamma
beta
}
declare form1 form
declare combo1 combobox form form1
declare text1 textbox form form1
With combo1,"label","Combo1", "ListText",Item$, "listtext" as list$, "list" as list$(), "text" as combo1$
With combo1,"Find" as Find()
Method combo1,"Sort"
combo1$=list$(find("gam*"))
Method combo1,"Move", 1000,1000,6000,600
Method text1, "Move", 1000,2900,6000,600
With text1, "left" as left, "text" as text1.text$
Print left
Method form1, "show"
function form1.unload {
Keyboard "!"
show
}
Function combo1.dblclick {
text1.text$=list$
}
Function combo1.click {
text1.text$=list$
}
Function combo1.scroll {
text1.text$=list$(number-1)
}
Function combo1.move {
text1.text$=list$(number-1)
}
a$=key$
declare Text1 nothing
declare combo1 nothing
declare form1 nothing
Εδώ είναι η Lambda (υπάρχουν δυο, μια για αλφαριθμητικά και μια για νούμερα και άλλα αντικείμενα, αλλά και οι δύο δίνουν παίορνουν και δίνουν Lambda συναρτήσεις.
f=Lambda ->number+3
L=Lambda -> number**2
Def Twice(z)=Lambda z ->z(z(number))
Dim G(10)
G(2)=Twice(f)
G(3)=Twice(L)
K=Twice(L)
Print Type$(G(2))
Print G(2)(7) \\13
Print G(2)(8) \\14
Print G(3)(3), K(3) \\ 81 , 81
Dim KL()
KL()=G() \\ copy array, produce new objects
Print KL(3)(2) \\ 16
KL(3)=G(2) \\ change function
Print Kl(3)(7) \\13
KL(1)=L
Print KL(1)(10) \\ 100
Print KL(1)(KL(1)(10)) \\ 10000
Group Alfa {
Dim AA(10)
Module GetFunc {
read where, .AA(where), KL
}
Function PlayMe {
=.AA(number)(number)
}
}
Alfa.AA(2)=L
Print Alfa.AA(2)(2)
Alfa.GetFunc 3, twice(F), 1000
Print Alfa.PlayMe(3, 7)
Def A$(A1$)= lambda$ A1$ ->{
Read X%
Let B$="", L=Len(A1$)
While X%<>0 {
B$=Mid$(A1$,X% mod L+1,1)+B$
X%/=L
}
=B$
}
Hx$=A$("0123456789ABCDEF")
Oct$=A$("01234567")
Bin$=A$("01")
M=256
Print Hx$(M) \\ 100
Print Oct$(M) \\400
Print Bin$(M) \\100000000
Dim A$(10)
Stack New {
Data Hx$, Oct$, Bin$
For I=0 to 2 : Read A$(I) : Next I
}
For I=0 to 2 {
Print A$(I)(1000) \\ 3E8, 1750, 11111010000
}
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.