Главная страница
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.014 c
14-44802
Zelius
2003-06-25 21:31
2003.07.14
Пропали Хинты в Delphi и во всех моих прогах :(


14-44870
Bill
2003-06-27 12:27
2003.07.14
Преобразование строки в математическое выражение


3-44570
DevMaster
2003-06-20 12:09
2003.07.14
dxMasterView


1-44681
Alles
2003-06-30 16:38
2003.07.14
русский - автомат


1-44632
ЮРИЙ_К
2003-07-02 08:58
2003.07.14
Добавление строки в RichView или ему подобные с позиционированием