Как получить глобальные координаты компонента?

Здравствуйте, я хочу открыть диалоговое окно рядом с компонентом (который находится в окне предпросмотра).

Как получить глобальные координаты (в пикселях) этого компонента?

P.S. Пробовал через ClientToScreen, не получилось.

Комментарии

  • Может, это поможет

    unit Unit1;


    interface


    uses

     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

     Dialogs, frxClass, Types, ExtCtrls;


    type

     TForm1 = class(TForm)

       frxReport1: TfrxReport;

       Timer1: TTimer;

       procedure frxReport1MouseOverObject(Sender: TfrxView);

       procedure FormCreate(Sender: TObject);

       procedure Timer1Timer(Sender: TObject);

     private

       { Private declarations }

     public

       { Public declarations }

     end;


    var

     Form1: TForm1;

     h: THintWindow;

     p, p_new: TPoint;


    implementation


    {$R *.dfm}


    procedure TForm1.frxReport1MouseOverObject(Sender: TfrxView);

    begin

     Timer1.Enabled:=False;

     if Sender.Name = 'Memo1' then

       begin

         GetCursorPos(p);

         h.Hide;

         h.ActivateHint(Rect(p.x+10,p.y+10,p.x+110,p.y+30),sender.Description);

         Timer1.Enabled:=True;

       end;

    end;


    procedure TForm1.FormCreate(Sender: TObject);

    begin

        h:=THintWindow.Create(Owner);

        frxReport1.ShowReport;

    end;


    procedure TForm1.Timer1Timer(Sender: TObject);

    begin

     Timer1.Enabled:=False;

     GetCursorPos(p_new);

     if (p.x<>p_new.x) or (p.y<>p_new.y) then

       h.ReleaseHandle

     else

       Timer1.Enabled:=True;

    end;


    end.


  • Это не совсем то что нужно, я ведь не могу мышку по всем объектам водить.

    У компонентов (например, TfrxCellularText) есть скрытые свойства FX и FY, они точно показывают координаты компонента относительно окна предпросмотра. Если бы разработчики смогли сделать это свойство публичным, то это решило бы вопрос.

    Пока решил этот вопрос через переопределение класса с публичными параметрами:

     TMyCellularText = class(TfrxCellularText)

     public

      property GlobalX: Integer read FX;

      property GlobalY: Integer read FY;

     end;

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.