Delphi: сделать список дочерних окон (MDI) в виде закладок

demav

Member
Joined
Nov 20, 2018
Messages
301
Reaction score
53
Age
39
Углядел в 1С интересную фишку. Там для дочерних окон в MDI приложении показываются прямоугольники с надписями внизу главного окна. По типу панели задач в Windows. По-моему, удобно.

Никто не делал такую штуку на Delphi? Какой опыт у кого?
 

a101010

Member
Joined
Mar 15, 2019
Messages
119
Reaction score
41
Age
44
Углядел в 1С интересную фишку. Там для дочерних окон в MDI приложении показываются прямоугольники с надписями внизу главного окна. По типу панели задач в Windows. По-моему, удобно.

Никто не делал такую штуку на Delphi? Какой опыт у кого?

Ну это очень просто сделать. Берешь любой Bar и в момент показа окна (событие OnShow) генерируешь на этом Bar'е кнопку привязанную к этому окну. Вот и все. :)
 

demav

Member
Joined
Nov 20, 2018
Messages
301
Reaction score
53
Age
39
Всем спасибо. Я уже сделал сам свою библиотеку, взяв за идею предложение elpik.

Правда, в компоненте elpik какие-то необъяснимые глюки, я так и не смог их побороть, несмотря на то, что код открытый. Но это к делу не относится.
 

Decoding

Member
Joined
Dec 7, 2009
Messages
91
Reaction score
271
когда то давно, когда передо мной встала такая же задача, я перерыл весь инет. видел и этот компонент (MDITab), но ни одно из решений меня не устроило, по-этому написал свой (к слову получил о нем немало хороших отзывов)... :)
mdipanel.jpg
 

a101010

Member
Joined
Mar 15, 2019
Messages
119
Reaction score
41
Age
44
написал свой (к слову получил о нем немало хороших отзывов)... :)

Вот и я про тоже самое. Компонент по своей функциональности получается элементарный. :)
 

Decoding

Member
Joined
Dec 7, 2009
Messages
91
Reaction score
271
Компонент по своей функциональности получается элементарный. :)

Если окно в момент создания должно само создавать для себя кнопку, то да, элементарно... тогда оно еще должно уничтожать кнопку при закрытии... именно это мне и не понравилось, я не хотел писать однотипный код во всех формах, мне нужен был компонент, который бы взял на себя эти задачи.
 

a101010

Member
Joined
Mar 15, 2019
Messages
119
Reaction score
41
Age
44
мне нужен был компонент, который бы взял на себя эти задачи.

И здесь я тоже абсолютно согласен! Зачем придумывать то, что уже сто раз кто-то придумал! Но т.к. я в создании компонентов полный "чайник", то я наверное написал бы свой. Типа использовал бы этот случай для освоения для себя чего-то нового. :)
 

xSer

Member
Joined
Oct 12, 2006
Messages
5
Reaction score
0
Location
Odessa
Рекомендую MDIpanel, взят с http://decoding.narod.ru/, долго искал - очень понравился - просто кинуть на форму и все - ничего больше не надо настраивать - сам отображает названия окон

Добавлено через 7 минут
Еще в дополнение - раньше использовал бесплатный компонент с http://www.mitec.cz/mdibg.html
Для полноценного использования надо скачать с этого сайта два бесплатных компонента: MDITab и MDIButtonGroup. Получается красиво но надо ручками еще подописывать код (см. пример в демке)
 
Last edited by a moderator:

opavlo

Member
Joined
Mar 18, 2010
Messages
10
Reaction score
1
Age
46
MDIpanel (2.0) вещь хорошая, тока под D7 приходится руками ставить, а при запуске MDI-окна вылетает с ошибкой. хотя под D-XE, все ОК. как бы MDIpanel (2.0) под D-7 запустить?
 

Decoding

Member
Joined
Dec 7, 2009
Messages
91
Reaction score
271
Запускай, все исправлено, версия 2.1 работает стабильно!
 

opavlo

Member
Joined
Mar 18, 2010
Messages
10
Reaction score
1
Age
46
пасиб, с удовольствием добавлю MDIpanel (2.1) с список моих любимых компонентов
 
Top