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