Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Сворачивание программы   Найти похожие ветки 

 
Kirill ©   (2003-06-04 18:39) [0]

Написал простой код:
uses
 Kol,windows;
var
 frM : PControl;

begin
 Applet:=NewApplet("Test").CenterOnParent;
 Applet.Visible:=true;
 Applet.Icon:=0;
 frM:=NewForm(Applet,"Test").SetSize(300,100).CenterOnParent;
 frm.SizeGrip:=false;
 frM.CanResize:=false;
 frM.Icon:=0;
 frm.Style:=frm.Style-WS_MAXIMIZEBOX;
 Run(frM);
end.

А при нажатии на кнопку минимизации, она сворачивается в левый нижний угол, а не на панель задач. Это глюк системы или кривых ручек?


 
Кладов   (2003-06-04 19:47) [1]

MinimizeNormalAnimated


 
Centronix   (2003-06-04 20:19) [2]


> frm.Style:=frm.Style-WS_MAXIMIZEBOX;

не в тему, но корректнее будет: frm.Style:=frm.Style and not WS_MAXIMIZEBOX;
:)


 
Кладов   (2003-06-04 22:04) [3]

тогдп уже WS_MINIMIZEBOX :)


 
Kirill ©   (2003-06-05 04:46) [4]


> MinimizeNormalAnimated

Не помогло. Такой же глюк замечен и на ХР. Попробую сейчас обновить до версии 1.75, только что-то она мне не пришла по почте :( Хотя я думаю толку не будет.


 
Kirill ©   (2003-06-05 04:58) [5]

Как я и говорил, не помогло.:(


 
SerB   (2003-06-05 06:07) [6]

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


 
Кладов   (2003-06-05 08:42) [7]

2Kirill: Посмотрел, что вы тут накорябали. Вам надо срочно в операционную, руки перешивать :)

Run(Applet);

И всегда пишите так, даже, когда Applet не используется, и Applet = form1 - меньше будет ошибок, когда захочется Applet добавить.


 
Kirill ©   (2003-06-05 13:12) [8]

Помогло.
Я не помню, после чего я начал исользовать Run(form1), из-за какой-то фичи в раних версиях при выходе из программы.


 
Леонид Пилипенко   (2003-10-05 12:03) [9]

Hi!

Обращаюсь прямо к уважемому разработчику, Владимиру Кладову.
В форум (а не на e-mail) пишу, чтобы аналогичный вопрос другие не задавали по сто раз.

Вопрос такой: у меня в программе пять форм, а не одна. Я уже и прогу дописал и обратил внимание, что она сворачивается в левый нижний угол. Странно это.
Ничего не помогает: MinimizeNormalAnimated и Applet.OnMessage...
Чего с этим делать.
У меня XP Prof. (без Service Pack"ов). Если это имеет значение.

P.S. Thanks for reading!


 
Vladimir Kladov   (2003-10-05 20:03) [10]

а куда такие формы должны минимизироваться? По-моему, по умолчанию они делают то, что предусмотрено в Windows, это правильно. Если надо скрывать, или минимизировать все приложение (AppletMinimize), то на то есть OnMinimize.


 
Леонид Пилипенко   (2003-10-09 22:59) [11]

Хм,...чего-то не пойму, чего надо сделать на OnMinimize? Метод AppletMinimize вызвать что-ли, так ежели так, то не помогло.
Вы говорите правильно это, странно, а ведь VCL"ные проги сворачиваются в TaskBar, а не в нижний левый угол (независимо от количества форм).
Кроме того, мне не понятно после чего это происходит. Одно я знаю, когда у меня была одна форма, то она работала как надо.
Может ещё идеи есть?


 
Леонид Пилипенко   (2003-10-09 23:04) [12]

Хм,...чего-то не пойму, чего надо сделать на OnMinimize? Метод AppletMinimize вызвать что-ли, так ежели так, то не помогло.
Хотя мне и так понятна идеология из исходника
 if Applet = nil then Exit;
 Applet.Perform( WM_SYSCOMMAND, SC_MINIMIZE, 0 );
...но чего-то не помогло.

Вы говорите правильно это, странно, а ведь VCL"ные проги сворачиваются в TaskBar, а не в нижний левый угол (независимо от количества форм).
Кроме того, мне не понятно после чего это происходит. Одно я знаю, когда у меня была одна форма, то она работала как надо.
Может ещё идеи есть?


 
SPeller ©   (2003-10-10 04:38) [13]


> Леонид Пилипенко

Отдельный объект Applet используете?


 
Леонид Пилипенко   (2003-10-10 10:32) [14]

Что вы имеете в виду? У меня 5 форм, на главной лежит Applet. А или вы имеете в виду вообще один Applet, то нет у меня 5 форм.


 
Леонид Пилипенко   (2003-10-10 10:36) [15]

Ах да, вот ещё что. Я заметил, что форма сворачивается правильно, если нажать всем известное сочетание клавиш Windows key (ну с рисунком винды) + D. Этот shortcut сворачивает все окна (модальные тоже), очень удобная вещь по жизни. Так вот независимо от того, в каком форма положении (свёрнута в нижний угол или развёрнута) она при нажатии на этот shortcut сворачивается правильно. То есть, я думаю, какое это событие винда посылает всем формам через Enum... чтобы получить правильный эффект.


 
Vladimir Kladov   (2003-10-10 16:09) [16]

Работает AppletMinimize, не надо меня заблуждать. Разве что сама форма при этом остается в свернутом виде.

Вот грубое решение:
procedure TForm3.KOLForm1Minimize(Sender: PObj);
begin
 PostMessage( Applet.Handle, WM_USER+100, Integer( Form ), 0 )
end;


function TForm1.KOLApplet1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
begin
 Result := FALSE;
 if Msg.message = WM_USER+100 then
 begin
   PControl( Msg.wParam ).WindowState := wsNormal;
   AppletMinimize;
   Result := TRUE;
 end;
end;


При этом сворачиваемая форма на долю секунды успевается появиться в свернутом виде в левом углу. Для пущей чистоты можно вместо OnMinimize использовать OnMessage:

function TForm3.KOLForm1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
begin
 Result := FALSE;
 if (Msg.message = WM_SYSCOMMAND) and (Msg.wParam and not 15 = SC_MINIMIZE) then
 begin
   PostMessage( Applet.Handle, WM_USER+100, Integer( Form ), 0 );
   Rslt := 0;
   Result := TRUE;
 end;
end;


 
Леонид Пилипенко   (2003-10-10 19:08) [17]

Ух ты, первый способ помог. Да на долю секунды виндно, но это несущественно.
Ага, и воторой помог. Ура!!!

Так что ENDLESS THANKS и RESPECT вам уважаемый!!!



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.032 c
3-1081167723
Ivan
2004-04-05 16:22
2004.05.02
Информация в PageFooter


6-1078395276
pai
2004-03-04 13:14
2004.05.02
Indy, IdTCPClient.writebuffer


1-1082209420
vin
2004-04-17 17:43
2004.05.02
отловить Mouse за пределами формы


3-1080890117
TATIANA
2004-04-02 11:15
2004.05.02
Изменения размера страницы - база IBExpert


4-1074852801
Сергей_
2004-01-23 13:13
2004.05.02
Память