Главная страница
    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.46 MB
Время: 0.008 c
14-37927
Snappy
2003-12-18 01:28
2004.01.13
Теория нечетких множеств(обучалка)


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


1-37674
Raduga
2003-12-26 13:53
2004.01.13
help по созданию сервисов Windows


1-37630
Cyberjack
2003-12-27 19:18
2004.01.13
DHTMLEdit


8-37811
nuflin
2003-07-01 22:03
2004.01.13
как используя TRichEdit узнть длину строки, зная ее порядковый но





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский