Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2009, 06:42   #1
Stein21
Пользователь
 
Регистрация: 19.01.2009
Сообщений: 10
По умолчанию Как удалить Edit, если на нём фокус?

Здраствуйте.
Создаю динамически много едитов, и надо их удалять, при потери ими фокуса, или сразу, как только в них не будет текста.
Второй вариант отдал общему обработчику события onkeypress

procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);

begin
panel1.Caption:=tedit(sender).Name;
if (sender as tedit).Text='' then begin edit1.setfocus;
FreeAndNil(tedit(sender));
end;
end;

Но он выдаёт ошибку. Хотя обработчик события потери фокуса удаляет Edit без проблем.
Подскажите пожалуйста, в чём проблема?
И если кто знает, как просто убрать фокус ввода со всех Edit'ов??
Stein21 вне форума Ответить с цитированием
Старый 19.01.2009, 09:00   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

А не правильнее ли будет так сделать?
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
if TEdit(sender).Text = '' then TEdit(Sender).Free;
end;
Баламут вне форума Ответить с цитированием
Старый 19.01.2009, 23:53   #3
Stein21
Пользователь
 
Регистрация: 19.01.2009
Сообщений: 10
По умолчанию

Болшое спасибо - работает
Ещё вопросик: как поставить фокус ввода на только что созданный Edit?
with TEdit.create(self) do begin
Parent:=Panel1;
Font.Color:=clblue;
left:=x_plus;
Top:=y_plus;
Ctl3D:=false;
autoselect:=false;
if key<>#13 then text:=key;
onchange:=edit1.onchange;
onkeypress:=form1.onkeypress;
onexit:=editExit;
(self).setfocus;
end;
Так не получается
Stein21 вне форума Ответить с цитированием
Старый 20.01.2009, 00:01   #4
NOOB
Пользователь
 
Аватар для NOOB
 
Регистрация: 01.11.2007
Сообщений: 45
По умолчанию

просто "setfocus;" убери "(self)"
NOOB вне форума Ответить с цитированием
Старый 20.01.2009, 00:04   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Просто SetFocus;
_Engine_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать фокус ввода в поле Edit Arassir Помощь студентам 14 11.07.2012 12:37
Как в OnkeyPress отловить если в Edit есть текст позицию заменяемого символа? slips Общие вопросы Delphi 3 06.12.2008 18:12
MFC: как передать фокус елементу управления "edit" ? umnick Visual C++ 2 02.11.2008 18:45
TStringGrid. Как удержать фокус на ячейке таблицы? ruma Помощь студентам 1 22.10.2007 12:49
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36