Главная страница
    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.46 MB
Время: 0.005 c
2-1256020739
123123
2009-10-20 10:38
2009.12.06
ASCII символы


2-1255954503
Ivan8511
2009-10-19 16:15
2009.12.06
Разница между ADOTable и ADOQuery


3-1231164216
zorik
2009-01-05 17:03
2009.12.06
Invalid cursor declaration


2-1255947778
Инна
2009-10-19 14:22
2009.12.06
Дерево каталогов&amp;список файлов


15-1254929065
Gydvin
2009-10-07 19:24
2009.12.06
Раабота с ImageMagick





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