Главная страница
    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.46 MB
Время: 0.006 c
3-1230550570
Oleg_teacher
2008-12-29 14:36
2009.12.06
Експорт в ртф формат.


15-1254773945
KilkennyCat
2009-10-06 00:19
2009.12.06
Еаsy, с Днем Рождения!


2-1256053889
Delphi2020
2009-10-20 19:51
2009.12.06
технология ADO и RecordCount


15-1254831159
Kolan
2009-10-06 16:12
2009.12.06
Как тестировать не публичные методы?


15-1255165531
Дмитрий_
2009-10-10 13:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский