Возник вопрос по MakeElement. Не знаю в правильном разделе форума его задаю или нет, но если вдруг не там где надо, то сильно не сердитесь!
Вопрос собственно такой; Есть компоненты которые имеют графическое отображение в разрабатываемой программе и соответственно координаты. Это такие компоненты как: Edit, Image, Button и т.д.
Если я захочу в MakeElement создать подобный компонент, допустим новую, особенную кнопку (Button), то как мне это сделать? Ведь эти компоненты нельзя поместить внутрь контейнера!
------------ Дoбавленo в 23.23:
Так что же никто не знает или меня просто не поняли??? Ау-у-у! Лю-юди-и!! Вы меня слышите??! Скажите хоть что-нибудь!!!
Этот топик читают: Гость
Ответов: 177
Рейтинг: 24
|
|||
карма: 1 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Lora,
Леонид писал(а): ..никогда не делал компоненты этим сервисом.. |
|||
карма: 19 |
|
Ответов: 177
Рейтинг: 24
|
|||
|
|||
карма: 1 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Это ограничение данной функции.
|
|||
карма: 10 |
|
Ответов: 1058
Рейтинг: 76
|
|||
[offtop]Я тоже никогда не пользовался этой функцией, но предположительно можно попробовать схитрить. Засунуть кнопку в визуальный контейнер(к примеру Panel), а такой контейнер по идее может собраться в компонент.
Ничего не пробовал и не проверял, мимо проходил, выразил мысли вслух *** Хотя и Panel фактически является тем самым контейнером, не сработало, и не сработает . В .ini четко написано WinElement и наследование Inherit=WinControl, а эта функция я так понимаю не работает с интерфейсными элементами. В принципе можно подправить ini и заставить сгенерировать элемент, но вот с .pas не уверен, что получится без существенных правок. Да и по большому счету зачем? Ведь полученный элемент не придаст нового функционала, чисто для удобства. [/offtop] |
|||
карма: 0 |
|
Ответов: 177
Рейтинг: 24
|
|||
tom-it писал(а): Да и по большому счету зачем? Ведь полученный элемент не придаст нового функционала, чисто для удобства.Тут вот в чём вопрос, если я захочу создать элемент который будет иметь графическое отображение на форме, пусть даже совсем новый которого еще нет в программе, то мне надо будет дать ему координаты, размеры, создать вид! Но сам контейнер не позволит мне сделать этого! |
|||
карма: 1 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Lora писал(а): ..я захочу создать элемент который будет иметь графическое отображение на форме.. |
|||
карма: 19 |
| ||
файлы: 1 | pylevlagozaschischennayaknopka.sha [33.8KB] [549] |
Ответов: 2236
Рейтинг: 676
|
|||
Lora, возьмите элемент PaintBox (Компонент для рисования) и поместите его в ChildPanelEx (Панель). После чего рисуйте на PaintBox-е все что вашей душе угодно. Вот вам Леонид выложил пример такой кнопки.
К примеру такие элементы как Plotter (График), CtrlPalette (Палитра ссылок), LED (Светодиод) и еще некоторые нарисованы (на PaintBox-е). И посмотрите пример: Windows/Example/Draw/Demo/DrawEdge.sha, там в низу формы две кнопки не обычной формы. |
|||
карма: 11 |
|
Ответов: 177
Рейтинг: 24
|
|||
sla8a писал(а): Lora, возьмите элемент PaintBox (Компонент для рисования) и поместите его в ChildPanelEx (Панель). После чего рисуйте на PaintBox-е все что вашей душе угодноЕсть в этом варианте один большой минус - ChildPanelEx не конвертируется в компонент! В MakeElement компонент можно создать только из контейнера MultiElementEx! Леонид писал(а): Например, такой: pylevlagozaschischennayaknopka.shaЯ думала над таким вариантом, но тогда PaintBox будет всегда висеть вне моего компонента, а сам компонент по прежнему не будет иметь своих собственных координат. Это возможно имело бы смысл при отрисовки картинки из иных форматов допустим PSD(формат фотошопа). Тогда да, в компоненте конвертируется PSD -> BMP и выводится на картинку Image. А если новый компонент прогрессбар или кнопка??? Согласитесь таскать за компонентом ButtonNew еще и PaintBox чтобы всё это отрисовать в Image несколько глупо! |
|||
карма: 1 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Lora писал(а): Есть в этом варианте один большой минус - ChildPanelEx не конвертируется в компонент! Lora писал(а): А если новый компонент прогрессбар или кнопка??? Согласитесь таскать за компонентом ButtonNew еще и PaintBox чтобы всё это отрисовать в Image несколько глупо! |
|||
карма: 11 |
|
Ответов: 177
Рейтинг: 24
|
|||
sla8a писал(а): И в чем заключается этот большой минус? Серьезно, не понятно. Что измениться при конвертации в компонент?Ну это если с памятью всё нормально и ты через определённое время не забудешь что у тебя уже есть решение, то тогда да, не особо и нужно! У компонента есть один большой плюс, его можно вставить в панель инструментов на ряду с другими. Что оочень облегчает пользование. Я в свое время скачала с сайта всё что меня интересовало, кучу схем, компонентов, готовых решений. Я даже рассортировала всё по каталогам. Вот только со временем забыла что есть у меня чего нет! Не раз уже было что сидишь корпишь, вояешь схему, идёшь на форум за помощью, а потом оказывается что многое у тебя уже было, надо было просто скопипастить и подправить! У меня подобная история была с процентами. Вроде не сложно, элементарное вычисление: (А:100)*B ,ну и производные от этого в зависимости от условий что из чего. Эти простые на первый взгляд вычисления иногда заставляют задуматься, а иногда даже и набросать на бумаге чтобы понять какую именно формулу надо. И я в четырёх программах делала всё заново не смотря на то что у меня сохранено готовое решение, плюс в трёх случаях это были одни и те же вычисления!!! Вот так бывает! Ну и приплюсуйте жажду познания и гордость достижения! Глупые вопросы ведут к гениальным открытиям! (не я сказала, не помню кто). sla8a писал(а): И это не понятно. Нарисовать можно что угодно, таблицу, график, кнопку, прогрессбар и т.д. и т.п.Это вытекает из первого! Если сохранять как схему в ChildPanelEx, то можно что угодно, если как компонент собранный в MultiElementEx то нет! |
|||
карма: 1 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Lora, возмите заготовку той же резиновой кнопки со столь любимыми размерами и отступом harvesting_element.sha
|
|||
карма: 19 |
| ||
файлы: 1 | harvesting_element.sha [19.9KB] [457] |
Ответов: 1058
Рейтинг: 76
|
|||
[flood]
И снова проходя мимо,и снова мысли вслух. Предположительно, по большому счету вопрос в адрес разработчиков, после(ctrl+d) компиляции ChildPanel в папке code создается отдельный файл с названием панели. Фактически этот файл является готовым Unit-ом, с разницей от MakeElement - отсутствием точек. Остается только вопрос в возможности организации выведенных наружу точек в панели. [/flood] |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
tom-it, мне кажется, тут проблема не в генерации кода компонента, а в способности HiAsm-а отображать такие элементы в редакторе форм, да и вообще верной идентификации такого компонента как визуального. Слишком уж много мороки с этим будет.
|
|||
карма: 10 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): возмите заготовку Мелочь конечно...[/flood] |
|||
карма: 25 |
| ||
файлы: 1 | Леонид_10.png [3.8KB] [622] |