Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по (Sender as...) [D2005, XP]


Олег Крапивин ©   (2010-12-24 23:42:00) 

Доброго времени суток господа.
Подскажите пожалуйста по простому вопросу:
На форме есть несколько компонентов TЕdit и кнопка "Заполнить TEdit.Text". При нажатии кнопки попробовал отловить (Sender as TEdit),
но при проверке оказалось, что Sender указывает на кнопку (что и должно быть). А как мне выйти на компонеты Tedit формы?
Лучше бы ссылочку...


Студент   (2011-01-09 06:35:00) [1]


> На форме есть несколько компонентов TЕdit и кнопка "Заполнить
> TEdit.Text".


А как Edit'ы создаются - DisignTime? Их количество и имена постоянны? Который из Edit нужно заполнить при нажатии кнопки - все?
Может просто подряд?

Procedure TForm1.OnButton1Click(...);
Begin
Edit1.Text:='one';
Edit2.Text:='two';
Edit3.Text:='three';
...
End;


> Поэтому так и говорят: береги фокус с молодости.


:D


Leonid Troyanovsky   (2011-01-02 18:59:00) [2]


> Олег Крапивин   (02.01.11 10:57) [18]

> >  по молодости.
>
> Какая молодость???!!!! Мне через три года полтинник!!!

Поэтому так и говорят: береги фокус с молодости.

--
Regards, LVT.


Олег Крапивин   (2011-01-02 10:57:00) [3]


> > Пробовал вариант от Дмитрия [12], что-то не получилось.
> Remember: потерять фокус легко, а возвратить - сложно.Особенно,
>  по молодости.

Какая молодость???!!!! Мне через три года полтинник!!!
С наступившим Новым годом Вас и всех присутствующих!

Здоровья всем и сил, терпения со всеми кто знает систему менее глубоко
чем вы.

Это любопытно http://citforum.ru/gazeta/165/, тигры Лиспа впереди!
Опять концепцию написания программ менять?
Это в конференцию прочее


Leonid Troyanovsky   (2010-12-28 18:54:00) [4]


> Олег Крапивин   (28.12.10 13:12) [15]

> Спасибо 12! Единственное, что подошло.

Иное испытывалось (понято было) плохо.

> Пробовал вариант от Дмитрия [12], что-то не получилось.

Remember: потерять фокус легко, а возвратить - сложно.
Особенно, по молодости.

--
Regards, LVT.


Юрий Зотов   (2010-12-28 13:28:00) [5]

А лучше всего - [3]. И никаких проблем ни у программиста, ни у юзера.


Олег Крапивин   (2010-12-28 13:12:00) [6]


> 12 ©   (25.12.10 00:00) [1]
> z.b.for i := 0 to componentscount -1 doif components[i]
> is tedit then tedit(components[i]).text := tedit(components[i]).
> name


Спасибо 12! Единственное, что подошло.
Пробовал вариант от Дмитрия [12], что-то не получилось.


Leonid Troyanovsky   (2010-12-25 22:58:00) [7]


> Дмитрий С ©   (25.12.10 17:32) [12]

> Как вариант сделать переменную в классе формы:

Лучше сделать каждому Edit пункт контекстного меню
или action c горячей клавишей.

--
Regards, LVT.


Leonid Troyanovsky   (2010-12-25 22:55:00) [8]


> _Юрий   (25.12.10 14:59) [10]

> вин-контролом не является - например SpeedButton
> тогда активным продолжает оставаться эдит

Можно и TButton with Default=True.
Если, конечно, жать через Enter.

--
Regards, LVT.


Дмитрий С   (2010-12-25 17:32:00) [9]

Как вариант сделать переменную в классе формы:
FLastFocusedEdit:TEdit.

У всех едитов на форме обработать onEnter, где сделать
FLastFocusedEdit:=Sender as TEdit;
А при нажатии на кнопку
if assigned(FLastFocusedEdit) then
 FLastFocusedEdit.text := '....'


_Юрий   (2010-12-25 15:00:00) [10]

а кнопку = а когда нажимают кнопку


_Юрий   (2010-12-25 14:59:00) [11]

активным может быть только один винконтрол
а кнопку, она и становится активной
чтобы этого не происходило, надо использовать кнопку, которая вин-контролом не является - например SpeedButton
тогда активным продолжает оставаться эдит


KSergey   (2010-12-25 12:47:00) [12]

Я не понял что надо отловить собственно.
Хотя ответ "поставь SpeedButton" наталкивает на мысль, что необходим активный Edit "в момент" нажатия кнопки?


Германн   (2010-12-25 02:36:00) [13]


> Anatoly Podgoretsky ©   (25.12.10 02:14) [7]
>
> > Германн  (25.12.2010 01:02:04)  [4]
>
> В случае TButton это TButton
>

Т.е. "Телепатор" ты заранее отказался включать?


Anatoly Podgoretsky   (2010-12-25 02:14:00) [14]

> Германн  (25.12.2010 01:02:04)  [4]

В случае TButton это TButton


Германн   (2010-12-25 01:46:00) [15]

Такая "разноплановость" ответов наталкивает на мысль настоятельно посоветовать автору прочитать о "бессмертной Саге о X, Y и Z".
http://www.gunsmoker.ru/2008/10/x-y-z.html


Anatoly Podgoretsky   (2010-12-25 01:19:00) [16]

> Олег Крапивин  (24.12.2010 23:42:00)  [0]

Кнопку поставь SpeedButton


Германн   (2010-12-25 01:02:00) [17]


> А как мне выйти на компонеты Tedit формы?

Form1.ActiveControl ?


Eraser   (2010-12-25 01:00:00) [18]

> [0] Олег Крапивин   (24.12.10 23:42)

TButtonedEdit


Игорь Шевченко   (2010-12-25 00:50:00) [19]


> А как мне выйти на компонеты Tedit формы?


Edit1
Edit2
...


12   (2010-12-25 00:00:00) [20]

z.b.
for i := 0 to componentscount -1 do
if components[i] is tedit then tedit(components[i]).text := tedit(components[i]).name


Наверх

Титульная страница Поиск, карта сайта Написать письмо