Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Кратк. - сест. тал.
 Аватар для Vit@L
87 / 51 / 4
Регистрация: 13.03.2008
Сообщений: 543

Компонент - панель задач для форм

12.11.2015, 17:48. Показов 2310. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, подскажите пожалуйста, как мне сделать некое подобие панели задач Window для форм в Delphi. Т.е. есть главная форма, есть другие формы, мне необходимо чтобы при минимизации эти формы сворачивались не в левый нижний угол рабочего стола, а на определенную панель, расположенную к пример внизу главного окна. Хорошим примером является 1С, но только это же нужно сделать в обычном (НЕ MDI) приложении.
Может компонент какой есть?
Заранее спасибо!

Добавлено через 20 часов 53 минуты
Никто ничего не подскажет?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2015, 17:48
Ответы с готовыми решениями:

Минимизация(сворачивание) форм в панель задач
В проекте используется около 20 форм. Что бы форма, не являющаяся главной, при минимизации сворачивалась не в левый нижний угол экрана,...

Кнонки в панели задач для форм
Нужна помощь!!! Есть приложение, написанное в DELPHI 7 с множеством форм. Как для каждой фомы создавать кнопку на панели задач?

Плавающая панель задач
Здравствуйте! Как сделать панели инструментов как в CD Collection ? Я имею введу что бы можно было любую панель потянув в рабочую...

5
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
12.11.2015, 17:55
отлеживаешь минимизацию окна (нужно перехватывать сообщение минимизации)
после вместо минимизации скрываешь окно, создаешь кнопку на "панели", которая впоследствии разворачивает окно
к кнопке нужно привязать хэндл окна как-нибудь

в общем, сложно, интересно и есть простор для творчества
0
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
12.11.2015, 22:44
в DevExpress есть такой, MDITabs вроде называется
0
Кратк. - сест. тал.
 Аватар для Vit@L
87 / 51 / 4
Регистрация: 13.03.2008
Сообщений: 543
16.11.2015, 17:42  [ТС]
Цитата Сообщение от DenNik Посмотреть сообщение
отлеживаешь минимизацию окна (нужно перехватывать сообщение минимизации)
после вместо минимизации скрываешь окно, создаешь кнопку на "панели", которая впоследствии разворачивает окно
к кнопке нужно привязать хэндл окна как-нибудь
в общем, сложно, интересно и есть простор для творчества
А можно примерный код?

Цитата Сообщение от mmm_corp Посмотреть сообщение
в DevExpress есть такой, MDITabs вроде называется
Этот компонент для mdiform, т.е. formstyle у формы должен быть mdichild
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33378 / 21502 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 11
17.11.2015, 01:49
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Vit@L, чего ты мучаешься? Форма сворачивается на тот контрол, который является ее родителем. Просто отслеживай момент минимизации/рестора и при минимизации выставляй родителем твою панель, куда ты хочешь сворачивать, а при восстановлении - опять сбрасывай родителя:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
type
  TMyForm = class(TForm)
  private
    R: TRect;
  protected
    procedure WndProc(var Message: TMessage); override;
  end;
 
// ...
 
{ TMyForm }
procedure TMyForm.WndProc(var Message: TMessage);
begin
  if Message.Msg = WM_SYSCOMMAND then
  begin
    if Message.WParam = SC_MINIMIZE then
    begin
      R := Self.BoundsRect; // запоминаем позицию
      Self.Parent := form1.Panel4; // Это та самая "панель задач для форм"
      Self.WindowState := wsMinimized;
    end
    else if Message.WParam = SC_RESTORE then
    begin
      Self.Parent := nil;
      Self.WindowState := wsNormal;
      Self.BoundsRect := R; // восстанавливаем позицию формы
    end;
  end;
  inherited;
end;
, и наследуй все формы, которые нужно сворачивать на панельку от этой TMyForm:
Delphi
1
2
3
4
5
6
7
type
  TForm4 = class(TMyForm) // эту форму будем сворачивать
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Всё, больше ничего делать не нужно... Все унаследованные формы будут вести себя так, как тебе нужно...
2
Кратк. - сест. тал.
 Аватар для Vit@L
87 / 51 / 4
Регистрация: 13.03.2008
Сообщений: 543
17.11.2015, 16:50  [ТС]
volvo, спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2015, 16:50
Помогаю со студенческими работами здесь

Панель задач и WM_ACTIVATE
Пишу что-то типа ланчера для портативного фаерфокса. Но тогда нет смысла пинить его на панель задач. Решил проблему удалением самого...

Скрыть пуск, панель задач
странно, но ничего подобного на форуме по делфи не нашел. может плохо искалWnd := FindWindow('Shell_TrayWnd', nil); Wnd :=...

Как свернуть форму в панель задач?
Есть программа borderstyle= bsnone,сворачиваю кнопкой. нашел такой способ: Сворачивание procedure TForm3.Image7Click(Sender:...

Создание формы, перекрывающей панель задач
Как сделать так чтобы форма закрывала панель задач:wall:

Сворачивание дочерних окон в панель задач
Доброго времени суток. Столкнулся с проблемой :wall: по сворачиванию окон. Объясните пожалуйста как сделать правильно, что бы не было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru