Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-37845
Undert
2003-12-23 00:53
2004.01.13
Тут как то пролетала тема армии, вот послушайте - не пожалеете!


1-37780
TuZ
2003-12-29 13:27
2004.01.13
Как добавить иконку в консольное приложение?


7-37959
h0use
2003-10-29 15:24
2004.01.13
Не подскажете как из сервиса создать форму, показать ее на экране


11-37589
Ал
2003-04-24 13:07
2004.01.13
Работа с ActiveDesktop через CreateComObject (KOLComObj)


14-37903
VID
2003-12-21 19:26
2004.01.13
Ищу саундтреки фильма





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский