Вверх ↑
Этот топик читают: Гость
Ответов: 85
Рейтинг: 0
#1: 2019-01-17 05:26:13 ЛС | профиль | цитата
Решил попробовать упрятать сом -порт в меню, уж жалко место которое он занимает в поле окна основной программы. Сразу скажу что, еще не всё доделано, в частности открытие и закрытие порта. Но есть проблема. Как бы значения номера порта и скорости выбираются, однако нет значка выбора у выбранного значения (жирная точка или галка), Т.е. визуально не видно что ты выбрал. Укажите верный путь....
Make(delphi)
ver(4.05 build 186)
Add(MainForm,3627141,308,308)
{
Width=403
Height=324
Caption=" Menu"
link(onCreate,4404277:doTimer,[(362,328)(362,475)])
}
Add(Menu,126380,196,315)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Номер|1:(|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|1:)|8:Скорость|1:(|3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|1:)|
Point(onSelectNum)
link(onSelectNum,2345105:doEvent,[])
}
Add(IndexToChanel,2345105,245,322)
{
Count=36
link(onEvent2,3627141:doClose,[])
link(onEvent5,9397911:doWork1,[])
link(onEvent6,9397911:doWork2,[])
link(onEvent7,9397911:doWork3,[])
link(onEvent8,9397911:doWork4,[])
link(onEvent9,9397911:doWork5,[])
link(onEvent10,9397911:doWork6,[])
link(onEvent11,9397911:doWork7,[])
link(onEvent12,9397911:doWork8,[])
link(onEvent13,9397911:doWork9,[])
link(onEvent14,9397911:doWork10,[])
link(onEvent15,9397911:doWork11,[])
link(onEvent16,9397911:doWork12,[])
link(onEvent17,9397911:doWork13,[])
link(onEvent18,9397911:doWork14,[])
link(onEvent19,9397911:doWork15,[])
link(onEvent20,9397911:doWork16,[])
link(onEvent21,9397911:doWork17,[])
link(onEvent22,9397911:doWork18,[])
link(onEvent23,9397911:doWork19,[])
link(onEvent24,9397911:doWork20,[])
link(onEvent26,5044480:doWork1,[])
link(onEvent27,5044480:doWork2,[])
link(onEvent28,5044480:doWork3,[])
link(onEvent29,5044480:doWork4,[])
link(onEvent30,5044480:doWork5,[])
link(onEvent31,5044480:doWork6,[])
link(onEvent32,5044480:doWork7,[])
link(onEvent33,5044480:doWork8,[])
link(onEvent34,5044480:doWork9,[])
link(onEvent35,5044480:doWork10,[])
link(onEvent36,5044480:doWork11,[])
}
Add(If_else,2513173,581,448)
{
Type=5
Op2=String()
}
Add(ComboBox,7690426,560,371)
{
Left=10
Top=264
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
Visible=1
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onSelect,15276317:doText,[])
}
Add(ComboBox,8658105,427,308)
{
Left=35
Top=238
Width=50
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
Visible=1
WinStyle=4
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Text=""
DataType=1
DropDownCount=15
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onSelect,15694920:doText,[])
}
Add(COM,6263210,518,441)
{
BaudRate=15
link(onRead,2513173:doCompare,[])
link(Port,8658105:EditText,[(524,401)(447,401)])
link(BaudRate,7690426:EditText,[(531,432)(580,432)])
}
Add(Timer,4404277,413,469)
{
Interval=32
link(onTimer,13091773:doData,[])
}
Add(DoData,13091773,462,469)
{
Data=Integer(30)
link(onEventData,6263210:doRead,[])
}
Add(ChanelToIndex,5044480,308,497)
{
Count=11
link(onIndex,7690426:doSelect,[(450,503)(450,419)])
}
Add(ChanelToIndex,9397911,308,350)
{
Count=20
link(onIndex,8658105:doSelect,[])
}
Add(Label,15694920,490,322)
{
Left=200
Top=19
Width=24
Height=24
Caption=""
link(Text,8658105:String,[(496,310)(468,310)(468,372)(440,372)])
}
Add(Label,15276317,616,385)
{
Left=295
Top=20
Width=79
Height=19
Caption=""
link(Text,7690426:String,[(622,373)(598,373)(598,435)(573,435)])
}
Add(Label,16302235,532,322)
{
Left=123
Top=19
Width=64
Height=17
Caption="сом-порт №"
Alignment=2
}
Add(Label,14437045,665,385)
{
Left=235
Top=20
Width=52
Height=17
Caption="Скорость"
}


