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

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

Имя компонента [D5, Win2k]


den74 ©   (2004-10-09 01:07:00) 

Подскажите как программно узнать имя компонент на котором установлен focus,  и записать его в переменную string.

спасибо


Юрий Зотов   (2004-10-09 08:41:00) [1]

> [0], [1], [2]
Screen.ActiveControl.Name
:о)


Rouse_   (2004-10-09 03:45:00) [2]

А, тут же фокус нужен, тогда GetFocus а не WindowFromPoint, но почитай хелп по функции и обрати внимание на потоки...


Rouse_   (2004-10-09 03:41:00) [3]

Компонентов вообще нет, это обертки... см. [4] GanibalLector ©   (09.10.04 01:57) ы?

обычно (если по сабжу) делают так:

var
 P: TPoint;
 H: THandle;
 Buffer: array [0..255] of Char;
begin
 GetCursorPos(P);
 H:= WindowFromPoint(P);
 GetClassName(H, Buffer, SizeOf(Buffer));
 Label1.Caption := 'ClassName - ' + StrPas(Buffer);


Германн   (2004-10-09 02:54:00) [4]

2 НовичОк ©   (09.10.04 01:42) [3]
Не забывай, что в в другом приложении может не быть "компонентов" вообще!


GanibalLector   (2004-10-09 01:57:00) [5]

но что делать если надо узнать имя компонента в другом приложении?

GetClassName


НовичОк   (2004-10-09 01:42:00) [6]

Это легко, но что делать если надо узнать имя компонента в другом приложении?


den74   (2004-10-09 01:38:00) [7]

Спасибо, разобрался


programania   (2004-10-09 01:28:00) [8]


var
 I: Integer;
 Temp: TComponent;
 s:string;
begin
with form1 do
for I :=0 to  ComponentCount - 1 do begin
  Temp := Components[I];
  if Temp is tButton then
  if tButton(Temp).focused then s:=temp.name;
//и т.д. для всех типов что есть
end;


Наверх

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