Вверх ↑
Ответов: 43
Рейтинг: -2
#1: 2018-05-12 21:01:30 ЛС | профиль | цитата
Продолжение темы:
Теперь компонент может работать со свойствами контролов через их Handle.
Свойства:

    Caption
    Text
    Color
    Left
    Top
    Width
    Height
    FontName
    FontHeight
    FontColor
    FontBold
    FontIitalic
    LoadFromFile
    SaveToFile
    ShowControl
пример схемы
Add(MainForm,2953706,161,77)
{
 Width=625
 Position=1
 Point(Handle)
}
Add(VBJScript,1839749,154,231)
{
 WorkPoints=#6:doTest|
 DataPoints=#4:hwnd|
 Script=#18:Sub doTest(dt,idx)|13:  Dim objCtrl|36:  If sys.hwnd = "NULL" Then Exit Sub|63:  ' Вызов с параметрами handle контрола и имя объекта в скрипте|63:  ' В отличии от объектной переменной objCtrl обьект KOLControl|61:  ' нельзя уничтожить или переназначить для другого контрола,|47:  ' он будет уникальным до завершения программы|51:  Set objCtrl = sys.Control(sys.hwnd, "KOLControl")|14:  With objCtrl|29:    .FontName = "Arial Black"|20:    .FontHeight = 30|25:    .Fontcolor = vbYellow|43:    .Caption = "Это моя форма синего цвета"|19:    .Color = vbBlue|19:    .Hide = vbFalse|10:  End With|66:  ' т.е писать и читать своства для уникального имени можно так...|40:  'MsgBox "RGB = " & KOLControl.Color   |24:  Set objCtrl  = Nothing|7:End Sub|
 link(hwnd,9671356:Var,[])
}
Add(Button,11676348,84,231)
{
 Left=10
 Top=50
 Width=115
 Caption="Test"
 Point(Handle)
 link(onClick,1839749:doTest,[])
}
Add(Label,6485018,98,77)
{
 Left=145
 Top=30
 Width=105
 Height=35
 Point(Handle)
}
Add(ChildPanel,10442349,224,77)
{
}
BEGIN_SDK
  Add(EditMulti,4107669,21,21)
  {
   VarCount=1
   link(Var1,9259457:Handle,[(27,179)(41,179)])
  }
  Add(Panel,9259457,35,105)
  {
   Left=145
   Top=80
   Width=445
   Height=165
   Alignment=2
   Point(Handle)
  }
END_SDK
Add(Memo,7133508,280,77)
{
 Left=10
 Top=80
 Width=115
 Height=165
 Point(Handle)
}
Add(GetIndexData,9671356,154,168)
{
 Count=4
 link(Data1,6485018:Handle,[(160,128)(111,128)])
 link(Data2,2953706:Handle,[])
 link(Data3,10442349:Var1,[(174,128)(230,128)])
 link(Data4,7133508:Handle,[(181,140)(307,140)])
}
Add(ComboBox,14560296,84,161)
{
 Left=10
 Top=15
 Width=115
 Height=24
 Strings=#5:Label|4:Form|5:Panel|4:Memo|
 Text="Label"
 ReadOnly=0
 link(onClick,9671356:doIndex,[])
}


Ещё одна приятная особенность что можно вызывать методы и читать свойства и переменные из разных ЯВУ (vbs,js) примерно так
Add(MainForm,2953706,112,98)
{
}
Add(VBJScript,2723942,196,168)
{
 WorkPoints=#6:doTest|
 DataPoints=#3:scr|
 Script=#10:Dim  objJS|0:|18:Sub doTest(dt,idx)|34:  ' Подключаем удалённый JS скрипт|22:   Set objJS = sys.scr|26:   MsgBox  objJS.summ(2,5)|21:   MsgBox  objJS.demo|43:   'MsgBox  Chr(192) &  Chr(193) & Chr(194)|60:   MsgBox  objJS.Chr(192) &  objJS.Chr(193) & objJS.Chr(194)|7:End Sub|
 link(scr,14676190:##Me,[])
}
Add(Button,13154026,112,168)
{
 Left=20
 Top=25
 link(onClick,2723942:doTest,[])
}
Add(VBJScript,14676190,196,98)
{
 VarPoints=#4:##Me|
 Language=1
 Script=#9:var demo;|22:    demo = 1234567890;|0:|18:function summ(x,y)|2:{ |12:  var temp; |12:  temp=100; |19:  return x+y+temp; |1:}|0:|22:function chr( ascii ) |1:{|36:  return String.fromCharCode(ascii);|1:}|
}

Не хватает ещё работы с графикой Уже подумываю прикрутить обьект GraphicsWindow подобно как из ShmallBasic от майкрософта
Для тех кто в танке
https://drive.google.com/drive/folders/0B4uxw3DEyywZSmw1QWx5QUdfMkE
https://onedrive.live.com/?id=201F3835D49587FE%21377&cid=201F3835D49587FE
https://blogs.msdn.microsoft.com/smallbasic/tag/featured-extension/

з.ы а если разойдусь то сделаю ActiveX для блица чтобы можно было 3D игрушки в блокноте писать
карма: -2

0
Редактировалось 3 раз(а), последний 2018-05-12 21:04:12