Редактировалось 1 раз(а), последний 2019-01-17 05:26:50
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8886
Рейтинг: 823
#2: 2019-01-17 10:25:59 ЛС | профиль | цитата
RT9U, "упрятать" можно и так:
Так


Add(MainForm,2953706,91,49)
{
}
Add(ChildForm,14563358,203,126)
{
}
BEGIN_SDK
Add(EditMulti,8260676,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
Width=363
Height=235
link(doWork1,3301434:doVisible,[(53,27)(53,69)])
}
Add(MainForm,3301434,63,35)
{
Left=35
Top=105
Visible=1
Point(doVisible)
}
Add(If_else,2513173,280,161)
{
Type=5
Op2=String()
link(onTrue,8260676:onEvent1,[(361,167)(361,27)])
}
Add(ComboBox,7690426,238,70)
{
Left=105
Top=5
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
DataType=1
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onClick,9823035:doStrCat,[])
}
Add(ComboBox,8658105,112,63)
{
Left=5
Top=5
Width=80
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Text=""
DataType=1
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onClick,7657820:doStrCat,[])
}
Add(COM,6263210,238,154)
{
BaudRate=15
link(onRead,2513173:doCompare,[])
link(Port,8658105:String,[(244,130)(125,130)])
link(BaudRate,7690426:String,[])
}
Add(Timer,4404277,91,203)
{
Interval=32
link(onTimer,13091773:doData,[])
}
Add(DoData,13091773,140,203)
{
Data=Integer(30)
link(onEventData,6263210:doRead,[(225,209)(225,188)])
link(Data,8260676:Data1,[(146,166)(27,166)])
}
Add(Label,15694920,196,70)
{
Left=5
Top=39
Width=84
Height=19
Caption=""
}
Add(Label,15276317,322,77)
{
Left=105
Top=40
Width=79
Height=19
Caption=""
}
Add(StrCat,7657820,154,70)
{
Str1="сом-порт № "
link(onStrCat,15694920:doText,[])
}
Add(StrCat,9823035,280,77)
{
Str1="Скорость "
link(onStrCat,15276317:doText,[])
}
Add(Button,11628234,182,133)
{
Left=210
Top=5
Width=70
Caption="Вкл СОМ"
link(onClick,6263210:doOpen,[(228,139)(228,160)])
}
Add(Button,11385751,182,168)
{
Left=210
Top=35
Width=70
Caption="Откл СОМ"
link(onClick,6263210:doClose,[(228,174)(228,167)])
}
END_SDK
Add(Menu,126380,98,112)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Выбор|1:)|
Point(onSelectNum)
link(onSelectNum,14006044:doCase,[])
}
Add(Case,14006044,147,119)
{
Value=Integer(3)
DataOnTrue=Integer(1)
link(onTrue,14563358:doWork1,[])
}

Выкладывайте примеры не из файла, а копированием с рабочего поля HiAsm
карма: 19

0
Ответов: 85
Рейтинг: 0
#3: 2019-01-17 11:00:43 ЛС | профиль | цитата
Леонид, выкладывать копированием с рабочего поля- нет возможности. HIASM стоит на другой машине. Ограничение по безопасности, ставить HIASM запрещено. Дома конечно копирую с поля.
Леонид, Твой вариант рабочий конечно. Но я имел ввиду другое. прямо в теле меню ставить точки или галки. Например выбрать сом-порт, Клац по нему, он выбрался и слева появилась точка или галка, ну со скоростью тоже самое выбрал 115200 . Клац и галка... Я где-то видел похожее. просто не пойму как это сделать. Может не Menu надо использовать????? т.е. нет дочерних форм...

Редактировалось 1 раз(а), последний 2019-01-17 11:01:26
карма: 0

0
Ответов: 85
Рейтинг: 0
#4: 2019-01-17 12:32:53 ЛС | профиль | цитата
Леонид, добавил, кое-что в ваш пример.

