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


Автор: CHERRY 27.8.2012, 19:42
На форме несколько компонентов, среди них (например) 2 TMemo и 1 TRichEdit.
Мне нужен компонент, который сейчас имеет фокус.
Код

function TfmMain.GetComp:TComponent;
var i: integer;
Begin
 Result:=Nil;
 for i := 0 to ComponentCount - 1 do
 Begin
  if Components[i] is TMemo then
     if (Components[i] as TMemo).Focused then Result:=Components[i];

  if Components[i] is TRichEdit then
     if (Components[i] as TRichEdit).Focused then Result:=Components[i];

 End;
End;


в результате имеем:
Код

 if GetComp<>Nil then   Showmessage(GetComp.GetNamePath);
 

код вернет Memo1 или Memo2 или RichEdit1 (понятно, если так названы компоненты).

Теперь вопрос.
Хотелось бы написать функцию, возвращающую сам компонент(экземпляр компонента), обратившись к которому
получаем доступ к свойствам оного.
Типа  -  GetComp.Lines 

Автор: CHERRY 27.8.2012, 20:02
Может быть поможет Tag? Никогда не пользовался этим свойством.

Автор: northener 28.8.2012, 01:38
Цитата(CHERRY @  27.8.2012,  19:42 Найти цитируемый пост)
Теперь вопрос.
Хотелось бы написать функцию, возвращающую сам компонент(экземпляр компонента), обратившись к которому
получаем доступ к свойствам оного.
Типа  -  GetComp.Lines 

А в чём проблема? И TMemo и TRichEdit  имеют свойство Lines : TStrings. Смотрим в хелпе и видим, что данное свойство введено в TCustomMemo. 
Копайте дальше сами.

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