Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизКак сделать чтобы форма не отвечала на minimaze? Найти похожие ветки
← →
Viktor1 (2002-10-08 11:26) [0]Как сделать чтобы форма не отвечала на minimaze?
В windows есть кнопка-сложить все окна-вот чтоб моя программа не слаживалась? Пробовал разное, прошёл все Help, всё равно слаживается. Спасибо!!!
← →
Peter Gluhiy (2002-10-08 12:04) [1]В BorderIcons у формы установить biMinimize в false.
← →
Peter Gluhiy (2002-10-08 12:07) [2]Извините за ответ. Поспешил :-(
← →
charge (2002-10-08 12:21) [3]Перехватывать WM_SHOWWINDOW как-то так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure wmShow (var msg : TWMSHOWWINDOW); message WM_SHOWWINDOW;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.wmShow(var msg: TWMSHOWWINDOW);
begin
if msg.Show then
inherited
else
msg.Result := 0;
end;
end.
← →
Viktor1 (2002-10-08 13:36) [4]Проверил не работает!
← →
Ученик (2002-10-08 13:39) [5]procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE)
end;
FormStyle=fsStayOnTop
← →
REA (2002-10-08 14:08) [6]А если показывать форму как модальную?
← →
Демонов Е.В. (2002-10-08 14:54) [7]Поставим вопрос иначе :
Что происходит при нажатии пиктограммы " свернуть все окна" и при нажатии кнопок Win+"M" .
Я както пробовал отыскать что происходит не плучилось - единственное что понял - "свернуть все окна" и Win+"M" действуют по разному.
Многи программы которые при сворачивании прячутся в трею при нажатии вышеупомянутых кнопок сворачиваются не в трею - однако совсем недавно заметил что например окно диспечера задач при нажатии все тех же кнопок благополучно сворачивается в трею (если конечно чтоит галочка напротив соответствующего пункта настроек).
Так что же происходит при нажатии энтих кнопок ?
← →
Viktor1 (2002-10-08 16:25) [8]Когда форма модальная FormStyle=fsStayOnTop - это работает, но тогда форма поверх других окон, а это совсем не нужно.
← →
Ученик (2002-10-08 16:54) [9]>Viktor1 © (08.10.02 11:26)
Вернемся к постановке задачи:
Почему программа не должна отвечать на Minimize ?
← →
relict (2002-10-08 17:06) [10]
protected
procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.WMGetSysCommand(var Message : TMessage) ;
begin
if (Message.wParam = SC_MINIMIZE) then form1.Visible:=False else Inherited;
end;
вот тут я форму прячу..а ты её обратно востанавливай
← →
Viktor1 (2002-10-08 21:34) [11]Программа нужна для:
Вверху экрана форма, на ней будет бегущая строка с информацией, вот и нужно чтоб форма ни как не сворачивалась только из отдельного меню формы.
relict: не работает!!!???
← →
Ученик (2002-10-08 21:40) [12]>Viktor1 © (08.10.02 21:34)
Что-то подобное и предполагалось, в этом случае непонятно, почему она не должна перекрывать остальные ???
← →
Pat (2002-10-08 21:54) [13]
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMWindowPosChanging(var Message: TMessage); message WM_WINDOWPOSCHANGING;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMWindowPosChanging(var Message: TMessage);
begin
if (PWindowPos(Message.Lparam)^.flags and SWP_HIDEWINDOW) <> 0 then
PWindowPos(Message.Lparam)^.flags := PWindowPos(Message.Lparam)^.flags and
(not SWP_HIDEWINDOW) or (SWP_SHOWWINDOW);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.FormStyle:=fsStayOnTop
end;
← →
Ученик (2002-10-08 21:55) [14]Еще вариант (окно обыкновенное), но будет моргание окна
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.HookMainWindow(DoMessage)
end;
function TForm1.DoMessage(var Message : TMessage) : Boolean;
begin
Result := False;
if (Message.Msg = WM_SIZE) and (Message.WParam = SIZE_MINIMIZED) then
Application.Restore
end;
← →
Pat (2002-10-08 21:55) [15]>..чтоб моя программа не слаживалась
Отлаживание программы - избавление программы от лажи :-)))
Сорри за оффтопик :-)
← →
Viktor1 (2002-10-09 09:47) [16]Pat, Ученик :
Проверил оба варианта - не работают, есть разные вариаты как сделать, но только надо добавлять form1.FormStyle:=fsStayOnTop, что мне не нужно. Например как в PROMT сделана панель (где-то ещё встречал в утилитах ...)..., прямо как в windows. Как???!!!
← →
Ученик (2002-10-09 09:54) [17]>Viktor1 © (09.10.02 09:47)
>Проверил оба варианта - не работают
Вариант проверялся
>прямо как в windows. Как???!!!
1. http://www.geocities.com/SiliconValley/9486/appbar14.zip
2. Поиск на этом сайте AppBar
← →
Opuhshii (2002-10-09 13:12) [18]procedure WndProc(var Message: TMessage); override;
Description
WndProc is the first method that receives messages for a form. After calling the inherited method, WndProc performs some window activation, focus, and position message handling necessary to keep in sync with Windows. Override WndProc to change how the form responds to Windows messages.
думаю поможет,....
← →
Pat (2002-10-09 16:12) [19]>Например как в PROMT сделана панель (где-то ещё встречал в
>утилитах ...)..., прямо как в windows. Как???!!!
Дык, батенька, с этого и надо было начинать!!
ShAppbarMessage() вам поможет...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c