Add(MainForm,9953887,175,119)
{
link(onCreate,14563358:doWork2,[(226,139)(226,216)])
}
Add(ChildForm,14563358,315,203)
{
}
BEGIN_SDK
Add(EditMulti,8260676,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
Width=580
Height=417
link(doWork1,3301434:doVisible,[(53,27)(53,69)])
link(doWork2,11802796:doEvent1,[(45,34)(45,265)])
}
Add(MainForm,3301434,63,35)
{
Left=35
Top=105
Width=300
Height=98
Visible=1
Point(doVisible)
}
Add(If_else,2513173,364,308)
{
Type=5
Op2=String()
link(onTrue,8260676:onEvent1,[(498,314)(498,27)])
}
Add(ComboBox,7690426,322,217)
{
Left=105
Top=5
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
DataType=1
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onClick,9823035:doStrCat,[])
}
Add(ComboBox,8658105,196,210)
{
Left=5
Top=5
Width=80
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Text=""
DataType=1
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onClick,7657820:doStrCat,[])
}
Add(COM,6263210,322,301)
{
BaudRate=15
link(onRead,2513173:doCompare,[])
link(Port,8658105:String,[(328,277)(209,277)])
link(BaudRate,7690426:String,[])
}
Add(Timer,4404277,147,350)
{
Interval=32
link(onTimer,13091773:doData,[])
}
Add(DoData,13091773,224,350)
{
Data=Integer(30)
link(onEventData,6263210:doRead,[(309,356)(309,335)])
link(Data,8260676:Data1,[(230,166)(27,166)])
}
Add(Label,15694920,280,217)
{
Left=5
Top=39
Width=84
Height=19
Caption=""
}
Add(Label,15276317,406,224)
{
Left=105
Top=40
Width=79
Height=19
Caption=""
}
Add(StrCat,7657820,238,217)
{
Str1="сом-порт № "
link(onStrCat,15694920:doText,[])
}
Add(StrCat,9823035,364,224)
{
Str1="Скорость "
link(onStrCat,15276317:doText,[])
}
Add(Button,11628234,266,280)
{
Left=210
Top=5
Width=70
Caption="Вкл СОМ"
link(onClick,6263210:doOpen,[(312,286)(312,307)])
}
Add(Button,11385751,266,315)
{
Left=210
Top=35
Width=70
Caption="Откл СОМ"
link(onClick,6263210:doClose,[(312,321)(312,314)])
}
Add(EnumCOM,1016600,140,210)
{
OutType=0
link(onEnumPorts,8658105:doAdd,[])
}
Add(Hub,11802796,70,259)
{
link(onEvent1,4404277:doTimer,[(116,265)(116,356)])
link(onEvent2,1016600:doEnumPorts,[(112,272)(112,216)])
}
END_SDK
Add(Menu,126380,168,168)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Выбор|1:)|
Point(onSelectNum)
link(onSelectNum,2390828:doEvent1,[])
}
Add(Case,14006044,259,196)
{
Value=Integer(3)
DataOnTrue=Integer(1)
link(onTrue,14563358:doWork1,[])
}
Add(Case,13949996,259,133)
{
Value=Integer(1)
DataOnTrue=Integer(1)
link(onTrue,9953887:doClose,[(303,146)(303,81)(147,81)(147,146)])
}
Add(Hub,2390828,210,175)
{
link(onEvent1,13949996:doCase,[(242,181)(242,139)])
link(onEvent2,14006044:doCase,[(242,188)(242,202)])
}

карма: 0

0
Ответов: 8886
Рейтинг: 823
#5: 2019-01-17 14:13:46 ЛС | профиль | цитата
RT9U, элементы Case можно и нужно включать последовательно через точку onNextCase!
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#6: 2019-01-17 19:04:23 ЛС | профиль | цитата
Леонид писал(а):
элементы Case можно и нужно включать последовательно через точку onNextCase!

элементы Case можно и не использовать.


