Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
ВнизFree Component Найти похожие ветки
← →
webpauk (2003-12-30 17:53) [0]может кто подскажет, как после обработки события OnKeyDown удалить компоненет (ситуация такова: програмно создаётся TEdit, который после нажатия VK_Return или VK_Escape, програмно удаляется)
← →
Плохиш_ (2003-12-30 17:57) [1]OppsDeletedComponent.Free
← →
Тимохов (2003-12-30 17:58) [2]Сделай ему free в обработчике.
← →
webpauk (2003-12-30 18:00) [3]2Тимохов
а ты сам попробуй.
процедура имеет привелигированное значение и не позволяет из себя удалять вызвавший эту процедуру компонент
← →
Тимохов (2003-12-30 18:10) [4]webpauk (30.12.03 18:00) [3]
Согласен. Давая ответ раньше я пробовал, но немного другой случай. Ты же на написал, что событие OnKeyDown у того компонента, который должен быть удален?
В данном случае, можешь посылать сообщение форме методом PostMessage и передавать кого, нужно удалить. Это точно работает - проверил.
← →
webpauk (2003-12-30 18:18) [5]а точнее?
← →
Тимохов (2003-12-30 18:26) [6]Что точнее?
Определяешь сообщение msgKill = WM_USER+1
В обработчкие OnKeyPress посылаешь
пишешь postmessage(handle, msgKill, integer(Edit), 0);
В форме пишешь обработчкик сообщение msgKill:
private procedure fMsgKill(var aMsg: TMessage);
message msgKill;
begin
TEdit(aMsg.Wparam).Free;
end;
Все!
← →
webpauk (2003-12-30 18:35) [7]integer(Edit) -а это чего?
← →
webpauk (2003-12-30 18:40) [8]Ни хрена не выходит
Может код кинешь
← →
Тимохов (2003-12-30 18:42) [9]Я тебе кинул весь код.
Edit, это переменная, содержащая ссылку на TEdit, который ты хочешь удалить.
Код я тебе кидать не буду по причине желание тебе только добра - поучиться и почитать в хелпе о незнакомых тебе процедурах и методах очень полезно.
Удачи в Новом Году!
← →
webpauk (2003-12-30 18:48) [10]SendMessage((Sender as TEdit).Handle, WM_CLOSE, 0, 0)
а такая бодяга удаляет Tedit bkb только скрывает?
← →
Тимохов (2003-12-30 18:52) [11]Не знаю.
Но способ описанный мной, точно работает.
Сейчас к сожалению не могу почитать хелп, но если я не ошибась SendPessage ждет завершения обратотки, а postmessage - нет.
Именно postmessage тебе и нужен, т.к. до удаления tedit дожен до конца отрабоать ивент onkeypress и только потом обработаться посладнное postmessage сообщение и удалиться TEdit.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c