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

Вниз

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

 
<>   (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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1255841231
NaRuTo
2009-10-18 08:47
2009.12.06
Фокус 2-х и более TCustomControl ов


2-1256063307
Novii
2009-10-20 22:28
2009.12.06
Bitmap and Bitmap


2-1255932245
Фуфик
2009-10-19 10:04
2009.12.06
последняя строка Excel


15-1254977768
stas
2009-10-08 08:56
2009.12.06
Не включается комп


15-1254495687
Cyrax
2009-10-02 19:01
2009.12.06
Кто-нибудь знает, что такае "партномер" ?