Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
3-37551
prophet
2003-12-15 20:47
2004.01.13
InterBase Tables: Using Character Sets


14-37929
ZDima
2003-12-19 23:05
2004.01.13
Народ, помогите решить тест Айзенка.


7-37969
Shaman O Mega
2003-10-31 11:18
2004.01.13
Как уменьшить загрузку процессора


1-37608
mik_1
2003-12-28 18:29
2004.01.13
прерывание исполнения программы


11-37601
Separator
2003-04-11 10:42
2004.01.13
KOL и MySQL




   Наверх