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

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

Как узнать по какому именно Edit(у) кликнули... [D7, XP]


EugenNFP ©   (2007-11-21 10:33:00) 

Здраствуйте!

  Есть, например, 5 эдитов, я кликаю по одному из них и мне нужно передать ему текст. Обычная процедура буттон клик для каждого эдита не подходит... хотел универсальную для всех одну, т.к. текст передается один и тот же...

 И можно ли будет передавать с другой формы этот текст?

Спасибо большое... )


Германн   (2007-11-21 12:57:00) [1]


> EugenNFP   (21.11.07 11:02) [5]
>
> по сути из события можно определить, что за объект участвует
> в нем...  скопировать путь к объекту (event.element) в переменную
> и передать на вторую форму
>
> как нить так?
>

А на хрена? Зачем нужна какая-то переменная хранящая "путь к объект"? (Брр. Чушь какая-то)
procedure Edit1Click(Sender: TObject);
begin
 Form2.ShowModal;
 TEdit(Sender).Text:=Form2.XXX.XXX;
end;


Johnmen   (2007-11-21 12:01:00) [2]


> EugenNFP   (21.11.07 11:58) [13]
> Ну я, наверное,
>  и на форум пришел спросить чего-то, а не показывать свои
> знания...

Надо не показывать, а иметь. Чтобы понимать ответы.

> А у вас есть по ходу дела всего лишь базовые знания... вот
> и все... и куча непонятной гордости за самого себя...

Сейчас расплачешься?


EugenNFP   (2007-11-21 11:59:00) [3]


> if Sender is TEdit then selEdit := TEdit(Sender);


Респект!
Сам тоже к этому пришел ))) ;)


EugenNFP   (2007-11-21 11:58:00) [4]


> У тебя нет базовых знаний, вот и кажется и всё остальное.
> ..


У вас тут понятие базовых знаний... ))))  Ну я, наверное, и на форум пришел спросить чего-то, а не показывать свои знания... базовые к тому же... язык я сам выучил... просто ни в одной книге, из имеющихся у меня про это не сказано...

Форум для начинающих ))))

А у вас есть по ходу дела всего лишь базовые знания... вот и все... и куча непонятной гордости за самого себя...

Спасибо за помощь! Извините, накопилось... :((((


{RASkov}   (2007-11-21 11:53:00) [5]

> [11] EugenNFP   (21.11.07 11:50)

if Sender is TEdit then selEdit := TEdit(Sender);

и потом [8]


EugenNFP   (2007-11-21 11:50:00) [6]

selEdit := Sender;  так нельзя TEdit & TObject  нужно переменную создать типа TObject


Johnmen   (2007-11-21 11:49:00) [7]

У тебя нет базовых знаний, вот и кажется и всё остальное...


EugenNFP   (2007-11-21 11:47:00) [8]

не знаю... ) у меня сложилось так в голове после этой строчки:

if Sender is TEdit then TEdit(Sender).Text:='My Text'

почему не так... аналогично)) может быть и так... сейчас проверю..

if Sender is TEdit then Sender.Text:='My Text'

а это уже кажется как то не правильным )) хм...


Johnmen   (2007-11-21 11:43:00) [9]

Почему не selEdit.Text := 'Text';?


EugenNFP   (2007-11-21 11:41:00) [10]

Понял... ) извини... конструкция работает все ок )))

 Можно ли сохранить Sender?

public
var
  selEdit : TEdit;

.  .  .

if Sender is TEdit then selEdit := Sender; //Так можно?
_____________________________________________

А потом обратиться
Form2.TEdit(selEdit) := 'Text';


{RASkov}   (2007-11-21 11:09:00) [11]

> А по поводу этого вы не уверены?

Почему это я должен быть уверен?? Если этот вопрос мне....
Я в ответах своих уверен...
:о)
или ты про "if Sender is TEdit then"
то скажу, что в данном случае может это и не обязательно, но так делать правильно, так как потом ты можешь данный обработчик назначить и другому объекту, например Button или Image, а у них нет свойства Text и будет АВ....


> [5] EugenNFP   (21.11.07 11:02)

Ты на каком языке разговариваешь?
Давай на русском или делфийском....:)


EugenNFP   (2007-11-21 11:02:00) [12]

по сути из события можно определить, что за объект участвует в нем...  скопировать путь к объекту (event.element) в переменную и передать на вторую форму

как нить так?


EugenNFP   (2007-11-21 11:00:00) [13]

=)))

  Вот про Sender это как раз то что нужно... синтаксис не помню наглухо...

При клике у меня открывается вторая форма из которой я делаю программный ввод текста в выбранный эдит.

А по поводу этого вы не уверены?
if Sender is TEdit then TEdit(Sender).Text:='My Text';


{RASkov}   (2007-11-21 10:47:00) [14]

> И можно ли будет передавать с другой формы этот текст?

Эдиты на форме 1. По нажатию кнопки на форме 2

procedure Form2.ButtonClick();
begin
 Form1.Edit1.Text:='My Text';
end;

в uses c модулем где объявлена Form2 добавить модуль с объявленной Form1....
Оно?


Johnmen   (2007-11-21 10:44:00) [15]

Вот и укажи для всех одну. Например, определенную для первого.


{RASkov}   (2007-11-21 10:43:00) [16]

> Как узнать по какому именно Edit(у) кликнули...

У методов есть параметр Sender - это и есть тот самый объект, который вызвал данный метод.
Т.е. назначаешь всем эдитам один на всех обработчик OnClick и нечто так:
if Sender is TEdit then TEdit(Sender).Text:='My Text';

> И можно ли будет передавать с другой формы этот текст?

Гы.... а при чем здесь клик?


Наверх

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