PDA

Ver la Versión Completa : Sobre lectura de componentes


viveba
16-05-2007, 02:29:06
Hola!!

Quisiera saber cómo puedo recuperar los datos (posición, tamaño, etc) de un control ubicado debajo del cursor en Delphi 7.

Desde ya, gracias a todos.

roman
16-05-2007, 08:25:59
Utiliza la función FindVCLWindow (de la unidad Controls). Un ejemplo:


procedure GetControlInfo(Info: TStrings);
var
Control: TWinControl;

begin
Control := FindVCLWindow(Mouse.CursorPos);

if Assigned(Control) then
begin
Info.Values['class'] := Control.ClassName;
Info.Values['name'] := Control.Name;
Info.Values['height'] := IntToStr(Control.Height);
Info.Values['left'] := IntToStr(Control.Left);
Info.Values['top'] := IntToStr(Control.Top);
Info.Values['width'] := IntToStr(Control.Width);
end;
end;


El procedimiento coloca en Info, datos acerca del control que esté bajo el cursor al momento de llamarlo. El formato de los datos es

propiedad=valor

de manera que quede cómodo pasarlo a un ValueListEditor.

// Saludos

Neftali [Germán.Estévez]
16-05-2007, 11:06:34
Control := FindVCLWindow(Mouse.CursorPos);


Esta no la conocía... :D

Bicho
16-05-2007, 11:23:01
Execelente!!! :)

casi 11000 mensajes y no deja de sorprender. ;)
Yo tampoco la conocía.

Saludos

seoane
16-05-2007, 13:08:27
Vaya, hay funciones para todo. Si la cosa sigue así, cualquier día crearan la función "Mata_a_flanders" :D

viveba
16-05-2007, 23:24:43
Desde ya que te debo una!!!

Muchísimas gracias, ya mismo lo probaré.