Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизКак сделать мою форму позади всех? Найти похожие ветки
← →
NikNet © (2005-09-26 16:47) [0]А также как сделать что бы при сворачиваний
сворачивоалсь не в TaskBar?
← →
umbra © (2005-09-26 16:52) [1]а куда?
← →
NikNet © (2005-09-26 17:02) [2]// umbra © (26.09.05 16:52) [1]
Как MDI формы... (Как WORD) в угол.
← →
DVM © (2005-09-26 17:27) [3]
> Как сделать мою форму позади всех?
SetShellWindow() или WM_WINDOWPOSCHANGING
> А также как сделать что бы при сворачиваний
> сворачивоалсь не в TaskBar?
SetShellHookWindow() + HSHELL_GETMINRECT
← →
umbra © (2005-09-26 19:05) [4]Принцип такой (спасибо aplet за информацию):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure SysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.SysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType <> SC_MINIMIZE) and (Msg.CmdType <> SC_RESTORE) then
inherited;
if Msg.CmdType = SC_MINIMIZE then
begin
ClientHeight := 0;
Width := 50;
Left := 0;
Top := Screen.Height - Height;
WindowState := wsMinimized;
end;
if Msg.CmdType = SC_RESTORE then
begin
Top := 50;
Left := 150;
ClientHeight := 500;
Width := 500;
WindowState := wsNormal;
end;
end;
end.
Но для кооректного восстановления окна надо еще где-то хранить информацию
о предыдущем состоянии, ну и остается иконка в панели задач.
← →
NikNet © (2005-09-26 19:07) [5]А как все свернутые окна поместить в ToolBar? учытывая что Explorer(а) нет!
← →
umbra © (2005-09-26 19:21) [6]
> Explorer(а) нет!
В каком смысле?
← →
umbra © (2005-09-26 19:31) [7]Если надо при сворачивании окон вообще их убирать и создавать соответствующие кнопки на тулбаре в другом окне, то тогда, в общем, делать надо не совсем так.
← →
NikNet © (2005-09-26 20:25) [8]umbra © (26.09.05 19:31) [7] А как?
← →
DVM © (2005-09-27 10:30) [9]
> А как все свернутые окна поместить в ToolBar? учытывая
> что Explorer(а) нет!
Я уже ответил, ты и будешь продолжать спрашивать тупо одно и то же?
Имхо за непосильную задачу взялся.
> учытывая что Explorer(а) нет!
На год работы примерно.
← →
NikNet © (2005-09-27 13:36) [10]DVM © (27.09.05 10:30) [9]
Хватит! Я уже нашол компонент ТаскБар точно такой же как и Винь
только вот приходится все что сверрху делать самому!
Сделал быстрый запуск программ! Теперь надо сделать
что бы все сворачивающие окна поподали в мой ТоллБар
Как это сделать!
И ещё из кокого контрола создан ТрайИкон?
← →
Antonn © (2005-09-27 13:40) [11]NikNet © (27.09.05 13:36) [10]
почему-то мне кажется, что для вас это задача, на данный момент, трудновата. может стоит написать блокнот?
← →
DVM © (2005-09-27 13:43) [12]
> Теперь надо сделать
> что бы все сворачивающие окна поподали в мой ТоллБар
>
> Как это сделать!
HSHELL_GETMINRECT + WH_SHELL + RegisterShellHookWindow()
> И ещё из кокого контрола создан ТрайИкон?
Из чего сделан ТрайИкон я не знаю, потому как на таскбаре нет такого окна, а вот окно области уведомлений в Win2000/xp сделано из ToolBar, в Win98/95 это просто окно, безо всяких контролов иконки отрисовываются прямо на нем.
> только вот приходится все что сверрху делать самому!
Ну-ну. Зря ты меня не слушаешь, поверь уж мне, человеку много времени потратившему на написание шеллов, подобных эксплореру - непростая это задача.
← →
umbra © (2005-09-27 13:49) [13]
> все сворачивающие окна поподали в мой ТоллБар
procedure TForm1.SysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType <> SC_MINIMIZE) then
inherited;
if Msg.CmdType = SC_MINIMIZE then
begin
Hide;
Enabled := false;
{добавляем на тулбар кнопку и сохраняем где-нибудь ссылку на окно,
соответствующее кнопке}
end;
end;
После этого окно скроется (и из панели задач) и перестанет обрабатывать сообщения.
Для кнопок на тулбаре в обработчике щелчка мышкой берем ссылку на соответствующее окно и пишем
procedure ToolButtonclick(............);
begin
Windowref.Enabled := true;
Windowref.Show;
end;
Но вообще-то работать все это должно только в винде (т.е. с эксплорером?). Не в винде обработчик сообщения должен быть другой (если вообще есть сообщения). нельзя ли подробней, что означает "нет эксплорера"?
← →
DVM © (2005-09-27 13:52) [14]
> Но вообще-то работать все это должно только в винде (т.е.
> с эксплорером?). Не в винде обработчик сообщения должен
> быть другой (если вообще есть сообщения). нельзя ли подробней,
> что означает "нет эксплорера"?
Он хочет шелл (эксплорер) заменить своим. А за анимацию сворачивающегося окна в произвольный прямоугольник на экране отвечает именно структура передающаяся с HSHELL_GETMINRECT
← →
NikNet © (2005-09-27 18:34) [15]DVM © (27.09.05 13:43) [12]
Зря ты меня не слушаешь, поверь уж мне
Мог бы и поделится :(
← →
DVM © (2005-09-28 10:16) [16]
> Мог бы и поделится :(
Советом пожалуйста, некоторыми функциями пожалуйста, но готовой разработкой - не вижу смысла ни для себя ни для тебя (половину там ты не поймешь все равно, без обид)
← →
DVM © (2005-09-28 10:29) [17]
> NikNet ©
вот готовый экзешник (не самый новый, но уже достаточно функциональный), пароль там 3141592653
Запускать лучше закрыв эксплорер, но можно и вместе с ним.
инсталляция как шелл myshell.exe -install, удаление myshell -uninstall
http://213.33.194.5/files/shell.zip
← →
NikNet © (2005-09-29 06:19) [18]DVM © (28.09.05 10:29) [17] Ну и какой толк от неё?
Может даш? Я разбирусь а как сделаю так и тебе дам (Исходник)
NikNet@yandex.ru
← →
NikNet © (2005-10-02 12:29) [19]DVM © (26.09.05 17:27) [3] А где взять этот SetShellWindow?
← →
DVM © (2005-10-03 10:14) [20]
> NikNet © (02.10.05 12:29) [19]
function SetShellWindow(Handle: HWND): HWND; stdcall; external "User32.dll";
← →
NikNet © (2005-10-03 17:12) [21]DVM © (03.10.05 10:14) [20]
Что-то она не работает... :(
<офтоп> Почту смотрел </офтоп>
← →
DVM © (2005-10-04 10:34) [22]
> Что-то она не работает... :(
И не будет, так как ты неправильно ее используешь.
1) Работать она будет только в отсутствии эксплорера или др оболочки.
2) Окно должно быть создано на WinAPI, т.к. с VCL окнами она почему-то (я не разбирался почему) не работает.
← →
NikNet © (2005-10-04 16:05) [23]DVM © (04.10.05 10:34) [22]
А я та думаю чё он не работает =)
А как без этой ф-ций выставить и что бы все элементы на форме работали!
Ато сколько не дают не работают!
← →
DVM © (2005-10-05 10:16) [24]
> А как без этой ф-ций выставить и что бы все элементы на
> форме работали!
http://hardware.org.ru/faq/answ.php?id=4415
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.034 c