Dilma писал(а):
пробовал вставлять сей аддон в двух экземплярах?Ну это же была шутка
Dilma писал(а):
VCL и KOLЕщё раз доказывает качество данных библиотек. Выкинуть и забыть.
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): пробовал вставлять сей аддон в двух экземплярах?Ну это же была шутка Dilma писал(а): VCL и KOLЕщё раз доказывает качество данных библиотек. Выкинуть и забыть. |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
ну так удалось убедить, что контролы должны принадлежать среде, а не плагину? И что плагин должен общаться с ними через определенный интерфейс, предоставляющий самый минимальный набор необходимых действий для каждого элемента управления. Кроме того такой подход выгоден еще и тем, что плагин освобождается от знания того, как и где на самом деле работает среда. А это важный момент, если мы когда-нибудь захотим портироваться скажем под Linux.
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Dilma писал(а): И что плагин должен общаться с ними через определенный интерфейс, предоставляющий самый минимальный набор необходимых действий для каждого элемента управленияЧего-то умно шибко Как-то не возникает уверенности в одинаковости понимания. Почти каждого слова |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): ну так удалось убедить, что контролы должны принадлежать среде, а не плагину?Нет. То, что данный пример написан на скорую руку и содержит ошибки (дважды перехатывать процедуру окна надо было конечно запретить, а то, что при вынимании панели они все уничтожаются и создаются заново, так это кривизна VCL, и это тоже можно было учесть), ничего не доказывает. Наличие дополнительных окон библиотеке VCL по барабану, главное, что она имеет одно окно-панель, может его перемещать, менять размер, и т.п. Если среда будет ещё и сообщение всем детишкам окна (а не только тем, которые в VCL-ном списке родителя) в таких случаях посылать, тогда и никакого перехвата сообщений не потребуется. Могу доделать пример, чтобы указанных тобой артефактов не было [size=-2]------ Добавлено в 14:46 Вот, доделал Причём, если бы среда сама сообщала Handle окна-родителя для создания и новую позицию аддона, пример вообще был бы меньше пол-экрана. И ничем бы не отличался от реализации любого другого окна винды, в том смысле, что стандартные средства для создания оконного приложения вполне бы подошли. |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
теперь при вставке в эту панель в висячем состояние еще одной панели форма аддона пропадает полностью и больше не появляется пока все это добро не пристегнуть обратно к среде Кстате почему бы теперь не попробовать вставить туда пару элементов управления?
|
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): форма аддона пропадает полностью и больше не появляется Наглый поклёп. Попробуй изменить размер висячей панели. В среде-же пока нет кнопки "переключиться на аддон" поэтому я перемещаю наверх при изменении размера. Dilma писал(а): Кстате почему бы теперь не попробовать вставить туда пару элементов управления?Вставить-то можно, а зачем? Хочется получить действительно что-то полезное? |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima писал(а): Наглый поклёп. Попробуй изменить размер висячей панелия видел код. Однако повторюсь: Dilma писал(а): теперь при вставке в эту панель в висячем состояние еще одной панели форма аддона пропадает полностьюполностью это значит, что наверх она не показывается ни какими дальнейшими выкрутасами tsdima писал(а): Хочется получить действительно что-то полезное?хочется посмотреть какие проблемы будут вылезать дальше. |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): при вставке в эту панель в висячем состояние еще одной панели Не нашёл, как это делается. Как вообще панели туда-сюда бросать? Не хотють они встраиваться в висячую. Dilma писал(а): хочется посмотреть какие проблемы будут вылезать дальшеНа, смотри |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
И так продолжаем мозговой штурм:
- при вытаскивание панели из hiasm один раз удалось получить VCL сообщение об ошибке: VCL писал(а): Control ' has no parent windowtsdima писал(а): Не нашёл, как это делаетсяправая кнопка мыши на заголовке и тянуть |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Ошибочку нашёл. Вот новый вариант.
[size=-2]------ Добавлено в 17:29 Вобщем проблема только одна: постоянно уничтожаются окна, то парент моего окна, то другое окно, у которого я размер отлавливаю. Отсюда и все глюки. VCL панели постоянно пересоздаёт (не думаю, что это ты постоянно объекты окон пересоздаёшь), вместо того, чтобы просто парента поменять. [size=-2]------ Добавлено в 17:36 А ещё, если не к Help-у добавить какую-то панель, а саму панель Help куда-то вставить, аддон уже не находит заголовка Help, и потому не создаётся. Но это опять-таки не проблема VCL, а проблема нахождения Handle парента, который по идее должна среда передать. |
|||
карма: 1 |
| ||
файлы: 1 | HiDLL.rar [2.2KB] [248] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima писал(а): VCL панели постоянно пересоздаётугу. Вот поэтому нет уверенности в том, что в дальнейшем не вылезет еще что-то и если идти по такому пути, то желательно быть уверенным в том, что достаточно хорошо понимаешь принципы работы библиотеки и не наткнешься в один прекрасный момент на грабли, которые не будут иметь решения. |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Волков бояться - в лес не ходить!
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima, я тебе один умный вещь скажу, только ты не обижайся
SubClassing объекта - не может быть корректным с точки зрения динамики. Хотя бы потому, что нет гарантий, что только ты такой умный. Скажем, у нас этим занимается модуль object. А раз он есть, значит есть и элементы, которые это делают Грубо говоря, это может оказаться вовсе и неожиданным для нас. Думаю и для Dilma в VCL - тоже. Есть и такие проблемы у нас: элемент, перехватывающий onMessage парента фиг поместишь в динамический контейнер... Вот такие вот волки |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov писал(а): SubClassing объекта А никто и не собирается делать это, в примере это нужно лишь для того, чтобы выяснить размеры, которые в общем случае должна передавать среда (как впрочем и Handle VCL-панели/парента, а если аддон будет занимать 100% окна парента, то и вовсе одного Handle достаточно, в случае изменения парента/позиции/размера), но по понятным причинам пока этого не делает. Тогда и код не будет таким пакостным. Galkov писал(а): перехватывающий onMessage парента Ненужно это. Назови хоть одну причину. |
|||
карма: 1 |
|