Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.02.2014, 18:53
Sheleh Sheleh вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 4
Репутация: 10
По умолчанию WDE - Wine Desktop Environment

Wine, на мой взгляд, уже достиг значительных успехов в реализации АПИ подсистемы windows. Но проект заточен под окружение линуха, хотя уже реализованы возможности сделать это окружение средствами самого wine' a. А ведь правда, почему бы не представить такую операционную систему, наподобие андройда, где за железо отвечает линух, а верхний уровень представляет собой win-совместимый слой.
Но это все присказка, мои тараканы. Они меня толкают на создание explorer.exe работоспособного в среде wine, ибо ничего из существующего в этой среде пока не работает.

Я никогда не опускался ниже уровня Delphi, но что то в жизни иногда надо менять, и пусть Delphi в вайне работает нормально, все же я выбрал более идеологически линух-родственную среду - Lazarus. Win32 Lazarus. Который тоже под вайном работает на должном уровне.

Ну и собственно к самому вопросу, касаемо explorer.exe. Его реализацию я начал с taskbar'а. И тут же начались первые несовместимости. Где под ХР все работает как и ожидалось, в вайне не работает ничего. Оно и понятно, вайн не затачивался под управление окнами из собственной среды, и многие функции не реализованы. Стало быть надо как то их в собственном експлорере допиливать мелким надфилем.

Одна из самый острых проблем - как сворачивать приложения, состоящие не из одного окна? Что, делфи, что лазарус, состоят из нескольких разных окон. И посыл родителю SW_MINIMIZE сворачивает только главное, остальные висят как ни в чем не бывало. Т.е. вайн при сворачивании главного не обращает внимания на дочерние, и это надо делать самостоятельно. Я не силен в АПИ, но понимаю, что их как то надо найти и послать им соответствующее сообщение. Что то вроде EnumChildWindows(hwd, @ChildWinMinimize, 0)

Но в этом случае, сворачиваются даже элементы цельных окон, что нам, конечно, совершенно не требуется.

Уважаемые гуру программирования, Гики Всея Руси, подскажите, плз, как перечислить необходимые окна, дабы отправить им весть о необходимости минимизироваться.
Ответить с цитированием
  #2  
Старый 07.02.2014, 21:54
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А что, в этой среде нет Application.Minimize?
Ответить с цитированием
  #3  
Старый 08.02.2014, 03:47
Sheleh Sheleh вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А что, в этой среде нет Application.Minimize?
Может вы не так поняли. Но я пишу пока таск бар. Панель в мелкомягких с кнопкой пуск и все остальным. Мне не нужно сворачивать собственные окна, надо сворачивать чужие путём посыла им сообщений ShowWindow(hwd, SW_MINIMIZE); Когда простые однооконные окна сворачиваются без проблем, с многооконными это не прокатывает.
Ответить с цитированием
  #4  
Старый 08.02.2014, 16:10
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

тожа нифига не понял. пример есть?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter