Вверх ↑
Этот топик читают: Гость
Ответов: 2125
Рейтинг: 159
#31: 2007-05-04 12:55:55 ЛС | профиль | цитата
Dilma писал(а):
пробовал вставлять сей аддон в двух экземплярах?

Ну это же была шутка

Dilma писал(а):
VCL и KOL

Ещё раз доказывает качество данных библиотек. Выкинуть и забыть.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#32: 2007-05-04 13:03:36 ЛС | профиль | цитата
ну так удалось убедить, что контролы должны принадлежать среде, а не плагину? И что плагин должен общаться с ними через определенный интерфейс, предоставляющий самый минимальный набор необходимых действий для каждого элемента управления. Кроме того такой подход выгоден еще и тем, что плагин освобождается от знания того, как и где на самом деле работает среда. А это важный момент, если мы когда-нибудь захотим портироваться скажем под Linux.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#33: 2007-05-04 13:21:21 ЛС | профиль | цитата
Dilma писал(а):
И что плагин должен общаться с ними через определенный интерфейс, предоставляющий самый минимальный набор необходимых действий для каждого элемента управления

Чего-то умно шибко
Как-то не возникает уверенности в одинаковости понимания. Почти каждого слова
карма: 9

0
Ответов: 2125
Рейтинг: 159
#34: 2007-05-04 14:56:55 ЛС | профиль | цитата
Dilma писал(а):
ну так удалось убедить, что контролы должны принадлежать среде, а не плагину?

Нет. То, что данный пример написан на скорую руку и содержит ошибки (дважды перехатывать процедуру окна надо было конечно запретить, а то, что при вынимании панели они все уничтожаются и создаются заново, так это кривизна VCL, и это тоже можно было учесть), ничего не доказывает. Наличие дополнительных окон библиотеке VCL по барабану, главное, что она имеет одно окно-панель, может его перемещать, менять размер, и т.п. Если среда будет ещё и сообщение всем детишкам окна (а не только тем, которые в VCL-ном списке родителя) в таких случаях посылать, тогда и никакого перехвата сообщений не потребуется.

Могу доделать пример, чтобы указанных тобой артефактов не было

[size=-2]------ Добавлено в 14:46
Вот, доделал

Причём, если бы среда сама сообщала Handle окна-родителя для создания и новую позицию аддона, пример вообще был бы меньше пол-экрана. И ничем бы не отличался от реализации любого другого окна винды, в том смысле, что стандартные средства для создания оконного приложения вполне бы подошли.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#35: 2007-05-04 16:06:31 ЛС | профиль | цитата
теперь при вставке в эту панель в висячем состояние еще одной панели форма аддона пропадает полностью и больше не появляется пока все это добро не пристегнуть обратно к среде Кстате почему бы теперь не попробовать вставить туда пару элементов управления?
карма: 27
0
Ответов: 2125
Рейтинг: 159
#36: 2007-05-04 16:17:05 ЛС | профиль | цитата
Dilma писал(а):
форма аддона пропадает полностью и больше не появляется

Наглый поклёп. Попробуй изменить размер висячей панели. В среде-же пока нет кнопки "переключиться на аддон" поэтому я перемещаю наверх при изменении размера.
Dilma писал(а):
Кстате почему бы теперь не попробовать вставить туда пару элементов управления?

Вставить-то можно, а зачем? Хочется получить действительно что-то полезное?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#37: 2007-05-04 16:30:19 ЛС | профиль | цитата
tsdima писал(а):
Наглый поклёп. Попробуй изменить размер висячей панели

я видел код. Однако повторюсь:

Dilma писал(а):
теперь при вставке в эту панель в висячем состояние еще одной панели форма аддона пропадает полностью

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

tsdima писал(а):
Хочется получить действительно что-то полезное?

хочется посмотреть какие проблемы будут вылезать дальше.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#38: 2007-05-04 16:48:10 ЛС | профиль | цитата
Dilma писал(а):
при вставке в эту панель в висячем состояние еще одной панели

Не нашёл, как это делается. Как вообще панели туда-сюда бросать? Не хотють они встраиваться в висячую.
Dilma писал(а):
хочется посмотреть какие проблемы будут вылезать дальше

На, смотри
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#39: 2007-05-04 17:05:29 ЛС | профиль | цитата
И так продолжаем мозговой штурм:

- при вытаскивание панели из hiasm один раз удалось получить VCL сообщение об ошибке:

VCL писал(а):
Control ' has no parent window


tsdima писал(а):
Не нашёл, как это делается

правая кнопка мыши на заголовке и тянуть
карма: 27
0
Ответов: 2125
Рейтинг: 159
#40: 2007-05-04 17:36:38 ЛС | профиль | цитата
Ошибочку нашёл. Вот новый вариант.

[size=-2]------ Добавлено в 17:29
Вобщем проблема только одна: постоянно уничтожаются окна, то парент моего окна, то другое окно, у которого я размер отлавливаю. Отсюда и все глюки. VCL панели постоянно пересоздаёт (не думаю, что это ты постоянно объекты окон пересоздаёшь), вместо того, чтобы просто парента поменять.

[size=-2]------ Добавлено в 17:36
А ещё, если не к Help-у добавить какую-то панель, а саму панель Help куда-то вставить, аддон уже не находит заголовка Help, и потому не создаётся. Но это опять-таки не проблема VCL, а проблема нахождения Handle парента, который по идее должна среда передать.
карма: 1

0
файлы: 1HiDLL.rar [2.2KB] [248]
Администрация
Ответов: 15295
Рейтинг: 1519
#41: 2007-05-04 18:00:49 ЛС | профиль | цитата
tsdima писал(а):
VCL панели постоянно пересоздаёт

угу. Вот поэтому нет уверенности в том, что в дальнейшем не вылезет еще что-то и если идти по такому пути, то желательно быть уверенным в том, что достаточно хорошо понимаешь принципы работы библиотеки и не наткнешься в один прекрасный момент на грабли, которые не будут иметь решения.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#42: 2007-05-04 18:50:01 ЛС | профиль | цитата
Волков бояться - в лес не ходить!
карма: 1

0
Ответов: 9906
Рейтинг: 351
#43: 2007-05-04 19:22:15 ЛС | профиль | цитата
tsdima, я тебе один умный вещь скажу, только ты не обижайся

SubClassing объекта - не может быть корректным с точки зрения динамики.
Хотя бы потому, что нет гарантий, что только ты такой умный.
Скажем, у нас этим занимается модуль object. А раз он есть, значит есть и элементы, которые это делают

Грубо говоря, это может оказаться вовсе и неожиданным для нас. Думаю и для Dilma в VCL - тоже.
Есть и такие проблемы у нас: элемент, перехватывающий onMessage парента фиг поместишь в динамический контейнер...


Вот такие вот волки
карма: 9

0
Ответов: 2125
Рейтинг: 159
#44: 2007-05-04 22:09:53 ЛС | профиль | цитата
Galkov писал(а):
SubClassing объекта

А никто и не собирается делать это, в примере это нужно лишь для того, чтобы выяснить размеры, которые в общем случае должна передавать среда (как впрочем и Handle VCL-панели/парента, а если аддон будет занимать 100% окна парента, то и вовсе одного Handle достаточно, в случае изменения парента/позиции/размера), но по понятным причинам пока этого не делает. Тогда и код не будет таким пакостным.

Galkov писал(а):
перехватывающий onMessage парента

Ненужно это. Назови хоть одну причину.
карма: 1

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