Вверх ↑
Этот топик читают: Гость
Ответов: 212
Рейтинг: 2
#46: 2017-06-02 00:42:00 ЛС | профиль | цитата
Леонид писал(а):

inter1 писал(а):
Надо больше всматриваться в точки
И читать не спеша и вдумчиво
Через некоторое время сами будете удивляться: "Да кто же этого не знает!"

Так и есть!!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#47: 2017-06-03 17:38:30 ЛС | профиль | цитата
А как в редакторе выйти обратно из дочерней формы? А то я заблудился. Кстати, в справке сказано только как войти в компонент, а обратной дороги нет...
Или я не нашел.

--- Добавлено в 2017-06-03 18:03:53

Нашел, блин! Выход через заднюю дверь. Что за ерунда - целый день мучаешься, а стоит спросить, так тут и сам догадаешься.

Редактировалось 1 раз(а), последний 2017-06-03 18:03:53
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 54
Рейтинг: 1
#48: 2017-06-04 11:18:54 ЛС | профиль | цитата
inter1 писал(а):
Нашел, блин! Выход через заднюю дверь.


Тут и вход и выход.


карма: 0

0
Ответов: 212
Рейтинг: 2
#49: 2017-06-05 20:55:24 ЛС | профиль | цитата
Лучше день потерять и научиться летать, а потом за 5 минут долететь.

Золотые слова!!! Я потом догадался, но сначала "пришло" БэкСпейс, а потом заметил кнопки Но, все равно, спасибо!!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#50: 2017-06-06 09:23:33 ЛС | профиль | цитата
А вот как вот так сделать: нужно, чтобы некоторая область вела себя как iframe в html - растягивалась и имела свою прокрутку. Внутри нее были бы блоки, положение которых определялось бы в CheckBox: если выбрано - размер (w) 350 и построение в один столбец. А если не выбрано, то ширина 150 и построение в несколько столбцов, в зависимости от того, насколько широко раскрыто окно, насколько хватает места.
Не ругайтесь особо, я не лентяй, просто "процессор" у меня послабей вашего. В изучении я продвигаюсь медленнее, чем влечет меня творческая мотивация.
Вот и рисуночек сделал, чтоб было яснее:

--- Добавлено в 2017-06-06 09:24:18

Как-то так:

Редактировалось 1 раз(а), последний 2017-06-06 09:24:18
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 165
Рейтинг: 6
#51: 2017-06-06 10:11:39 ЛС | профиль | цитата
inter1, Свойства > Align, Layout, а еще элементы вкладки Интерфейс > Слои

Вот пример

