Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Вниз

Много ли ресурсов потребляет невидимая форма?   Найти похожие ветки 

 
<>   (2008-04-19 12:06) [0]

В программе главная форма создаётся автоматически, что бы её убрать используется Form.Hide. Имеет ли смысл переделать программу так, что бы когда нужно форма создавалась, а когда она не нужна - уничтожалась? Сэкономит ли это системные ресурсы?


 
Demt   (2008-04-19 20:24) [1]

При уничтожении главной формы завершится приложение. Не заметил, что скрытая форма "кушает" ресурсы.


 
<>   (2008-04-19 21:30) [2]

>При уничтожении главной формы завершится приложение.

Нет, я имел ввиду динамическое создание формы в dpr файле, что бы приложение работало в фоне, и при необходимости форма создавалась\уничтожалась, примерно так:

program Project1;
uses   Windows,   Messages, kol;

var  Form1:pControl; B1:pControl;

Procedure cl( Sender: PObj ) ;
begin
 beep(500,500);
end;

var   Wc: TWndClassEx;
     Msg: TMsg;

function WndProc( wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM ): lResult; stdcall;
begin

if Msg = WM_DESTROY
 then
  begin
   PostQuitMessage( 0 );
   Result:= 0;
  end
 else
   Result:= DefWindowProc(wnd, Msg, wParam, lParam);

end;

begin
Form1:=NewForm(Applet, "Form1");
Form1.Height:=100;
Form1.Width:=100;
B1:=NewButton(Form1,"b1");
B1.Top:=20;
B1.Left:=20;
B1.OnClick:=TOnEvent(MakeMethod( nil, @Cl ) );
Form1.caption:="fff";
Run(Form1);

with Wc do
 begin
  Style:= CS_VREDRAW or CS_HREDRAW;
  hIcon:= LoadIcon( 0, IDI_APPLICATION );
  hIconSm:= LoadIcon( 0, IDI_APPLICATION );
  hCursor:= LoadCursor( 0, IDC_ARROW );
  hInstance:= hInstance;
  cbSize:= SizeOf( WndClassEx );
  cbClsExtra:= 0;
  cbWndExtra:= 0;
  hbrBackground:= HBRUSH( COLOR_BACKGROUND );
  lpszMenuName:= nil;
  lpfnWndProc:= @WndProc;
 end;

While GetMessage( Msg, 0, 0, 0 )
 do
  begin
   TranslateMessage( Msg );
   DispatchMessage( Msg );
  end;

Halt( Msg.wParam );

end.


>Не заметил, что скрытая форма "кушает" ресурсы.

Хотелось бы знать цифры.


 
Дмитрий К ©   (2008-04-19 22:26) [3]


> <>   (19.04.08 21:30) [2]

А где тут динамическое создание формы?


 
<>   (2008-04-19 22:38) [4]

>А где тут динамическое создание формы?

Вот здесь:


begin
Form1:=NewForm(Applet, "Form1");
Form1.Height:=100;
Form1.Width:=100;
B1:=NewButton(Form1,"b1");
B1.Top:=20;
B1.Left:=20;
B1.OnClick:=TOnEvent(MakeMethod( nil, @Cl ) );
Form1.caption:="fff";
Run(Form1);


 
Ёжик   (2008-04-19 22:50) [5]

Позвольте поинтересоваться, с каких "позиций" Вас интересует потребление ресурсов, как я понял из поста системных? У Вас какой компьютер (конфигурация), и в чем основная проблема?


 
<>   (2008-04-19 23:36) [6]

>Позвольте поинтересоваться, с каких "позиций" Вас интересует потребление ресурсов, как я понял из поста системных? У Вас какой компьютер (конфигурация), и в чем основная проблема?

Конфигурация - D-800/128MB RAM/20GB HDD.

Меня это интересует пока теоретически, но если разница в потреблении ресурсов будет велика-то и практически.


 
Vladimir Kladov   (2008-04-20 08:10) [7]

Форму имеет смысл уничтожать только в случае, если её первичная настройка при показе, в начале диалога, настолько запутанная, что проще её пересоздать, чем учесть все хвосты от предыдущего состояния. Такое бывает, если внешний вид формы зависит от операции/функции, для которой она вызвана, а функций этих не меньше десятка (или хотя бы 5). В плане потребления ресурсов - это бессмысленно, если у вас не более 1000 разных форм. Не работающий код просто ляжет на своп, ограничения по ресурсам user/kernel/gdi (окна, дескрипторы таймеров, картинок и т.п.) в NT практически отсутствуют, в довольно широких пределах.


 
<>   (2008-04-20 11:35) [8]

Спасибо!



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

Форум: "KOL";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
2-1256026045
Роман
2009-10-20 12:07
2009.12.06
between или <= =>


4-1224238965
Циркуль
2008-10-17 14:22
2009.12.06
SHBrowseForFolder модально


15-1254762749
Константинов
2009-10-05 21:12
2009.12.06
Ксера паспорта при регистрации домена


15-1250841620
Empleado
2009-08-21 12:00
2009.12.06
На чем мультики делать?


2-1256102379
St1m
2009-10-21 09:19
2009.12.06
Доступ к расшаренной папке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский