Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
7-1078420015
Ultr
2004-03-04 20:06
2004.05.02
Как определить кэшируемый-ли драйв(например винчестер)


3-1080901680
tv
2004-04-02 14:28
2004.05.02
Литература по InterBase


14-1081798589
Мишка Кулясов
2004-04-12 23:36
2004.05.02
Лишают ника


1-1081943575
Алексей2
2004-04-14 15:52
2004.05.02
Как "превратить" строку в имя переменной?:


3-1081239661
Akmen
2004-04-06 12:21
2004.05.02
Как избавиться от Too many open files?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский