Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как узнать имя контрола


Автор: ivan219 14.1.2006, 23:26
Вобщем вопрос в том как я могу узнать имя контрола с которым я работаю к премеру Edit1 но при этом неисползовать процедуры типа OnClik или подобных smile

Т.е. мне надо тапа такого A:=Edit1.Text; A:=Edit2.Text; A:=Edit3.Text; соответственно.

Автор: Poseidon 14.1.2006, 23:41
Цитата(ivan219 @ 14.1.2006, 22:26 Найти цитируемый пост)

Вобщем вопрос в том как я могу узнать имя контрола с которым я работаю к премеру Edit1

Edit1.Name

Цитата(ivan219 @ 14.1.2006, 22:26 Найти цитируемый пост)

Т.е. мне надо тапа такого A:=Edit1.Text; A:=Edit2.Text; A:=Edit3.Text; соответственно.
Не понял, это к чему? Зачем А присваивать три раза значение, если останется все-равно последнее?

Автор: darkart 15.1.2006, 00:19
Вопрос, по-конкретнее плиз, к примеру:
Навешиваешь на OnChange Editoв один и тот же код:
Код

procedure TForm1.Edit1Change(Sender:TObject);
begin
  A:=(Sender as TEdit).Text;{этот обработчик ставишь у всех editoв}
end;

A определена выше.
В данном случае в sender будет ссылка на объект, для которого вызван метод OnChange.

Автор: ivan219 15.1.2006, 01:04
Нет всё решилось спасибо darkart за его код
Код

procedure TForm1.EditChange(Sender:TObject);
begin
  A:=(Sender as TEdit).Text;
end;

Автор: FRAGNATIC 15.1.2006, 01:10
ivan219
теноверное пример darkart
подаёдёт
но мона и так
вот те код двух процедур из моего како-то приложения
думаю заюзаных в этом коде ф-е те хватит палюбому=)
Код

procedure TForm1.SetCaptions;
var
  i: integer;
  m:TMenuItem;
  e:TEdit;
begin
  for i:=1 to 52 do
  begin
    m:=FindComponent('N'+inttostr(i)) as TMenuitem;
    if m=nil then continue;
    e:=FindComponent('Edit'+inttostr(i)) as TEdit;
    if e=nil then continue;
    m.caption:=e.text;
  end;
end;

procedure TForm1.N1Click(Sender: TObject);
var
  Jv: TJvFilenameEdit;
  s: string;
begin
   if Length(TMenuItem(sender).Name)=2 then
     s:=copy(TMenuItem(sender).Name,length(TMenuItem(sender).Name),1)
   else
     if Length(TMenuItem(sender).Name)=3 then
     s:=copy(TMenuItem(sender).Name,length(TMenuItem(sender).Name)-1,2);


   Jv:=FindComponent('JvFilenameEdit'+s) as TJvFilenameEdit;
   if jv.Text<>'' then
     ShellExecute(handle, 'open', PChar(Jv.Text), '', '', sw_show)
   else ShowMessage('Файл не указан');
end;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)