Add(MainForm,2953706,763,315)
{
Color=16777215
Caption="Example"
Position=1
}
Add(ChildPanel,13880856,861,357)
{
}
BEGIN_SDK
Add(EditMulti,4011188,21,21)
{
}
Add(Panel,11557151,35,105)
{
Left=35
Top=105
Align=2
Caption="Fixed Top"
}
END_SDK
Add(ChildPanel,8741225,861,434)
{
}
BEGIN_SDK
Add(EditMulti,4162115,21,21)
{
}
Add(Panel,12378031,35,105)
{
Left=35
Top=105
Align=4
Caption="Fixed Bottom"
}
END_SDK
Add(ChildPanel,13016273,798,399)
{
}
BEGIN_SDK
Add(EditMulti,7312143,21,21)
{
}
Add(Panel,1950175,35,105)
{
Left=35
Top=105
Align=1
Caption="Fixed Left"
}
END_SDK
Add(ChildScrollBox,11316499,917,399)
{
}
BEGIN_SDK
Add(EditMulti,13672131,21,21)
{
Width=1266
Height=865
}
Add(ScrollBox,10485085,35,105)
{
Left=35
Top=105
Align=5
}
Add(Label,11363611,322,98)
{
@Hint=#19:Во избежание глюков|
Width=0
Height=0
Caption=""
AutoSize=1
AddHint(48,-29,127,13,@Hint)
}
Add(ToolBarLayout,5542597,343,336)
{
Name="L1"
}
Add(Timer,5891209,273,329)
{
Interval=20
AutoStop=14
Point(onStop)
link(onTimer,10240381:doOperation,[])
link(onStop,5542597:doResize,[])
}
Add(ChildPanelEx,16326521,469,329)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,4944037,21,21)
{
WorkCount=#5:##add|
Point(##add)
link(##add,12909954:doCaption,[])
}
Add(Panel,12909954,84,21)
{
Left=35
Top=105
Width=120
Height=80
Layout="parent.L1"
}
END_SDK
Add(Math,10240381,406,329)
{
Op1=1
ResultType=0
link(onResult,16326521:##add,[])
link(Op2,10240381:Result,[(419,317)(445,317)(445,373)(412,373)])
}
END_SDK


--- Добавлено в 2017-06-06 10:13:10

Слои и их значения в рантайме у нас вроде не меняются, так что придётся решать эту проблему математикой и элементами из вкладки Логика.

Редактировалось 1 раз(а), последний 2017-06-06 10:13:10
карма: 4

0
Ответов: 212
Рейтинг: 2
#52: 2017-06-06 10:44:11 ЛС | профиль | цитата
Nickname! Классно! Гуд!! Спасибо!
Слои и их значения в рантайме у нас вроде не меняются...

То есть, нельзя, грубо говоря, кнопочкой задать изменение размера блока?
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#53: 2017-06-06 12:00:02 ЛС | профиль | цитата
И тут еще не понятно: в вашем примере 14 блоков. А где "прописано" их количество?

--- Добавлено в 2017-06-06 12:13:31

Ага!
Add(Timer,5891209,273,329)
{ ...
AutoStop=14
...
}

Редактировалось 1 раз(а), последний 2017-06-06 12:13:31
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 8887
Рейтинг: 823
#54: 2017-06-06 12:16:31 ЛС | профиль | цитата
inter1, при использовании слоёв можно одновременно менять размеры у всех элементов, а в некоторых случаях у одной строки или столбца
Размер


Add(MainForm,2953706,84,91)
{
Height=435
link(onCreate,15960513:doFor,[])
}
Add(ChildPanelEx,5890016,287,133)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,15505966,21,21)
{
WorkCount=#5:##add|8:##select|6:doSize|
Point(##add)
Point(##select)
link(doSize,14550599:doSplit,[(102,41)(102,97)])
}
Add(Panel,10457648,161,84)
{
Left=70
Top=100
Width=50
Layout="parent.MyCells"
Point(doWidth)
Point(doHeight)
}
Add(MultiStrData,14550599,112,91)
{
Char="х"
link(onPart1,10457648:doWidth,[])
link(onPart2,10457648:doHeight,[])
}
END_SDK
Add(Button,5579498,84,161)
{
Left=10
Top=5
link(onClick,6475606:doFor,[])
}
Add(GridLayout,4007521,196,168)
{
Name="MyCells"
Space=2
Padding=30
Rows=3
Cols=3
}
Add(For,6475606,140,161)
{
End=8
link(onEvent,15638790:doEvent1,[(179,167)(179,146)])
link(onStop,14744463:doWork2,[])
}
Add(Hub,15638790,203,140)
{
link(onEvent1,5890016:##select,[])
link(onEvent2,14958338:doData,[])
}
Add(DoData,14958338,238,147)
{
link(onEventData,5890016:doSize,[])
link(Data,15243320:Text,[])
}
Add(For,15960513,140,105)
{
End=8
link(onEvent,5890016:##add,[(277,111)(277,139)])
link(onStop,14744463:doWork1,[(186,118)])
}
Add(HubEx,14744463,182,168)
{
link(onEvent,4007521:doResize,[])
}
Add(Edit,15243320,238,63)
{
Left=80
Top=5
Text="50х50"
}

карма: 19

0
Ответов: 212
Рейтинг: 2
#55: 2017-06-06 12:19:38 ЛС | профиль | цитата
Леонид писал(а):
inter1, при использовании слоёв можно одновременно менять размеры у всех элементов, а в некоторых случаях у одной строки или столбца

Ух ты! Так это в точку то, что мне нужно, Леонид!
Благодарю!!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 165
Рейтинг: 6
#56: 2017-06-06 20:55:17 ЛС | профиль | цитата
inter1, я имел в виду, что нельзя у группы элементов в рантайме сменить ToolBarLayout на VBoxLayout, как вам хотелось в вашем примере. Также нельзя изменить значения отступов между элементами и отступы от краёв. Кстати, можно ли узнать у начальников, почему это работает именно так?

С изменением размеров проблем нет, просто меняете индивидуально у каждой панели перебором, как это показал Леонид. Ещё можно использовать нестандартный элемент GlobalVarEx от Galkov'а, чтобы поменять значения у всех панелей разом без перебора циклом.

Редактировалось 1 раз(а), последний 2017-06-06 20:56:43
карма: 4

0
Ответов: 212
Рейтинг: 2
#57: 2017-06-06 21:12:02 ЛС | профиль | цитата
А вот интересно, здесь нет классов, через которые можно было бы управлять элементами? Типа, OnCklck = class "такой-то": width="100". И "бамс!" все панели этого класса изменили ширину. Ну, или что там еще.
Я разобрался как динамически менять ширину: кнопка "посылает сигнал" к DoData, который отправляет в поток данны из прикрепленного объекта (напр., edit). Дальше MultiStrData разбивает эти мчащиеся в потоке данные на 2 линии, которые и воспринимаются конечным объектом как команда изменить обозначенные параметры.
Вроде не страшно.

--- Добавлено в 2017-06-06 21:14:35

Вот!

--- Добавлено в 2017-06-06 21:18:01

Nickname писал(а):
Ещё можно использовать нестандартный элемент GlobalVarEx от Galkov'а, чтобы поменять значения у всех панелей разом.

А это вообще здорово было бы, а то ни как не пойму как это сделать. Примеры есть (спасибо, Леонид!), но понимание ни как не приходит. А где находится GlobalVarEx?

Редактировалось 2 раз(а), последний 2017-06-06 21:18:01
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#58: 2017-06-07 07:03:00 ЛС | профиль | цитата
А вообще, говорят
andrestudio писал(а):
С этим компонентом нужно быть очень осторожным.

Да и не найду никак его

Редактировалось 1 раз(а), последний 2017-06-07 07:59:26
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#59: 2017-06-07 08:25:11 ЛС | профиль | цитата
Пытаюсь осмыслить приведенные примеры.
Вот, взял пример от Леонида и хочу отделить зерна от плевел: где здесь создание элемента, а где здесь изменение его параметров. Сделать так, чтобы можно было создавать элементы и можно было изменять размеры. Вот не понимаю чего-то, создает по 2 штуки, и размеры меняет не у всех.


--- Добавлено в 2017-06-07 09:19:28

Ааааа!! А-а-а-а!! Я СДЕЛАЛ ЭТО!!! Ура мне великому!!!

--- Добавлено в 2017-06-07 09:21:39



Редактировалось 3 раз(а), последний 2017-06-07 09:21:39
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#60: 2017-06-07 11:18:30 ЛС | профиль | цитата
Если количество циклов For, например, 3 (End=3), то динамично изменяют размер трех блоков. Остальные не меняются.
Это если ToolBarLayout вместо GridLayout.
Можно задать заведомо большее количество циклов, но это не разумно...
Как это сделать, чтобы создав любое количество блоков, я мог бы:
1. Одновременно всем им изменить высоту/ширину;
2. Вновь создаваемые блоки были этой динамически внесенной высоты/ширины, а не предустановленной?



Add(MainForm,9313895,490,56)
{
Width=938
Height=435
}
Add(ChildPanelEx,5890016,1050,147)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,15505966,21,21)
{
WorkCount=#5:##add|8:##select|6:doSize|
Point(##add)
Point(##select)
link(doSize,14550599:doSplit,[(102,41)(102,97)])
}
Add(Panel,10457648,161,84)
{
Left=70
Top=100
Width=50
Layout="parent.MyCells"
Point(doWidth)
Point(doHeight)
}
Add(MultiStrData,14550599,112,91)
{
Char="х"
link(onPart1,10457648:doWidth,[])
link(onPart2,10457648:doHeight,[])
}
END_SDK
Add(Hub,15638790,728,189)
{
InCount=2
link(onEvent1,5890016:##select,[(896,195)(896,195)(961,195)])
link(onEvent2,14958338:doData,[(770,202)(770,209)])
}
Add(DoData,14958338,798,203)
{
link(onEventData,16397303:doEvent1,[])
link(Data,15243320:Text,[])
}
Add(For,15960513,742,63)
{
link(onEvent,5890016:##add,[(965,69)(965,111)])
link(onStop,8162782:doEvent1,[(800,76)(800,90)])
}
Add(Edit,15243320,798,154)
{
Left=145
Top=5
Text="150х50"
}
Add(Button,419503,686,63)
{
Left=75
Top=5
Caption="Создать"
link(onClick,15960513:doFor,[])
}
Add(Button,4866942,616,189)
{
Left=10
Top=5
Width=60
Caption="Изменить"
link(onClick,6475606:doFor,[(660,195)(660,202)])
}
Add(Hub,8162782,896,84)
{
InCount=2
OutCount=1
link(onEvent1,5542597:doResize,[])
}
Add(Hub,16397303,854,203)
{
link(onEvent1,8162782:doEvent2,[(882,209)(882,97)])
link(onEvent2,5890016:doSize,[(955,216)(962,216)])
}
Add(For,6475606,672,196)
{
End=1000
link(onEvent,15638790:doEvent1,[(716,202)(716,195)])
}
Add(ToolBarLayout,5542597,1113,84)
{
Name="MyCells"
Space=2
Padding=30
}
Add(GridLayout,4007521,1057,91)
{
Name="MyCells"
Space=2
Padding=30
Rows=3
Cols=3
}



Редактировалось 2 раз(а), последний 2017-06-07 11:22:12
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)