Текущий архив: 2005.07.31;
Скачать: CL | DM;
ВнизАбсолютные координаты компонента Найти похожие ветки
← →
xroot (2005-07-10 16:07) [0]Компонент может находится на форме или на панели расп. на форме. или на панели расп. на другой панели.
Как найти координаты компонента относительно экрана, а не формы илм его родителя (панель).
← →
xgreen (2005-07-10 16:39) [1]ClientToScreen
← →
xroot (2005-07-10 17:50) [2]Выдает не те координаты (не коорд текущего компонента)
FormMsg.Top := (Form.Components[i] as TWinControl).ClientToScreen((Form.Components[i] as TWinControl).ClientOrigin).Y;
FormMsg.Left := (Form.Components[i] as TWinControl).ClientToScreen((Form.Components[i] as TWinControl).ClientOrigin).X;
← →
Anatoly Podgoretsky © (2005-07-10 18:15) [3]xroot (10.07.05 17:50) [2]
Такого за ним не замечено.
← →
xroot (2005-07-10 18:20) [4]По идее, форма должна показываться прямо на текущем компоненте (верхний леый угол должен у них совпадать). Этого не происходит. Она вообще появляется 4ерте где.
← →
begin...end © (2005-07-10 18:20) [5]> xroot (10.07.05 17:50) [2]
var
P: TPoint;
begin
P := (Form.Components[...] as TWinControl).ClientToScreen(Point(0, 0));
ShowMessageFmt("Left: %d Top: %d", [P.X, P.Y])
end.
← →
xgreen (2005-07-10 21:44) [6]
> xroot (10.07.05 17:50) [2]
> Выдает не те координаты (не коорд текущего компонента)
> xroot (10.07.05 18:20) [4]
> По идее, форма должна показываться прямо на текущем компоненте
> (верхний леый угол должен у них совпадать). Этого не происходит.
> Она вообще появляется 4ерте где.
Хм. Ну так понятно: ClientToScreen превращает координаты компонента в экранные координаты. А если тебе необходимо компонент отобразить, к примеру, на другой форме, то воспользуйся вторым преобразованием ScreenToClient, но опять же орабти внимание на расположение этой формы на экране, иначе координаты могут оказаться за пределами формы.
Страницы: 1 вся ветка
Текущий архив: 2005.07.31;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.037 c