Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизСворачивание программы Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.032 c