Вверх ↑
Этот топик читают: Гость
Ответов: 92
Рейтинг: 0
#1: 2018-01-29 20:35:05 ЛС | профиль | цитата
PageControl схема. Ошибки при закрытии не выдает. Закрывать можно как и изнутри вкладки так и из вне. Все мать вашу за ногу.


Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
Width=588
Height=551
}
Add(PageControl,4067262,784,273)
{
Width=300
Height=400
Align=2
Selected="base"
AutoCreate=1
SelectAdd=0
link(Data,7473735:Value,[])
link(onEventData,11457551:doSetOnChange,[])
link(onClick,11295864:doTimer,[(828,286)(828,346)(674,346)(674,398)])
}
BEGIN_SDK
Add(EditPolyMulti,14820162,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#11:onEventData|7:onClick|
VarCount=#7:##count|7:##index|
DataCount=#4:Data|
Width=657
Height=375
Point(##add)
Point(##delete)
Point(##count)
Point(##index)
link(##add,9099381:doData,[(98,27)(98,76)])
}
Add(PagePanel,13516436,273,49)
{
Width=572
Height=512
Align=5
Point(doCaption)
Point(PHandle)
}
Add(DoData,9099381,175,70)
{
link(onEventData,11479888:doEvent1,[])
link(Data,14820162:Data,[(181,46)(27,46)])
}
Add(Hub,11479888,231,70)
{
link(onEvent1,13516436:doCaption,[(259,76)(259,55)])
link(onEvent2,11144517:doData,[(263,83)(263,104)])
}
Add(DoData,11144517,273,98)
{
link(onEventData,14820162:onEventData,[(491,104)(491,27)])
link(Data,13516436:PHandle,[])
}
Add(BitBtn,11571840,154,175)
{
Left=150
Top=175
Width=190
Height=95
Caption="Del"
link(onClick,14820162:onClick,[(432,181)(432,34)])
}
END_SDK
Add(Button,14856101,581,203)
{
Left=70
Top=450
Width=145
Height=50
Caption="Add"
link(onClick,3945858:doNext,[])
}
Add(Button,3697156,693,504)
{
Left=355
Top=445
Width=105
Height=55
Caption="Dell"
link(onClick,15360056:doWork3,[(781,510)])
}
Add(InlineCode,11457551,840,273)
{
WorkPoints=#13:doSetOnChange|
EventPoints=#8:onChange|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses Windows, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|23: Control: PControl;|35: procedure _OnChange(Obj:PObj);|0:|9: public|23: onChange: THI_Event;|56: procedure doSetOnChange(var _Data:TData; Index:word);|7: end;|3: |14:implementation|0:|36:procedure THiAsmClass.doSetOnChange;|16:var i: integer; |5:begin|50: Control := PControl(ToInteger(_Data)).Parent;|32: if Control = nil then exit;|41: Control.OnSelChange := _OnChange; |4:end;|0:|32:procedure THiAsmClass._OnChange;|5:begin|43: _hi_OnEvent(onChange, Control.CurIndex);|4:end;|0:|4:end.|
}
Add(Memory,7473735,784,203)
{
@Hint=#15:Состояние хоста|
Default=Integer(3)
link(onData,6105568:doData,[(828,209)(828,244)(702,244)(702,279)])
}
Add(CounterEx,3945858,651,203)
{
link(onNext,9667884:doStrCat,[])
}
Add(StrCat,9667884,714,203)
{
Str1="Page "
link(onStrCat,7473735:doValue,[])
link(Str2,3945858:Count,[(727,128)(699,128)(699,247)(657,247)])
}
Add(DoData,6105568,714,273)
{
Data=String(base)
link(onEventData,4067262:##add,[])
}
Add(Timer,11295864,679,392)
{
Interval=0
Enable=1
link(onTimer,8451700:doEvent1,[])
}
Add(Hub,8451700,728,392)
{
link(onEvent1,11295864:doStop,[(758,398)(758,448)(667,448)(667,405)])
link(onEvent2,15360056:doWork2,[(756,405)(756,398)])
}
Add(DoData,6001803,791,392)
{
link(onEventData,4067262:##delete,[(835,398)(835,342)(772,342)(772,286)])
link(Data,4067262:##index,[])
}
Add(HubEx,15360056,777,392)
{
link(onEvent,6001803:doData,[])
}

карма: 0

0
Ответов: 2059
Рейтинг: 132
#2: 2018-01-29 21:33:09 ЛС | профиль | цитата
theSever, не говори гоп, пока не перепрыгнул!
Задача была поместить кнопку на закладку(слева, или справа)
Надо компонент переделывать и выводить координаты углов закладки.
Делается это достаточно просто.
... и OnChange переделывать.

А чтобы ошибки не было при закрытии, достаточно было сделать так:
procedure THIPagePanel._OnChange;
begin
// _hi_OnEvent(_event_onChange, Control.Parent.CurIndex);
end;
карма: 6

0
Ответов: 92
Рейтинг: 0
#3: 2018-01-29 21:40:10 ЛС | профиль | цитата
flint2 писал(а):
theSever, не говори гоп, пока не перепрыгнул!
Задача была поместить кнопку на закладку(слева, или справа)

я сейчас и этому если честно рад. Хотелось бы конечно по хардкору, но в коде я ни черта не понимаю, так что своими кривыми руками переделать не в состоянии.

Так что пошел открывать пиво.)
карма: 0

0
Ответов: 263
Рейтинг: 18
#4: 2019-06-12 11:28:22 ЛС | профиль | цитата
theSever писал(а):
Все мать вашу за ногу

Спасибо огромное! Измучился я с этим PageControl
карма: 3

0
Ответов: 322
Рейтинг: 8
#5: 2020-01-16 06:59:11 ЛС | профиль | цитата
Всем привет.
Дико извиняюсь подскажите почему не работает doVisible на компоненте PageControl.
Схема как пример.


Add(MainForm,2953706,35,28)
{
Width=385
Height=306
}
Add(PageControl,2576903,231,49)
{
Align=5
Childrens=#1:1|1:2|
Selected="base"
Point(doVisible)
}
BEGIN_SDK
Add(EditPolyMulti,12187398,21,21)
{
WorkCount=#9:doVisible|
link(doVisible,1150800:doVisible,[(59,27)(59,83)])
}
Add(PagePanel,1150800,98,77)
{
Left=15
Top=165
Width=340
Height=70
Point(doVisible)
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,5905902,21,21)
{
WorkCount=#9:doVisible|
link(doVisible,16343316:doVisible,[(49,27)(49,76)])
}
Add(PagePanel,16343316,77,70)
{
Left=35
Top=105
Caption="ААА"
Point(doVisible)
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,5023494,21,21)
{
WorkCount=#9:doVisible|
link(doVisible,9610178:doVisible,[(49,27)(49,83)])
}
Add(PagePanel,9610178,77,77)
{
Left=85
Top=125
Width=190
Height=140
Caption="БББ"
Point(doVisible)
}
END_SDK
Add(ChildPanel,14819940,168,49)
{
link(onEvent1,2576903:doVisible,[])
}
BEGIN_SDK
Add(EditMulti,4898434,21,21)
{
EventCount=1
Width=531
}
Add(Panel,8154026,35,105)
{
Width=369
Height=155
Align=2
}
Add(Button,5468606,147,77)
{
Left=15
Top=40
Caption="0"
Data=Integer(0)
link(onClick,7285962:doWork2,[])
}
Add(Button,8932385,147,126)
{
Left=15
Top=15
Caption="1"
Data=Integer(1)
link(onClick,7285962:doWork3,[(250,132)])
}
Add(HubEx,7285962,246,77)
{
Angle=3
link(onEvent,6802590:doEvent1,[(250,27)])
}
Add(Hub,6802590,287,21)
{
link(onEvent1,4898434:onEvent1,[])
link(onEvent2,9524964:doVisible,[(333,34)(333,90)])
}
Add(TabControl,9524964,364,77)
{
Left=145
Top=20
Width=210
Height=95
Tabs=#1:1|1:2|
Bitmaps=[]
Point(doVisible)
}
END_SDK
Заранее благодарен, даже если что-то тупанул в схеме.
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#6: 2020-01-16 10:32:56 ЛС | профиль | цитата
Dad2016 писал(а):
Дико извиняюсь подскажите почему не работает doVisible на компоненте PageControl

А у меня вроде работает -- 0 выключает, 1 включает.
карма: 22

0
Ответов: 1328
Рейтинг: 69
#7: 2020-01-16 18:04:29 ЛС | профиль | цитата
nesco писал(а):
А у меня вроде работает -- 0 выключает, 1 включает.


аналогично
карма: 2

0
Ответов: 9906
Рейтинг: 351
#8: 2020-01-16 22:29:48 ЛС | профиль | цитата
А у меня -- нет.

Еще хуже: гляжу на коды, и не понимаю, как это вообще может работать
карма: 9

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#9: 2020-01-17 01:05:37 ЛС | профиль | цитата
Galkov писал(а):
А у меня -- нет

А точно не работает, я не туда смотрел, разговор ведь шел про PageControl.
Galkov писал(а):
Еще хуже: гляжу на коды, и не понимаю, как это вообще может работать

Есть какие-то предложения?
карма: 22

0
Ответов: 322
Рейтинг: 8
#10: 2020-01-17 07:54:05 ЛС | профиль | цитата
Ещё один вопрос по компоненту PageControl - как удалять вкладки в среде HiAsm?
12.jpg
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#11: 2020-01-17 10:18:29 ЛС | профиль | цитата
Dad2016 писал(а):
как удалять вкладки в среде HiAsm?

Удали имя вкладки в свойстве Childrens
карма: 22

0
Ответов: 322
Рейтинг: 8
#12: 2020-01-17 10:26:36 ЛС | профиль | цитата
nesco писал(а):
Удали имя вкладки в свойстве Childrens

Спасибо.
карма: 0

0
Ответов: 322
Рейтинг: 8
#13: 2020-01-20 08:28:44 ЛС | профиль | цитата
nesco писал(а):
Есть какие-то предложения?

Есть какое-то решение по компоненту PageControl (doVisible)?
Когда стоит ждать его рабочего состояния?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#14: 2020-01-20 13:57:35 ЛС | профиль | цитата
Думаю, что никогда.
Не в этой среде, как минимум.
карма: 9

0
Ответов: 9906
Рейтинг: 351
#15: 2020-01-25 11:40:43 ЛС | профиль | цитата
Чего я думаю про это все безобразие.....

В смысле, как можно было БЫ сделать адекватный элемент, имея в виду только возможности, предоставляемые настоящей средой разработки.
Думаю, что PageControl не должен быть контейнером. Но экспортировать некий интерфейс, позволяющий быть Parent-ом (плюс свои персональные "табовские" навороты).
И, естественно, быть win-элементом. И, так называемым - манагером.
Соответственно, всякие там панели (и т.п.) должны подключаться к этому интерфейсу, и регистрироваться у манагера как child.


Сам я это ни почем делать не буду... Ну не лежит у меня душа к манагерам. Но, вроде бы, апологеты этой технологии на форуме есть.
Нужна будет помощь - помогу. Если будет нужна, конечно же.

Редактировалось 3 раз(а), последний 2020-01-25 11:42:32
карма: 9

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