![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать по какому именно 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';
> И можно ли будет передавать с другой формы этот текст?
Гы.... а при чем здесь клик?