Add(MainForm,9953887,364,168)
{
Position=1
Point(onClose)
link(onCreate,988124:doWork1,[(403,188)(403,163)(273,163)(273,202)])
link(onClose,988124:doWork3,[(405,195)(405,230)(273,230)(273,216)])
}
Add(Menu,126380,56,175)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Выбор|1:)|6:Дальше|
Point(onSelectNum)
link(onSelectNum,13748720:doOperation,[])
}
Add(Math,13748720,105,182)
{
OpType=9
Op1=1
ResultType=0
link(onResult,4018740:doBits,[])
}
Add(IntToBits,4018740,154,182)
{
Data_0=Integer(0)
Data_1=Integer(1)
link(onBit2,16185788:doCompare,[])
link(onBit4,988124:doWork2,[])
link(onBit5,1952328:doWork1,[])
}
Add(ChildGroupBox,988124,280,196)
{
}
BEGIN_SDK
Add(EditMulti,2638144,21,21)
{
WorkCount=3
Width=412
Height=151
VOffset=7
link(doWork1,3043274:doEnumPorts,[])
link(doWork2,2260444:doVisible,[])
link(doWork3,3048907:doWork1,[(74,48)])
}
Add(GroupBox,2260444,84,35)
{
Left=35
Top=105
Width=329
Height=137
Align=5
Font=[MS Sans Serif,8,1,0,1]
Visible=1
Caption="Выбор и включение COM-порта."
Point(doVisible)
}
Add(If_else,3683441,343,98)
{
Type=5
Op2=String()
}
Add(ComboBox,16154141,301,35)
{
Left=135
Top=20
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
DataType=1
ReadOnly=0
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onClick,15624758:doStrCat,[])
}
Add(ComboBox,2979466,175,28)
{
Left=35
Top=20
Width=80
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Text=""
DataType=1
ReadOnly=0
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onClick,10022346:doStrCat,[])
}
Add(COM,8931599,301,91)
{
BaudRate=15
link(onRead,3683441:doCompare,[])
link(Port,2979466:String,[(307,80)(188,80)])
link(BaudRate,16154141:String,[])
}
Add(Timer,15323035,168,119)
{
Interval=32
link(onTimer,1856028:doData,[])
}
Add(DoData,1856028,245,119)
{
Data=Integer(30)
link(onEventData,8931599:doRead,[])
}
Add(Label,1595256,259,35)
{
Left=35
Top=54
Width=84
Height=19
Caption=""
}
Add(Label,15670888,385,42)
{
Left=135
Top=55
Width=79
Height=19
Caption=""
}
Add(StrCat,10022346,217,35)
{
Str1="сом-порт № "
link(onStrCat,1595256:doText,[])
}
Add(StrCat,15624758,343,42)
{
Str1="Скорость "
link(onStrCat,15670888:doText,[])
}
Add(Button,5248490,203,91)
{
Left=240
Top=20
Width=70
Caption="Вкл СОМ"
link(onClick,8931599:doOpen,[])
}
Add(Button,2618450,28,98)
{
Left=240
Top=50
Width=70
Caption="Откл СОМ"
link(onClick,3048907:doWork2,[])
}
Add(EnumCOM,3043274,133,28)
{
OutType=0
link(onEnumPorts,2979466:doAdd,[])
}
Add(HubEx,3048907,70,98)
{
link(onEvent,8931599:doClose,[])
}
END_SDK
Add(If_else,16185788,322,189)
{
Op2=Integer(1)
link(onTrue,9953887:doClose,[])
}
Add(ChildGroupBox,1952328,224,210)
{
}
BEGIN_SDK
Add(EditMulti,11069351,21,21)
{
WorkCount=1
link(doWork1,12528873:doVisible,[(39,27)(39,111)])
}
Add(GroupBox,12528873,56,105)
{
Left=35
Top=105
Align=5
Visible=1
Point(doVisible)
}
END_SDK

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8886
Рейтинг: 823
#7: 2019-01-17 20:08:25 ЛС | профиль | цитата
Tad, более того, и предложенную связку Math+IntToBits можно заменить IndexToChanel, что с успехом продемонстрировал коллега RT9U в первом сообщении
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#8: 2019-01-17 20:51:47 ЛС | профиль | цитата
Леонид писал(а):
можно заменить IndexToChanel
А конкретную схему можно увидеть на включение и выключение нескольких панелей ?
Именно по doVisible с помощью IndexToChanel.

Редактировалось 1 раз(а), последний 2019-01-17 20:55:31
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8886
Рейтинг: 823
#9: 2019-01-17 22:44:09 ЛС | профиль | цитата
Tad, да запросто, с 2009 года можно Вот и IndexToCanalAll http://forum.hiasm.com/getfile/38571
Запросто


