Вверх ↑
Этот топик читают: Гость
Ответов: 41
Рейтинг: 0
#1: 2025-03-10 11:43:19 ЛС | профиль | цитата
Здравствуйте, не удалось найти нужный функционал, подскажите как можно сделать. Задача - включать и отключать сигнал который идет "по горизонтали" в hiasm. Ниже пример, в текстовое поле отправляются данные, что нужно поставить МЕЖДУ компонентом EX и MEMO, чтобы можно было включать и выключать вывод данных в текстовое поле?

Add(MainForm,2953706,371,322)
{
Width=870
Height=736
}
Add(Timer,4702226,294,441)
{
Interval=200
link(onTimer,1245350:doNext,[])
}
Add(CounterEx,1245350,385,441)
{
link(onNext,3767594:doAdd,[(489,447)(489,454)])
}
Add(Memo,3767594,560,448)
{
Left=445
Top=95
Width=170
Height=425
Font=[MS Sans Serif,14,0,0,1]
AddType=1
}

карма: 0

0
Ответов: 866
Рейтинг: 186
#2: 2025-03-10 12:03:50 ЛС | профиль | цитата
andrewproffi писал(а):
то нужно поставить МЕЖДУ компонентом EX и MEMO, чтобы можно было включать и выключать вывод данных в текстовое поле?


Add(MainForm,11213093,210,91)
{
Width=870
Height=736
}
Add(Timer,4702226,133,210)
{
Interval=200
link(onTimer,1245350:doNext,[])
}
Add(CounterEx,1245350,224,210)
{
link(onNext,2765909:doEvent,[])
}
Add(Memo,3767594,399,217)
{
Left=445
Top=95
Width=170
Height=425
Font=[MS Sans Serif,14,0,0,1]
AddType=1
}
Add(IndexToChanel,2765909,315,210)
{
Point(Index)
link(onEvent2,3767594:doAdd,[])
link(Index,15666983:Checked,[])
}
Add(CheckBox,15666983,315,147)
{
Left=320
Top=145
}

карма: 18

0
Ответов: 41
Рейтинг: 0
#3: 2025-03-10 12:10:19 ЛС | профиль | цитата
Спасибо! подходит. Вот еще вариант

Add(MainForm,13061675,644,497)
{
Width=731
Height=559
}
Add(Timer,4702226,567,616)
{
Interval=200
link(onTimer,1245350:doNext,[])
}
Add(CounterEx,1245350,658,616)
{
link(onNext,16386624:doCompare,[(709,622)(709,615)])
}
Add(Memo,3767594,791,616)
{
Left=525
Top=80
Width=170
Height=425
Font=[MS Sans Serif,14,0,0,1]
AddType=1
}
Add(Edit,1928499,665,679)
{
Left=245
Top=325
link(onEnter,16386624:doMask,[(723,692)(723,622)])
}
Add(StrMask,16386624,728,609)
{
Mask="*"
CaseSensitive=0
Point(doMask)
link(onTrue,3767594:doAdd,[])
AddHint(11,-29,19,13,Mask)
}

карма: 0

0
Ответов: 2324
Рейтинг: 681
#4: 2025-03-10 15:06:00 ЛС | профиль | цитата
Канальный переключатель (вкладка Инструменты)

Add(MainForm,13061675,392,133)
{
Width=731
Height=559
}
Add(Timer,4702226,315,245)
{
Interval=200
link(onTimer,1245350:doNext,[])
}
Add(CounterEx,1245350,406,245)
{
link(onNext,15736268:doInputEvent,[])
}
Add(Memo,3767594,532,231)
{
Left=525
Top=80
Width=170
Height=425
Font=[MS Sans Serif,14,0,0,1]
AddType=1
}
Add(ChanelSwitch,15736268,469,231)
{
link(onOutEvent1,3767594:doAdd,[])
}
Add(Button,14405877,315,210)
{
Left=320
Top=185
Caption="off"
link(onClick,15736268:doSwitchToChanel2,[(412,216)(412,244)])
}
Add(Button,15153446,315,175)
{
Left=320
Top=155
Caption="on"
link(onClick,15736268:doSwitchToChanel1,[(432,181)(432,237)])
}
карма: 11

0
Ответов: 518
Рейтинг: 166
#5: 2025-03-10 16:28:36 ЛС | профиль | цитата
sla8a писал(а):
вкладка Инструменты

SVN 2425
карма: 4

0
Ответов: 2324
Рейтинг: 681
#6: 2025-03-10 17:12:55 ЛС | профиль | цитата
tig-rrr, затруднняю сказать когда этот элемент появился в палитре и почему у тебя нет,но на svn он есть: http://svn.hiasm.com/packs/delphi/icon/ChanelSwitch.ico

Редактировалось 1 раз(а), последний 2025-03-10 17:13:15
карма: 11

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#7: 2025-03-10 19:34:20 ЛС | профиль | цитата
Вот кто бы обновил Elements.db



Компонент ChanelSwitch был добавлен на SVN 20.01.2022

Редактировалось 2 раз(а), последний 2025-03-10 19:36:30
карма: 22

0
Ответов: 1098
Рейтинг: 79
#8: 2025-03-10 21:58:44 ЛС | профиль | цитата
sla8a писал(а):
лемент появился в палитре и почему у тебя нет

Видать по той же причине, что и у меня. Я по старинке юзаю TortoiseSVN, естественно забываю потом жмякнуть sql_to_db.bat
карма: 0

0
Ответов: 2324
Рейтинг: 681
#9: 2025-03-11 09:07:00 ЛС | профиль | цитата
nesco писал(а):
Компонент ChanelSwitch был добавлен на SVN 20.01.2022

nesco, раз зашел разговор про ChanelSwitch то пару вопросов по элементу:
1. Почему нет свойства по выбору канала по умолчанию (к примеру: DefaultChanel1 [True,False])?
2. Да и как по мне Integer для хранения boolean значения лишняя затея.

Вот как вариант:


[About]
Version=1.11
Author=nesco
Mail=hiasm@mail.ru

[Type]
Class=Element
Info=2-х канальный переключатель
Tab=Tools
Icon=MT_Data

[Property]
DefaultChanel1=По умолчанию первый канал (при False втрой канал)|14|0|True,False
MT_Data=Режим MT-потока|4|0|False,True

[Methods]
doSwitchToChanel1=Переключает входящий поток на 1-й канал|1|
doSwitchToChanel2=Переключает входящий поток на 2-й канал|1|
doInputEvent%MT_Data%=Входящий поток данных|1|
onOutEvent1=1-й канал данных|2|
onOutEvent2=2-й канал данных|2|
IdxCurChanel=Индекс текущего активного канала|3|1


unit hiChanelSwitch;

interface

uses Kol, Share, Debug;

type
THIChanelSwitch = class(TDebug)
private
Chanel_1: boolean;
public
_prop_MT_Data: byte;
_event_onOutEvent1: THI_Event;
_event_onOutEvent2: THI_Event;

procedure _work_doSwitchToChanel1(var _Data: TData; Index: word);
procedure _work_doSwitchToChanel2(var _Data: TData; Index: word);
procedure _work_doInputEvent0(var _Data: TData; Index: word);
procedure _work_doInputEvent1(var _Data: TData; Index: word);
procedure _var_IdxCurChanel(var _Data: TData; Index: word);
property _prop_DefaultChanel1:boolean write Chanel_1;
end;

implementation

procedure THIChanelSwitch._work_doSwitchToChanel1;
begin
Chanel_1 := true;
end;

procedure THIChanelSwitch._work_doSwitchToChanel2;
begin
Chanel_1 := false;
end;

procedure THIChanelSwitch._work_doInputEvent0;
begin
_Data := ReadData(_Data, NULL);
if Chanel_1 then
_hi_CreateEvent_(_Data, @_event_onOutEvent1)
else
_hi_CreateEvent_(_Data, @_event_onOutEvent2);
end;

procedure THIChanelSwitch._work_doInputEvent1;
begin
_Data := ReadMTData(_Data, NULL);
if Chanel_1 then
_hi_CreateEvent_(_Data, @_event_onOutEvent1)
else
_hi_CreateEvent_(_Data, @_event_onOutEvent2);
end;

procedure THIChanelSwitch._var_IdxCurChanel;
begin
if Chanel_1 then
dtInteger(_Data, 0)
else
dtInteger(_Data, 1);
end;

end.



Add(MainForm,13061675,273,147)
{
Width=460
Height=559
Position=1
}
Add(Timer,4702226,273,273)
{
Interval=200
link(onTimer,1245350:doNext,[])
}
Add(CounterEx,1245350,315,273)
{
link(onNext,15736268:doInputEvent,[(356,279)(356,251)])
}
Add(Memo,3767594,420,231)
{
Left=260
Top=65
Width=170
Height=425
Font=[MS Sans Serif,14,0,0,1]
AddType=1
}
Add(ChanelSwitch,15736268,371,231)
{
DefaultChanel1=1
MT_Data=1
link(onOutEvent1,3767594:doAdd,[])
}
Add(Button,14405877,273,238)
{
Left=130
Top=195
Caption="off"
link(onClick,15736268:doSwitchToChanel2,[])
}
Add(Button,15153446,273,196)
{
Left=130
Top=165
Caption="on"
link(onClick,15736268:doSwitchToChanel1,[(357,202)(357,237)])
}
Add(Button,8656408,273,315)
{
Left=100
Top=230
Width=125
Caption="Какой канал?"
link(onClick,16234457:doMessage,[])
}
Add(Message,16234457,371,315)
{
Caption="Текущий канал"
link(Message,15736268:IdxCurChanel,[])
}

карма: 11

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#10: 2025-03-11 12:22:26 ЛС | профиль | цитата
Вариант интересный, но пусть будет Integer, тк вдруг захочется со временем сделать больше каналов, тогда уже boolean не прокатит. А сделать дефолтный канал... разве что, если так хочется.

Редактировалось 1 раз(а), последний 2025-03-11 12:23:19
карма: 22

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#11: 2025-03-12 01:28:40 ЛС | профиль | цитата
Добавил в компонент ChanelSwitch свойство DefaultChanel. Обновление на SVN.
карма: 22

0
Ответов: 518
Рейтинг: 166
#12: 2025-03-14 13:46:23 ЛС | профиль | цитата
tom-it писал(а):
забываю потом жмякнуть sql_to_db.bat
Вроде как и жмякаю периодически. Видать наковырял чего то где не положено После полной переустановки и обновления всё появилось.
карма: 4

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