Главная страница
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.47 MB
Время: 0.024 c
14-44912
Bayer_Linse
2003-06-29 02:03
2003.07.14
Задача №1


6-44790
ArtAlex
2003-05-09 00:31
2003.07.14
web-формы


1-44657
Manfred
2003-07-02 11:24
2003.07.14
Вызов прцедур во время события OnCreate()


3-44541
diokant
2003-06-18 14:13
2003.07.14
Подскажите как в DBGrid1 отображать только часть записей, а при


1-44626
Пубертанец
2003-06-30 09:37
2003.07.14
Почему не работает код?