Add(MainForm,2953706,21,105)
{
}
Add(ComboBox,4404355,105,133)
{
Left=25
Top=10
Strings=#1:0|1:1|1:2|1:3|1:4|1:5|
link(onClick,1241407:doEventAll,[])
}
Add(IndexToChanelAll,1241407,154,133)
{
Count=6
Data=Integer(1)
DataAll=Integer(0)
link(onEvent1,3159607:doVisible,[(193,139)(193,34)])
link(onEvent2,16684934:doVisible,[(200,146)(200,76)])
link(onEvent3,3045458:doVisible,[(207,153)(207,118)])
link(onEvent4,1101731:doVisible,[])
link(onEvent5,5412060:doVisible,[(214,167)(214,202)])
link(onEvent6,8278574:doVisible,[(207,174)(207,244)])
}
Add(Edit,3159607,224,14)
{
Left=220
Top=5
Visible=1
Point(doVisible)
}
Add(Edit,16684934,224,56)
{
Left=220
Top=45
Visible=1
Point(doVisible)
}
Add(Edit,3045458,224,98)
{
Left=220
Top=90
Visible=1
Point(doVisible)
}
Add(Edit,1101731,224,140)
{
Left=220
Top=130
Visible=1
Point(doVisible)
}
Add(Edit,5412060,224,182)
{
Left=220
Top=165
Visible=1
Point(doVisible)
}
Add(Edit,8278574,224,224)
{
Left=220
Top=215
Visible=1
Point(doVisible)
}

карма: 19

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#10: 2019-01-17 23:00:25 ЛС | профиль | цитата
Леонид писал(а):
Вот и IndexToCanalAll

Опять нештатки в ход пошли. Хотя на штатных есть еще один вариант

Схема


Add(MainForm,9953887,574,196)
{
Position=1
Point(onClose)
link(onCreate,988124:doWork1,[(613,216)(613,191)(483,191)(483,230)])
link(onClose,988124:doWork3,[(615,223)(615,258)(483,258)(483,244)])
}
Add(Menu,126380,301,203)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Выбор|1:)|6:Дальше|
Point(onSelectNum)
link(onSelectNum,14473482:doSet,[])
}
Add(ChildGroupBox,988124,490,224)
{
}
BEGIN_SDK
Add(EditMulti,2638144,21,21)
{
WorkCount=3
Width=412
Height=151
VOffset=7
link(doWork1,3043274:doEnumPorts,[])
link(doWork2,2260444:doVisible,[])
link(doWork3,3048907:doWork1,[(74,48)])
}
Add(GroupBox,2260444,84,35)
{
Left=35
Top=105
Width=329
Height=137
Align=5
Font=[MS Sans Serif,8,1,0,1]
Visible=1
Caption="Выбор и включение COM-порта."
Point(doVisible)
}
Add(If_else,3683441,343,98)
{
Type=5
Op2=String()
}
Add(ComboBox,16154141,301,35)
{
Left=135
Top=20
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
DataType=1
ReadOnly=0
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onClick,15624758:doStrCat,[])
}
Add(ComboBox,2979466,175,28)
{
Left=35
Top=20
Width=80
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Text=""
DataType=1
ReadOnly=0
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onClick,10022346:doStrCat,[])
}
Add(COM,8931599,301,91)
{
BaudRate=15
link(onRead,3683441:doCompare,[])
link(Port,2979466:String,[(307,80)(188,80)])
link(BaudRate,16154141:String,[])
}
Add(Timer,15323035,168,119)
{
Interval=32
link(onTimer,1856028:doData,[])
}
Add(DoData,1856028,245,119)
{
Data=Integer(30)
link(onEventData,8931599:doRead,[])
}
Add(Label,1595256,259,35)
{
Left=35
Top=54
Width=84
Height=19
Caption=""
}
Add(Label,15670888,385,42)
{
Left=135
Top=55
Width=79
Height=19
Caption=""
}
Add(StrCat,10022346,217,35)
{
Str1="сом-порт № "
link(onStrCat,1595256:doText,[])
}
Add(StrCat,15624758,343,42)
{
Str1="Скорость "
link(onStrCat,15670888:doText,[])
}
Add(Button,5248490,203,91)
{
Left=240
Top=20
Width=70
Caption="Вкл СОМ"
link(onClick,8931599:doOpen,[])
}
Add(Button,2618450,28,98)
{
Left=240
Top=50
Width=70
Caption="Откл СОМ"
link(onClick,3048907:doWork2,[])
}
Add(EnumCOM,3043274,133,28)
{
OutType=0
link(onEnumPorts,2979466:doAdd,[])
}
Add(HubEx,3048907,70,98)
{
link(onEvent,8931599:doClose,[])
}
END_SDK
Add(ChildGroupBox,1952328,434,238)
{
}
BEGIN_SDK
Add(EditMulti,11069351,21,21)
{
WorkCount=1
link(doWork1,12528873:doVisible,[(39,27)(39,111)])
}
Add(GroupBox,12528873,56,105)
{
Left=35
Top=105
Align=5
Visible=1
Point(doVisible)
}
END_SDK
Add(MultiSetParam,14473482,357,210)
{
Parameters=#9:0;0;0;0;0|9:0;1;0;0;0|9:0;0;0;0;0|9:0;0;0;1;0|9:0;0;0;0;1|
Count=5
link(onSet2,15223466:doEvent,[(403,223)(403,195)])
link(onSet4,988124:doWork2,[(396,237)(396,230)(473,230)(473,237)])
link(onSet5,1952328:doWork1,[])
}
Add(IndexToChanel,15223466,434,189)
{
link(onEvent2,9953887:doClose,[(529,202)(529,223)])
}

карма: 22

0
Ответов: 85
Рейтинг: 0
#11: 2019-01-18 05:01:20 ЛС | профиль | цитата
Рассчитывал, конечно не на то. Но тоже в принципе нормально получается.
Я немного модернизировал вариант от Tad. Сильно мне понравилась его цветная кнопка .

Add(MainForm,9953887,616,259)
{
Width=1031
Height=607
Position=1
Point(onClose)
Point(Close)
link(onCreate,988124:doWork1,[(655,279)(655,254)(525,254)(525,293)])
link(onClose,988124:doWork3,[(657,286)(657,345)(525,345)(525,307)])
link(Close,988124:Var1,[(622,248)(682,248)(682,331)(538,331)])
}
Add(Menu,126380,329,266)
{
Menu=#9:Программа|1:(|4:Exit|1:)|8:СОМ-ПОРТ|1:(|5:Выбор|1:)|6:Дальше|
Point(onSelectNum)
link(onSelectNum,13748720:doOperation,[])
}
Add(Math,13748720,378,273)
{
OpType=9
Op1=1
ResultType=0
link(onResult,4018740:doBits,[])
}
Add(IntToBits,4018740,427,273)
{
Data_0=Integer(0)
Data_1=Integer(1)
link(onBit2,16185788:doCompare,[])
link(onBit4,988124:doWork2,[])
link(onBit5,1952328:doWork1,[])
}
Add(ChildGroupBox,988124,532,287)
{
}
BEGIN_SDK
Add(EditMulti,2638144,21,-7)
{
EventCount=1
WorkCount=3
VarCount=1
Width=412
Height=228
VOffset=7
link(doWork1,3043274:doEnumPorts,[])
link(doWork2,2260444:doVisible,[])
link(doWork3,3048907:doWork1,[(74,20)])
link(Var1,11914673:Left,[(27,211)(62,211)])
}
Add(GroupBox,2260444,84,7)
{
Width=372
Height=116
Align=5
Font=[MS Sans Serif,8,1,0,1]
Visible=1
Caption="Выбор и включение COM-порта."
Point(doVisible)
}
Add(If_else,3683441,343,70)
{
Type=5
Op2=String()
link(onTrue,2638144:onEvent1,[(404,76)(424,76)(424,6)])
}
Add(ComboBox,16154141,301,7)
{
Left=135
Top=20
Width=75
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Strings=#3:300|3:600|4:1200|4:2400|4:4800|4:9600|5:14400|5:19200|5:38400|5:57600|6:115200|
Text="19200"
DataType=1
ReadOnly=0
Point(doSelect)
Point(EditText)
Point(onSelect)
link(onClick,15624758:doStrCat,[])
}
Add(ComboBox,2979466,175,0)
{
Left=35
Top=20
Width=80
Height=21
Color=15780518
Font=[MS Sans Serif,8,1,0,1]
WinStyle=4
Text=""
DataType=1
ReadOnly=0
Point(doSelect)
Point(onSelect)
Point(EditText)
link(onClick,10022346:doStrCat,[])
}
Add(COM,8931599,301,63)
{
BaudRate=15
link(onRead,3683441:doCompare,[])
link(Port,2979466:String,[(307,52)])
link(BaudRate,16154141:String,[])
}
Add(Timer,15323035,168,91)
{
Interval=32
link(onTimer,1856028:doData,[])
}
Add(DoData,1856028,245,91)
{
Data=Integer(30)
link(onEventData,8931599:doRead,[])
}
Add(Label,1595256,259,7)
{
Left=35
Top=54
Width=84
Height=19
Caption=""
}
Add(Label,15670888,385,14)
{
Left=135
Top=55
Width=79
Height=19
Caption=""
}
Add(StrCat,10022346,217,7)
{
Str1="сом-порт № "
link(onStrCat,1595256:doText,[])
}
Add(StrCat,15624758,343,14)
{
Str1="Скорость "
link(onStrCat,15670888:doText,[])
}
Add(EnumCOM,3043274,133,0)
{
OutType=0
link(onEnumPorts,2979466:doAdd,[])
}
Add(HubEx,3048907,70,70)
{
link(onEvent,8931599:doClose,[])
}
Add(Switch,7986566,147,175)
{
DataOn=String(255,СТОП)
DataOff=String(0,ПУСК)
Point(State)
Point(onOff)
Point(onOn)
link(onSwitch,11914673:doSplit,[(187,181)(187,152)(36,152)(36,174)])
link(onOff,3048907:doWork2,[(191,188)(191,132)(65,132)(65,76)])
link(onOn,8931599:doOpen,[(240,195)(240,69)])
}
Add(BitBtn,12852987,98,168)
{
Left=235
Top=21
Width=125
Color=0
Font=[MS Sans Serif,8,1,16777215,1]
Caption="Пуск"
Point(doColor)
link(onClick,7986566:doSwitch,[(138,174)(138,181)])
}
Add(StrPart,11914673,56,168)
{
Char=","
Point(Left)
link(onSplit,12852987:doCaption,[])
link(onPart,12852987:doColor,[])
}
END_SDK
Add(If_else,16185788,574,280)
{
Op2=Integer(1)
link(onTrue,9953887:doClose,[])
}
Add(ChildGroupBox,1952328,476,301)
{
}
BEGIN_SDK
Add(EditMulti,11069351,21,21)
{
WorkCount=1
link(doWork1,12528873:doVisible,[(39,27)(39,111)])
}
Add(GroupBox,12528873,56,105)
{
Width=1023
Height=580
Align=5
Visible=1
Point(doVisible)
}
END_SDK


