Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.14;
Скачать: CL | DM;

Вниз

Координаты компонета относительно Owner   Найти похожие ветки 

 
FormCoord   (2003-06-27 13:34) [0]

Казалось бы простая задача:

Есть единственная форма приложения - Form. На форме панель – Panel. На панели – кнопка -Button. (Form – Panel - Button)

Как узнать смещение кнопки в точках от левого и верхнего края формы?

Left и Top измеряются от начала ClientRect, поэтому простым суммированием не получится. В вопросе – частный случай, может быть (Form – Panel – Panel - Button) итд.
Спасибо.


 
vuk ©   (2003-06-27 13:39) [1]

ClientToParent


 
FormCoord   (2003-06-27 13:46) [2]

ClientToScreen?
ClientToParent не нашел...
Нельзя пример?
Спасибо.


 
vuk ©   (2003-06-27 13:50) [3]

Версия Delphi поди ниже 6? Тогда да.
Реализовано оно так:

function TControl.ClientToParent(const Point: TPoint; AParent: TWinControl): TPoint;
var
LParent: TWinControl;
begin
if AParent = nil then
AParent := Parent;
if AParent = nil then
raise EInvalidOperation.CreateFmt(SParentRequired, [Name]);
Result := Point;
Inc(Result.X, Left);
Inc(Result.Y, Top);
LParent := Parent;
while LParent <> nil do
begin
if LParent.Parent <> nil then
begin
Inc(Result.X, LParent.Left);
Inc(Result.Y, LParent.Top);
end;
if LParent = AParent then
Break
else
LParent := LParent.Parent;
end;
if LParent = nil then
raise EInvalidOperation.CreateFmt(SParentGivenNotAParent, [Name]);
end;


 
Calm ©   (2003-06-27 13:52) [4]

А чего в "Потрепаться"?


 
FormCoord   (2003-06-27 13:54) [5]

Да, D5. Спасибо большое.


 
KSergey ©   (2003-06-27 14:22) [6]

Я по простоте своей делал так:

pt := Control1.ClientToScreen (pt);
pt := Control2.ScreenToClient (pt);

Control1 - тот, в координатах которого задана интересующая координата точки pt, Control2 - тот, в координатах которого надо интересующую точку получить



Страницы: 1 вся ветка

Текущий архив: 2003.07.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-44689
Bel
2003-06-30 18:33
2003.07.14
Excel Worksheets default?


14-44858
kaif
2003-06-26 02:20
2003.07.14
Сегодня настоящий праздник


1-44678
BOA_KAA
2003-06-30 13:31
2003.07.14
TDriveComboBox


14-44875
Vlad Oshin
2003-06-26 11:21
2003.07.14
Задачка. (DiamondShark


3-44597
Ann
2003-06-21 11:12
2003.07.14
FreeReport