Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-37930
Ig
2003-12-20 13:29
2004.01.13
Где можно найти компоненты SUIPack?


4-37979
DriveSoft
2003-11-09 17:08
2004.01.13
Вставка текста в IE


3-37568
CraKer
2003-12-14 00:03
2004.01.13
Filter не делается по значениям с пробелом...


1-37615
denick
2003-12-31 09:51
2004.01.13
Как удалить из TreeView`а один из Node,


4-37987
Дремучий
2003-11-10 20:00
2004.01.13
Горячие клавиши! Глобально. Для операционки.