Редактировалось 3 раз(а), последний 2019-01-18 05:03:30
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2019-01-18 09:42:18 ЛС | профиль | цитата
RT9U писал(а):
нормально получается
Ненормально получается.
Блокировка закрытия MainForm из MainMenu.Exit не работает.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5227
Рейтинг: 586
#13: 2019-01-18 18:05:54 ЛС | профиль | цитата
честно сказать коллеги я Вас уже не понимаю
RT9U писал(а):
Решил попробовать упрятать сом -порт в меню, уж жалко место которое он занимает в поле окна основной программы

Как правило утилиты стараются сохранить настройки com-порта и сделать это всё можно в отдельном окне. В чём сложность то?
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 16884
Рейтинг: 1239
#14: 2019-01-18 20:32:33 ЛС | профиль | цитата
andrestudio писал(а):
честно сказать коллеги я Вас уже не понимаю
Я уже давно не понимаю.
Виталий "решил упрятать".
Леонид посоветовал использовать элемент Case. Ну не посмотрел он, что этих CASE потребуется >30 штук.
Ну продемонстрировал я им самый экономный вариант, предложенный Galkov-ым 100 лет тому назад
Кстати, nesco, твой вариант возможен, но набивать 35 строк по 70 знаков ( 2450 знаков )
1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
и т.д.
нет никакого желания.

Редактировалось 3 раз(а), последний 2019-01-18 20:38:59
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#15: 2019-01-18 22:20:34 ЛС | профиль | цитата
Tad писал(а):
нет никакого желания

nesco писал(а):
Хотя на штатных есть еще один вариант

Те это просто пример, что есть такая возможность. А это компонент я разработал именно по мотивам примера от Galkov-а, тк лепить еще компонентов на выход совсем не хотелось, если данные отличались в канале от 0 или 1.

PS. Кстати, в данном варианте можно отказаться от разделителя. Да и набивать надо не 35 по 70, а всего достаточно 35 в начале и 35 убрать в конце с копированием строки на следующую позицию, те всего 70 плюс копирование.

Редактировалось 1 раз(а), последний 2019-01-18 22:26:24
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)