Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

ClientToParent и ParentToClient

CuBook05

Описание

Метод ClientToParent (введен в C++Builder 6) преобразует координаты точки Point данного компонента в систему координат родительского компонента АPаrent. Метод ParentToClient осуществляет обратное преобразование. Компонент AParent может быть непосредственным родителем - контейнером, содержащим данных компонент. А может быть одним из его предшественников - компонентом, который можно найти по цепочке ссылок свойств Parent.
Если параметр AParent равен NULL или просто не задан, подразумевается непосредственный родитель данного компонента.
Если параметр AParent не соответствует родительскому компоненту или если свойство Parent данного компонента равно nil, генерируется исключение ElnvalidOperation.
 
Классы

TControl
 
Определение

struct TPoint
{
int x;
int y;
};
TPoint __fastcall ClientToParent(const TPoint Point, TWinControl *AParent = (TWinControl*) NULL);
Types::TPoint __fastcall ParentToClient(const Types::TPoint &Point,TWinControl* AParent = (TWinControl*) NULL);
 
Пример

Пусть в вашем приложении имеется панель Panel1, размещенная непосредственно на форме Form1 или на какой-то другой панели. И пусть на панели Panel1 размещена панель Panel2. Вы хотите, чтобы при щелчке на некоторой кнопке панель Panel2 размещалась непосредственно на форме Form1, не изменяя при этом своего положения. Это может потребоваться, например, чтобы Panel2 не сдвигалась при перетаскивании панели Panel1.
TPoint Coord = Panel1->ClientToParent(Point(Panel2->Left,Panel2->Top),Form1);
Panel2->SetBounds(Coord.x, Coord.y, Panel2->Width, Panel2->Height);
Panel2->Parent = Form1;
Первый оператор переводит координаты левого верхнего угла панели Panel2, которые заданы в системе координат контейнера Panel1, в систему координат формы Form1 и запоминает эти координаты в переменной Coord. Следующий оператор изменяет координаты левого верхнего угла панели Panel2. А последний оператор размещает панель Panel2 непосредственно на форме Form1. Если панель Panel1 размещается непосредственно на форме, то второй параметр (Form1) в вызове ClientToParent можно вообще не указывать или задать равным NULL.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить