Форум: "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