Вверх ↑
Этот топик читают: Гость
Ответов: 952
Рейтинг: 34
#1: 2019-02-16 01:01:36 ЛС | профиль | цитата
Предлагаю здесь делиться заготовками кода помещенными в контейнер, снабженные справкой в виде коммента. Очень удобно вставлять уже отлаженные кирпичики кода. Можно потом создать в Хиасме вкладку Заготовки для них, оформив их как компонент. Итак, поехали. Первый снипплет - замедлитель двойного клика)

Замедлитель двойного клика



Add(MultiElementEx,7388391,420,133)
{
@Hint=#27:Double Click Controller 1.0|21:Aziz - 16.2.2019 0:54|39:Для предотвращения ложных срабатываний,|59:когда медленные повторные клики воспринимаются как двойные.|59:Понадобилось для элемента StringTableMT. Странно что число |59:миллисекунд нужно поставить в 4000 чтобы работало как надо.|41:Наверное там не реальное время в таймере.|
}
BEGIN_SDK
Add(EditMultiEx,5926458,21,21)
{
WorkCount=#8:doEvent1|
EventCount=#6:onTrue|
Width=496
Height=417
link(doEvent1,11310311:doEvent1,[(95,27)(95,83)])
}
Add(InfoTip,9880794,112,203)
{
Info=#26:Замедлитель двойного клика|0:|27:Double Click Controller 1.0|21:Aziz - 16.2.2019 0:54|39:Для предотвращения ложных срабатываний,|59:когда медленные повторные клики воспринимаются как двойные.|59:Понадобилось для элемента StringTableMT. Странно что число |59:миллисекунд нужно поставить в 4000 чтобы работало как надо.|41:Наверное там не реальное время в таймере.|
Width=316
Height=179
}
Add(Timer,7803198,203,112)
{
Interval=4000
AutoStop=1
link(onTimer,16471042:doReset,[(243,118)(243,111)])
}
Add(CounterEx,16471042,252,98)
{
Point(doReset)
link(onNext,7054557:doCompare,[])
}
Add(If_else,7054557,294,98)
{
Type=4
Op2=Integer(2)
link(onTrue,5926458:onTrue,[(422,104)(422,27)])
}
Add(Hub,11310311,168,77)
{
link(onEvent1,16471042:doNext,[(217,83)(217,104)])
link(onEvent2,7803198:doTimer,[(192,90)(192,118)])
}
END_SDK


карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
vip
#1.1контекстная реклама от партнеров
Ответов: 4340
Рейтинг: 470
#2: 2019-02-16 15:43:37 ЛС | профиль | цитата
контролы для мультимедиа из Label(s)


Add(GProgressBar,4013599,231,63)
{
Width=374
Height=242
Align=5
Enabled=1
}
Add(Label,15245952,154,511)
{
Left=15
Top=203
Width=277
Height=20
Font=[Arial,10,1,16776960,204]
Transparent=0
Caption="|===|===|===|===|===|===|===|===|===|===|"
Point(onMouseMove)
Point(MouseX)
link(onMouseMove,3268444:doEvent,[(197,524)(197,556)(92,556)(92,580)])
}
Add(Label,3519196,364,441)
{
Left=15
Top=170
Width=275
Height=28
Font=[MS Sans Serif,14,1,65280,1]
Transparent=0
AutoSize=1
}
Add(Label,3835974,161,182)
{
Left=45
Top=40
Width=111
Height=31
Font=[Comic Sans MS,14,1,255,204]
Transparent=0
Caption="CheckBox 2"
link(onClick,8869271:doWork1,[(207,188)])
}
Add(Label,11958673,161,126)
{
Left=45
Top=10
Width=111
Height=31
Font=[Comic Sans MS,14,1,255,204]
Transparent=0
Caption="CheckBox 1"
link(onClick,5259453:doWork1,[(207,132)])
}
Add(Label,10163438,168,364)
{
Left=45
Top=135
Width=81
Height=31
Font=[Comic Sans MS,14,1,65535,204]
Transparent=0
Caption="RadioButton 3"
link(onClick,4414951:doWork1,[(214,370)])
}
Add(Label,6800871,168,315)
{
Left=45
Top=105
Width=81
Height=31
Font=[Comic Sans MS,14,1,65535,204]
Transparent=0
Caption="RadioButton 2"
link(onClick,11361082:doWork1,[(214,321)])
}
Add(Label,7987677,168,266)
{
Left=45
Top=75
Width=81
Height=31
Font=[Comic Sans MS,14,1,65535,204]
Transparent=0
Caption="RadioButton 1"
link(onClick,14038578:doWork1,[(214,272)])
}
Add(Label,12926849,168,371)
{
Left=10
Top=135
Width=28
Height=34
Font=[Wingdings,20,0,65535,2]
Transparent=0
Caption="Ў"
link(onClick,4414951:doWork2,[])
}
Add(Label,9602998,168,322)
{
Left=10
Top=105
Width=28
Height=34
Font=[Wingdings,20,0,65535,2]
Transparent=0
Caption="Ў"
link(onClick,11361082:doWork2,[])
}
Add(Label,3968278,168,273)
{
Left=10
Top=75
Width=28
Height=34
Font=[Wingdings,20,0,65535,2]
Transparent=0
Caption="¤"
link(onClick,14038578:doWork2,[])
}
Add(Label,2507430,161,189)
{
Left=10
Top=40
Width=28
Height=34
Font=[Wingdings,20,0,255,2]
Transparent=0
Caption="э"
link(onClick,8869271:doWork2,[])
}
Add(Label,7100654,161,133)
{
Left=10
Top=10
Width=28
Height=34
Font=[Wingdings,20,0,255,2]
Transparent=0
Caption="э"
link(onClick,5259453:doWork2,[])
}
Add(MainForm,13400890,105,49)
{
Left=20
Top=105
Width=380
Height=272
Caption="Label_Multimedia"
BorderStyle=3
Position=1
link(onCreate,15170231:doData,[])
}
Add(Switch,12757269,105,133)
{
DataOn=String(э)
DataOff=String(Ё)
Default=0
Point(State)
Point(onOff)
Point(onOn)
link(onSwitch,7100654:doText,[])
link(onOff,202077:doWork1,[])
link(onOn,202077:doWork2,[])
}
Add(DoData,15170231,161,63)
{
Data=Integer(100)
link(onEventData,4013599:doPosition,[])
}
Add(Switch,7862038,105,189)
{
DataOn=String(э)
DataOff=String(Ё)
Default=0
Point(State)
Point(onOff)
Point(onOn)
link(onSwitch,2507430:doText,[])
link(onOff,10172883:doWork1,[])
link(onOn,10172883:doWork2,[])
}
Add(IntToBits,7062791,105,273)
{
Count=3
Data_0=String(Ў)
Data_1=String(¤)
link(onBit1,3968278:doText,[])
link(onBit2,9602998:doText,[(153,286)(153,328)])
link(onBit3,12926849:doText,[(145,293)(145,377)])
}
Add(ChanelToIndex,13906522,259,266)
{
Count=5
link(onIndex,4695207:doEvent1,[])
}
Add(IndexToChanel,8036939,371,273)
{
Count=5
}
Add(Hub,4695207,315,266)
{
link(onEvent1,7062791:doBits,[(352,272)(352,254)(93,254)(93,279)])
link(onEvent2,8036939:doEvent,[])
}
Add(HubEx,4414951,210,371)
{
link(onEvent,13906522:doWork5,[(239,377)(239,300)])
}
Add(HubEx,11361082,210,322)
{
link(onEvent,13906522:doWork3,[(230,328)(230,286)])
}
Add(HubEx,14038578,210,273)
{
link(onEvent,13906522:doWork2,[])
}
Add(HubEx,8869271,203,189)
{
link(onEvent,7862038:doSwitch,[(218,195)(218,173)(89,173)(89,195)])
}
Add(ChanelToIndex,202077,231,140)
{
}
Add(HubEx,5259453,203,133)
{
link(onEvent,12757269:doSwitch,[(219,139)(219,118)(93,118)(93,139)])
}
Add(ChanelToIndex,10172883,231,196)
{
}
Add(MathParse,12292256,308,623)
{
MathStr="(%1-3 ) /3.43"
ResultType=0
link(onResult,11452276:doText,[(353,629)(353,610)(289,610)(289,573)])
link(X1,11452276:Left,[])
}
Add(Hub,14636148,231,574)
{
OutCount=3
link(onEvent1,11452276:doLeft,[])
link(onEvent2,5751761:doProcessMessages,[(279,587)(279,524)])
link(onEvent3,12292256:doCalc,[(281,594)(281,629)])
}
Add(IndexToChanel,3268444,105,574)
{
Point(Index)
link(onEvent1,3488854:doOperation,[])
}
Add(Timer,11207504,98,441)
{
Interval=50
Point(doAutoStop)
link(onTimer,7208941:doNext,[])
}
Add(StrCat,4051499,259,441)
{
Str1="|"
link(onStrCat,6380372:doValue,[])
link(Str2,6380372:Value,[(272,429)(299,429)(299,487)(314,487)])
}
Add(Memory,6380372,308,441)
{
Default=String(|)
link(onData,3519196:doText,[])
}
Add(Case,15945754,203,441)
{
link(onNextCase,4051499:doStrCat,[])
link(onTrue,6380372:doClear,[])
}
Add(Counter,7208941,154,441)
{
Max=50
link(onNext,15945754:doCase,[])
}
Add(Application,5751761,301,518)
{
}
Add(Math,3488854,161,574)
{
Op2=3
ResultType=0
link(onResult,14636148:doEvent1,[])
link(Op1,15245952:MouseX,[])
}
Add(Label,11452276,301,567)
{
Left=5
Top=205
Width=25
Color=16776960
Font=[Arial,8,1,255,204]
Caption="0"
AutoSize=1
Alignment=2
Point(doLeft)
Point(Left)
}

карма: 4

0
Ответов: 387
Рейтинг: 151
#3: 2019-02-16 17:56:08 ЛС | профиль | цитата
andrestudio писал(а):
контролы для мультимедиа из Label(s)

andrestudio Этот пример только для FPC ? Или это только у меня так.
карма: 3

0
Ответов: 1247
Рейтинг: 67
#4: 2019-02-16 18:16:28 ЛС | профиль | цитата
tig-rrr, GProgressBar все перекрывает
карма: 2

0
Ответов: 4340
Рейтинг: 470
#5: 2019-02-16 19:35:43 ЛС | профиль | цитата
У меня delphi & fpc ok
карма: 4

0
Ответов: 387
Рейтинг: 151
#6: 2019-02-16 23:06:57 ЛС | профиль | цитата
Konst писал(а):
tig-rrr, GProgressBar все перекрывает

Да, когда этот элемент удаляешь или (скрываешь видимость) -работает. Странно, может у Вас delphi 7 компилятор?
карма: 3

0
Ответов: 4340
Рейтинг: 470
#7: 2019-02-17 06:20:09 ЛС | профиль | цитата
д4. Кстати в Кол есть своя градиентная панель, чего просто штатным элементом не сделали х.з
карма: 4

0
Ответов: 952
Рейтинг: 34
#8: 2019-02-17 12:13:19 ЛС | профиль | цитата
andrestudio, круто, спасибо, на альтернативной сборке Хиасм все ок. Самое нестандартное применение компонента Label что я видел) Художественно-математический Шедевр)

--- Добавлено в 2019-02-17 12:18:10

andrestudio, может ты подскажешь как многострочный текст отображать с label ? А то на форме в режиме редактирования все Ок, а при компиляции все выравнивается в строку.

Редактировалось 2 раз(а), последний 2019-02-17 12:20:27
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 4340
Рейтинг: 470
#9: 2019-02-17 13:53:24 ЛС | профиль | цитата
Aziz, ну попробуй AutoSize=False. Этой схеме лет 10. Я делал прототипы этих компонентов которые ушли в небытие с моим хардом. Ну а делать ремейк заного уже лень
карма: 4

0
Ответов: 1247
Рейтинг: 67
#10: 2019-02-17 14:01:02 ЛС | профиль | цитата
andrestudio писал(а):
д4. Кстати в Кол есть своя градиентная панель, чего просто штатным элементом не сделали х.з

а Rush контролы это не то?
карма: 2

0
Ответов: 4340
Рейтинг: 470
#11: 2019-02-17 14:18:09 ЛС | профиль | цитата
Konst писал(а):
а Rush контролы это не то?
нет, там свои конструкторы NewGradientPanel и NewGradientPanelEx
карма: 4

0
Ответов: 952
Рейтинг: 34
#12: 2019-02-17 14:40:31 ЛС | профиль | цитата
andrestudio,спасибо, гугл уже нашел тему, хотел здесь отписаться.

foksov писал(а):
В Label, для многострочности, надо AutoSize=False и далее строки вводи с переводом строки

http://forum.hiasm.com/topic/53682

Редактировалось 2 раз(а), последний 2019-02-17 14:41:43
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1682
Рейтинг: 149
#13: 2019-02-17 20:53:47 ЛС | профиль | цитата
Aziz писал(а):
Замедлитель двойного клика

А просто уменьшить время в системе между щелчками, считающимися за двойной клик, нельзя?
Есть функция SetDoubleClickTime для установки этого времени, выкладываю компонент с ней (там ещё несколько полезных ф-ций).

Редактировалось 1 раз(а), последний 2019-02-17 20:54:41
карма: 5
0
файлы: 1AnyFunctions.rar [3.5KB] [29]
Ответов: 952
Рейтинг: 34
#14: 2019-02-17 23:43:30 ЛС | профиль | цитата
3042, спасибо, можно, но похоже именно в том компоненте двойной клик считался слишком быстро. И не хотелось бы менять общие настройки системы.

Привязка файла с своим расширением к своей программе:

Add(MainForm,181527,98,167)
{
Width=600
Height=342
link(onCreate,309512:doEvent1,[(208,187)(208,188)])
}
Add(MultiElementEx,309512,287,182)
{
@Hint=#42:Привязка и отвязка к расширениям программы|7:17.2.19|54:http://hi-asm.blogspot.com/2009/09/blog-post_8652.html|
link(onItem,15234555:doAdd,[(415,188)(415,187)])
}
BEGIN_SDK
Add(EditMultiEx,8502272,21,21)
{
WorkCount=#8:doEvent1|8:doDelete|
EventCount=#6:onItem|
Width=454
Height=473
link(doEvent1,11140096:doEvent1,[(56,27)(56,118)])
link(doDelete,9272869:doEvent1,[(137,34)(137,410)])
}
Add(Application,16504106,147,49)
{
}
Add(ArrayEnum,3764126,154,112)
{
link(onItem,8502272:onItem,[(254,118)(254,27)])
link(Array,16504106:Params,[])
}
Add(Registry,15145600,147,210)
{
Key=".afg"
Data="startenergy"
}
Add(Hub,11140096,91,112)
{
OutCount=4
link(onEvent1,3764126:doEnum,[])
link(onEvent2,15145600:doWrite,[(126,125)(126,223)])
link(onEvent3,10897908:doWrite,[(123,132)(123,272)])
link(onEvent4,775217:doStrCat,[(117,139)(117,233)(37,233)(37,328)])
}
Add(Registry,10897908,140,259)
{
Key="startenergy\shell\open"
Data="Start Energy Group File"
}
Add(StrCat,775217,49,322)
{
Str1="""
link(onStrCat,12754818:doStrCat,[])
link(Str2,16504106:AppFileName,[(62,202)(153,202)])
}
Add(StrCat,12754818,98,322)
{
Str2="" "%1""
link(onStrCat,1755851:doWrite,[])
link(Str1,775217:Result,[(104,310)(80,310)(80,366)(55,366)])
}
Add(Registry,1755851,154,315)
{
Key="startenergy\shell\open\command"
link(Data,12754818:Result,[(160,303)(132,303)(132,366)(104,366)])
link(Value,7827645:Value,[(174,303)(202,303)])
}
Add(Memory,7827645,196,259)
{
}
Add(Registry,9552397,301,390)
{
Key=".afg"
Point(doDeleteKey)
}
Add(Hub,9272869,252,404)
{
link(onEvent1,9552397:doDeleteKey,[])
link(onEvent2,6274992:doDeleteKey,[(284,417)(284,466)])
}
Add(Registry,6274992,301,446)
{
Key="startenergy"
Point(doDeleteKey)
}
END_SDK
Add(ListBox,15234555,427,181)
{
Width=584
Height=303
Align=5
}
Add(BitBtn,10243310,182,196)
{
Left=215
Top=270
Align=4
Caption="Удалить привязку"
link(onClick,309512:doDelete,[(258,202)(258,195)])
}


Редактировалось 2 раз(а), последний 2019-02-17 23:49:02
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1682
Рейтинг: 149
#15: 2019-02-18 04:35:13 ЛС | профиль | цитата
Aziz писал(а):
Привязка файла с своим расширением к своей программе:

Тут не всё так просто. В 7-ке есть два варианта привязки, почитайте тут.
карма: 5
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)