Вверх ↑
Этот топик читают: Гость
Ответов: 163
Рейтинг: 4
#1: 2020-07-12 23:22:48 ЛС | профиль | цитата
Подскажите пожалуйста как создается элемент типа find в разделе user в пакете Виндовс
Перерыл форум но поисковик выдает множество сообщений не в тему.
карма: 1
Мастер сам устанавливает закон
0
vip
#1.1контекстная реклама от партнеров
Ответов: 167
Рейтинг: 7
#2: 2020-07-14 07:16:48 ЛС | профиль | цитата
Noor писал(а):
Подскажите пожалуйста как создается элемент типа find в разделе user в пакете Виндовс

Смотря о чём вы говорите. Если про создание полноценного компонента из элементов внутри контейнера, то знайте, что создание компонента из мультиэлементаEX работает очень плохо. От слова совсем. Вот например комментарий в коде такого элемента:

...
Child := EditMultiEx_76B9540;
Child.MainClass := TClassMultiBase(Self); // work but not correct... :(
Child.Parent := Self;
SetLength(Events, 1);
SetLength(Datas, 0);
...
А вот его реализация :

constructor THISUPERELEMENT.Create;
begin
inherited Create;
//Init for EditMultiEx;
EditMultiEx_76B9540 := THIEditMultiEx.Create;
with EditMultiEx_76B9540 do begin
SetLength(Works,2);
SetLength(Vars, 0);
end;
//Init for ChanelToIndex;
ChanelToIndex_78A23E0 := THIChanelToIndex.Create;
with ChanelToIndex_78A23E0 do begin
_prop_Count := 2;
end;
//Init for ChangeMon;
ChangeMon_785CBB8 := THIChangeMon.Create;
//%multi%
//Make all connection in scheme
EditMultiEx_76B9540.Works[0] := _DoEvent(ChanelToIndex_78A23E0.doWork,0);
EditMultiEx_76B9540.Works[1] := _DoEvent(ChanelToIndex_78A23E0.doWork,1);
ChanelToIndex_78A23E0._event_onIndex := _DoEvent(ChangeMon_785CBB8._work_doData,0);
ChangeMon_785CBB8._event_onData := _DoEvent(EditMultiEx_76B9540.OnEvent,0);

Child := EditMultiEx_76B9540;
Child.MainClass := TClassMultiBase(Self); // work but not correct... :(
Child.Parent := Self;
SetLength(Events, 1);
SetLength(Datas, 0);
end;
По сути элемент этот представляет из себя схему (если говорить топорно) которую можно будет использовать только ОДИН РАЗ в ОДНОЙ Схеме. Насколько это здорово решайте сами. С таким успехом можно обычные контейнеры копипастить и это будет гораздо гибче и легче чем использовать созданные из них элементы. Эту технику создания элемента надо доработать и переработать [flood](т.к она бьёт больнее топора по позвонку и не только)[/flood], но делать этот никто не будет т.к Dilma сейчас занят другими проектами (по слухам), а на одном общем энтузиазме мы никуда не доедем.

Но если вы про создание имитации компонента в схеме (что по сути контейнер но с картинкой), то вам сюда. Тут нет никаких вышесказанных проблем : (путь до папки с папкой хиасим)\Hiasm\Tutorial\Element.sha или так :
SharedScreen4444shot.jpg
карма: 0
c, c++, lua
1
Голосовали:Noor
Ответов: 163
Рейтинг: 4
#3: 2020-07-14 09:34:28 ЛС | профиль | цитата
Благодарю.
Да я нашел в примерах и все отлично собирается. Просто мне нужны заранее заготовленные блоки и использовать их чтобы не копированием а с раздела палитры. А вот как теперь вставить его в палитру ведь там требуется файл ини и код. А тут мы имеем просто кусочек схемы.Когда создавали эту возможность то был пример или видео как добавить контейнер в закладку.

Редактировалось 1 раз(а), последний 2020-07-14 09:43:49
карма: 1
Мастер сам устанавливает закон
0
Разработчик
Ответов: 26068
Рейтинг: 2121
#4: 2020-07-14 10:25:48 ЛС | профиль | цитата
Noor писал(а):
Да я нашел в примерах и все отлично собирается.

Я так понимаю, что вот этот видеопример -- https://forum.hiasm.com/topic/11236. Попробуем из него создать компонент во вкладке User. Делается это довольно просто. Убираем из схемы все, кроме компонента из мультиэлемента и формы. Сохраняем схему под именем нового компонента в папку %HiAsm%\Elements\Delphi\ulib\ (там же, кстати, пасется и компонент Finder), компонент сохранится с расширением схемы *.sha. Открываем схему компонента в обычном редакторе и удаляем из нее вот это (и все, что попало между скобками)
Add(MainForm,2953706,21,105)
{
}
Это чтобы форма в схеме компонента не меняла форму основной схемы. Сохраняем схему без формы. Всё, компонент готов. Открываем HiAsm и смотрим вкладку User, собственный компонент должен уже там появиться. Но зайти в это компонент из основной схемы нельзя, для редактирования надо открывать в HiAsm саму схему компонента.

Редактировалось 3 раз(а), последний 2020-07-14 10:31:31
карма: 22

1
Голосовали:Noor
Ответов: 163
Рейтинг: 4
#5: 2020-07-14 19:52:52 ЛС | профиль | цитата
nesco писал(а):
Noor писал(а):
Да я нашел в примерах и все отлично собирается.

Я так понимаю, что вот этот видеопример -- https://forum.hiasm.com/topic/11236. Попробуем из него создать компонент во вкладке User. Делается это довольно просто. Убираем из схемы все, кроме компонента из мультиэлемента и формы. Сохраняем схему под именем нового компонента в папку %HiAsm%\Elements\Delphi\ulib\ (там же, кстати, пасется и компонент Finder), компонент сохранится с расширением схемы *.sha. Открываем схему компонента в обычном редакторе и удаляем из нее вот это (и все, что попало между скобками)
Add(MainForm,2953706,21,105)
{
}
Это чтобы форма в схеме компонента не меняла форму основной схемы. Сохраняем схему без формы. Всё, компонент готов. Открываем HiAsm и смотрим вкладку User, собственный компонент должен уже там появиться. Но зайти в это компонент из основной схемы нельзя, для редактирования надо открывать в HiAsm саму схему компонента.

Именно то что искал. Благодарю
карма: 1
Мастер сам устанавливает закон
0
5
Сообщение
...
Прикрепленные файлы
(файлы не залиты)