Форум: "KOL";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
ВнизНевозможно сделать повторное создание формы. Найти похожие ветки
← →
Linec (2005-09-20 14:02) [0]У меня программа написана на обычном Delphi, но я хочу создавать форму написанную на KOL (например настройки).
procedure TOption.Create;
begin
form:=newform(applet,"Option");
run(form);
end;
При первом вызове этой процедуры форма создается нормально. Потом пользователь выходит из нее, закрыв форму. Затем если попытаться вызвать снову эту процедуры, то форма появляется и сразу пропадает (сама закрывается).
Я пробовал ставить после run(form);
form.free;
applet.free;
а также очищал очередь сообщений от клавиатуры и мышки, но это не помогает.
Простое скрытие формы меня не удовлетворяет. Надо, чтобы форма полностью закрывалась, освобождая ресурсы. Но затем могла быть создана снова.
Если кто знает пожалуйста подскажите.
← →
ECM © (2005-09-20 15:56) [1]Один из вариантов:
var
bExit: Boolean;
function MyWndProc( Sender: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
begin
Result := FALSE;
if Msg.message = WM_CLOSE then bExit := TRUE;
end;
procedure TOption.Create;
var
Frm: PControl;
Msg: TMsg;
begin
Frm := NewForm(Applet,"Option");
Frm.AttachProc(@MyWndProc);
Frm.Show;
bExit := FALSE;
while not bExit do begin
WaitMessage();
{
if PeekMessage( Msg, 0, 0, 0, PM_REMOVE ) then
begin
TranslateMessage( Msg );
DispatchMessage( Msg );
end;
}
Frm.ProcessMessage;
end;
Frm.Free;
end;
← →
ECM © (2005-09-20 15:58) [2]З.Ы. Frm (в моем примере) => Form (у Вас)
← →
Linec (2005-09-20 19:52) [3]Получилось, но при попытке свернуть окно происходит ошибка Access violation.
← →
Linec (2005-09-21 16:56) [4]А из-за чего такое происходит?
← →
ECM © (2005-09-22 18:30) [5]
> А из-за чего такое происходит?
Ошибка в 17-й строке...
← →
ECM © (2005-09-23 10:53) [6]Я имел ввиду что ошибка где-то у Вас
Вот мой тестовый проект
http://www.fastfile.ru/file/KOLVCLTestPrj.zip
там ничего лишнего - нет никаких AV
:)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c