Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы про формы и память 
:(
    Опции темы
codexby
Дата 7.6.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 7.6.2008
Где: minsk

Репутация: нет
Всего: нет



Добрый день!

В программе есть 3 формы: заставка, меню  и окно, в котором отображаются html-страницы через webbrowser.
сначала отображается окно с заставкой и оно исчезает, когда пользователь нажмёт любую клавишу.

1. Желательно было бы сделать так, чтобы в программе эта форма при закрыти полностью выгружалась из памяти.
Когда происходит открытие формы 3, в форме 2 я пишу form3.show и form2.hide - но, почему-то, происходит полное завершение программы.

В DPR написано:
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.Run;


2. в webbrowsere по мере открытия различных html файлов происходит постоянное увелечение памяти, занимаемое программой. можно ли это предотвратить?

3. как отлавливать нажатие кнопки, независимо от того, какой элемент управления является активным? (webbrowser вообще нет обработки нажатия кнопки).

Это сообщение отредактировал(а) codexby - 7.6.2008, 12:49
PM MAIL   Вверх
zhefran
Дата 7.6.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



А почему у тебя меню и страничка с браузера на отдельных формах? Почему не на одной?
На счет 
Цитата(codexby @  7.6.2008,  12:45 Найти цитируемый пост)
Когда происходит открытие формы 3, в форме 2 я пишу form3.show и form2.hide - но, почему-то, происходит полное завершение программы.

У меня нормально c этим!


Это сообщение отредактировал(а) zhefran - 7.6.2008, 13:11

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  ______.rar 3,84 Kb
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
Beltar
Дата 7.6.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



Больше не нужной форме делай Free и присваивай Nil, особенно если она потом может пересоздаваться, т. к. Free сам указатель не обнуляет.

Цитата

как отлавливать нажатие кнопки, независимо от того, какой элемент управления является активным?


Кидай компонент TApplicationEvents и пиши примерно так.

Код

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
if Msg.message=WM_LBUTTONUP then ShowMessage(IntToStr(WM_LBUTTONUP));
end;


Если нужно другие коды сообщений то Messages.pas их знает.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
codexby
Дата 7.6.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 7.6.2008
Где: minsk

Репутация: нет
Всего: нет



P.S. забыл уточнить - у меня Delphi 6.

отслеживание нажатия кнопки сделал так:

procedure TForm3.OnMessage (var Msg : TMsg; var Handled : boolean);
begin
  if Msg.message = WM_KEYUP then
  begin
        if Msg.wParam=27 then Application.Terminate;
  end;
end;
PM MAIL   Вверх
aktuba
Дата 7.6.2008, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(codexby @  7.6.2008,  14:28 Найти цитируемый пост)
Application.Terminate;

Вот поэтому и завершается приложение ;)


--------------------
user posted image
PM MAIL WWW Skype   Вверх
codexby
Дата 7.6.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 7.6.2008
Где: minsk

Репутация: нет
Всего: нет



Цитата(aktuba @  7.6.2008,  15:08 Найти цитируемый пост)
Вот поэтому и завершается приложение ;)


оно завершается только при нажатии кнопки 'Esc'

zhefran, как у тебя сделано - оно, конечно, правильно, только не могу понять, почему  в моей проге это не работает smile - глюки какие-то...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.