Вверх ↑
Этот топик читают: Гость
Ответов: 177
Рейтинг: 24
#1: 2015-02-05 23:23:57 ЛС | профиль | цитата
Возник вопрос по MakeElement. Не знаю в правильном разделе форума его задаю или нет, но если вдруг не там где надо, то сильно не сердитесь!
Вопрос собственно такой; Есть компоненты которые имеют графическое отображение в разрабатываемой программе и соответственно координаты. Это такие компоненты как: Edit, Image, Button и т.д.

Если я захочу в MakeElement создать подобный компонент, допустим новую, особенную кнопку (Button), то как мне это сделать? Ведь эти компоненты нельзя поместить внутрь контейнера!
------------ Дoбавленo в 23.23:
Так что же никто не знает или меня просто не поняли??? Ау-у-у! Лю-юди-и!! Вы меня слышите??! Скажите хоть что-нибудь!!!
карма: 1

0
Ответов: 8921
Рейтинг: 823
#2: 2015-02-05 23:33:17 ЛС | профиль | цитата
Lora,
Леонид писал(а):
..никогда не делал компоненты этим сервисом..

карма: 19

0
Ответов: 177
Рейтинг: 24
#3: 2015-02-06 00:00:17 ЛС | профиль | цитата

карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#4: 2015-02-06 00:38:11 ЛС | профиль | цитата
Это ограничение данной функции.
карма: 10
0
Ответов: 1058
Рейтинг: 76
#5: 2015-02-06 00:43:39 ЛС | профиль | цитата
[offtop]Я тоже никогда не пользовался этой функцией, но предположительно можно попробовать схитрить. Засунуть кнопку в визуальный контейнер(к примеру Panel), а такой контейнер по идее может собраться в компонент.
Ничего не пробовал и не проверял, мимо проходил, выразил мысли вслух
***
Хотя и Panel фактически является тем самым контейнером, не сработало, и не сработает . В .ini четко написано WinElement и наследование Inherit=WinControl, а эта функция я так понимаю не работает с интерфейсными элементами.

В принципе можно подправить ini и заставить сгенерировать элемент, но вот с .pas не уверен, что получится без существенных правок.
Да и по большому счету зачем? Ведь полученный элемент не придаст нового функционала, чисто для удобства.
[/offtop]
карма: 0

0
Ответов: 177
Рейтинг: 24
#6: 2015-02-06 09:56:09 ЛС | профиль | цитата
tom-it писал(а):
Да и по большому счету зачем? Ведь полученный элемент не придаст нового функционала, чисто для удобства.

Тут вот в чём вопрос, если я захочу создать элемент который будет иметь графическое отображение на форме, пусть даже совсем новый которого еще нет в программе, то мне надо будет дать ему координаты, размеры, создать вид! Но сам контейнер не позволит мне сделать этого!
карма: 1

0
Ответов: 8921
Рейтинг: 823
#7: 2015-02-06 11:21:52 ЛС | профиль | цитата
Lora писал(а):
..я захочу создать элемент который будет иметь графическое отображение на форме..
Например, такой: pylevlagozaschischennayaknopka.sha
карма: 19

0
файлы: 1pylevlagozaschischennayaknopka.sha [33.8KB] [549]
Ответов: 2236
Рейтинг: 676
#8: 2015-02-06 11:51:21 ЛС | профиль | цитата
Lora, возьмите элемент PaintBox (Компонент для рисования) и поместите его в ChildPanelEx (Панель). После чего рисуйте на PaintBox-е все что вашей душе угодно. Вот вам Леонид выложил пример такой кнопки.
К примеру такие элементы как Plotter (График), CtrlPalette (Палитра ссылок), LED (Светодиод) и еще некоторые нарисованы (на PaintBox-е).
И посмотрите пример: Windows/Example/Draw/Demo/DrawEdge.sha, там в низу формы две кнопки не обычной формы.
карма: 11

0
Ответов: 177
Рейтинг: 24
#9: 2015-02-06 17:41:29 ЛС | профиль | цитата
sla8a писал(а):
Lora, возьмите элемент PaintBox (Компонент для рисования) и поместите его в ChildPanelEx (Панель). После чего рисуйте на PaintBox-е все что вашей душе угодно

Есть в этом варианте один большой минус - ChildPanelEx не конвертируется в компонент! В MakeElement компонент можно создать только из контейнера MultiElementEx!

Леонид писал(а):
Например, такой: pylevlagozaschischennayaknopka.sha


Я думала над таким вариантом, но тогда PaintBox будет всегда висеть вне моего компонента, а сам компонент по прежнему не будет иметь своих собственных координат. Это возможно имело бы смысл при отрисовки картинки из иных форматов допустим PSD(формат фотошопа). Тогда да, в компоненте конвертируется PSD -> BMP и выводится на картинку Image. А если новый компонент прогрессбар или кнопка??? Согласитесь таскать за компонентом ButtonNew еще и PaintBox чтобы всё это отрисовать в Image несколько глупо!


карма: 1

0
Ответов: 2236
Рейтинг: 676
#10: 2015-02-06 18:16:11 ЛС | профиль | цитата
Lora писал(а):
Есть в этом варианте один большой минус - ChildPanelEx не конвертируется в компонент!
И в чем заключается этот большой минус? Серьезно, не понятно. Что измениться при конвертации в компонент?
Lora писал(а):
А если новый компонент прогрессбар или кнопка??? Согласитесь таскать за компонентом ButtonNew еще и PaintBox чтобы всё это отрисовать в Image несколько глупо!
И это не понятно. Нарисовать можно что угодно, таблицу, график, кнопку, прогрессбар и т.д. и т.п.
карма: 11

0
Ответов: 177
Рейтинг: 24
#11: 2015-02-06 20:32:07 ЛС | профиль | цитата
sla8a писал(а):
И в чем заключается этот большой минус? Серьезно, не понятно. Что измениться при конвертации в компонент?


Ну это если с памятью всё нормально и ты через определённое время не забудешь что у тебя уже есть решение, то тогда да, не особо и нужно!

У компонента есть один большой плюс, его можно вставить в панель инструментов на ряду с другими. Что оочень облегчает пользование. Я в свое время скачала с сайта всё что меня интересовало, кучу схем, компонентов, готовых решений. Я даже рассортировала всё по каталогам. Вот только со временем забыла что есть у меня чего нет!
Не раз уже было что сидишь корпишь, вояешь схему, идёшь на форум за помощью, а потом оказывается что многое у тебя уже было, надо было просто скопипастить и подправить! У меня подобная история была с процентами. Вроде не сложно, элементарное вычисление: (А:100)*B ,ну и производные от этого в зависимости от условий что из чего. Эти простые на первый взгляд вычисления иногда заставляют задуматься, а иногда даже и набросать на бумаге чтобы понять какую именно формулу надо. И я в четырёх программах делала всё заново не смотря на то что у меня сохранено готовое решение, плюс в трёх случаях это были одни и те же вычисления!!!
Вот так бывает!

Ну и приплюсуйте жажду познания и гордость достижения!
Глупые вопросы ведут к гениальным открытиям! (не я сказала, не помню кто).

sla8a писал(а):
И это не понятно. Нарисовать можно что угодно, таблицу, график, кнопку, прогрессбар и т.д. и т.п.

Это вытекает из первого! Если сохранять как схему в ChildPanelEx, то можно что угодно, если как компонент собранный в MultiElementEx то нет!
карма: 1

0
Ответов: 8921
Рейтинг: 823
#12: 2015-02-07 00:17:03 ЛС | профиль | цитата
Lora, возмите заготовку той же резиновой кнопки со столь любимыми размерами и отступом harvesting_element.sha
карма: 19

0
файлы: 1harvesting_element.sha [19.9KB] [457]
Ответов: 1058
Рейтинг: 76
#13: 2015-02-07 00:52:38 ЛС | профиль | цитата
[flood]
И снова проходя мимо,и снова мысли вслух.
Предположительно, по большому счету вопрос в адрес разработчиков, после(ctrl+d) компиляции ChildPanel в папке code создается отдельный файл с названием панели.
Фактически этот файл является готовым Unit-ом, с разницей от MakeElement - отсутствием точек.
Остается только вопрос в возможности организации выведенных наружу точек в панели.
[/flood]

карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#14: 2015-02-07 01:24:01 ЛС | профиль | цитата
tom-it, мне кажется, тут проблема не в генерации кода компонента, а в способности HiAsm-а отображать такие элементы в редакторе форм, да и вообще верной идентификации такого компонента как визуального. Слишком уж много мороки с этим будет.
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#15: 2015-02-07 08:57:47 ЛС | профиль | цитата
Леонид писал(а):
возмите заготовку
[flood]Обмен опытом: VOffset и HOffset нужно брать кратными 7, тогда не будет изломов линков.

Мелочь конечно...[/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Леонид_10.png [3.8KB] [622]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)