Главная страница
    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.007 c
14-37895
mfender
2003-12-17 20:06
2004.01.13
Отключение модема по времени.


8-37803
Rif_yev
2003-09-10 11:06
2004.01.13
Real


1-37717
radiosoft
2003-12-30 19:23
2004.01.13
Как изменить цвет стандартного ScrollBar?


1-37740
CTAPbIi
2003-12-30 09:50
2004.01.13
Изменение цвета и размеров scrollbars


14-37902
Maxim Vetera
2003-12-19 19:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский