У нас постоянно появляются вопросы. Не забывайте заглядывать на форум.
Задавайте свои вопросы и отвечайте на чужие. Новая очень интересная статья
на мелководье. Как создать Web
приложение с помощью Delphi. Просто и доступно. Полным ходом идет
пополнение сокровищницы. Люди стали
обращать внимание на коммерческие программы. А это значит, необходимо
срочно и вам застолбить место на сайте. Пишите
скорее нам, какую свою программу вы хотите выставить на всеобщее обозрение.
Свойства, методы, события, типы, классы
BoundsRect
Определяет прямоугольник, описывающий компонент, в координатах содержащего
его контейнера.
Класс TControl
Определение
TPoint = record
X : Longint;
Y : Longint;
end;
TRect = record
case Integer of
0 : (Left, Top, Right, Bottom; Integer);
1 : (TopLeft, BottomRight : TPoint);
end;
Property BoundsRect : TRect;
Описание
Свойство BoundsRect использует тип TRect и позволяет получить одновременно
координаты пикселей всех четырех углов компонента. Иной способ получить
те же координаты - использовать свойства компонента Left (левый край),
Top (верхний край), Width (ширина), Height (высота) и соответствующие
вычисления. Иначе говоря, при чтении данных эквивалентны следующие выражения:
Началом координат считается левый верхний угол родительского окна.
Отмеченная выше эквивалентность выражений для различных свойств справедлива
только при чтении данных. Но присвоить целое значение, например, свойству
BoundsRect.Left нельзя. Присвоить значение можно только всей структуре
BoundsRect.
При задании значений BoundsRect удобно пользоваться функцией Rect, принимающей
координаты сторон прямоугольника и возвращающей структуру типа TRect.
Помимо перечисленных свойств, определяющих размеры компонента, имеются
еще свойства ClientWindth и ClientHeight, определяющие размеры его клиентской
области. Эти размеры равны или меньше размеров Width и Height.
Свойства, определяющие координаты компонента, полезны в задачах, требующих
изменения размеров или перемещения компонентов.
Примеры
1. Пусть панель Panel1 может менять свою длину при изменении пользователем
размеров окна (например, имеет значение Align = alTop). И пусть в середине
этой панели имеется метка StaticText1 типа StaticText, которая при всех
изменениях должна оставаться посередине, не изменяя своих размеров. Это
можно осуществить, вставив в обработчик событий формы OnResize и OnShow
оператор:
StaticText1.Left := (Panel1.BoundsRect.Left + Panel1.BoundsRect.Right
- StaticText1.Width) div 2;
Впрочем, того же эффекта можно добиться и не прибегая к свойству BounsRect,
заменив приведенный оператор на следующий:
StaticText1.Left := Panel1.Left + (Panel1.Width - StaticText1.Width) div
2;
2. Пусть мы хотим, чтобы при нажатии некоторой кнопки окно текстового
редактора Memo1 перемещалось в новую заранее определенную позицию с новыми
определенными размерами. Мы можем в нужной позиции разместить панель Panel1
с нужными размерами, сделать ее невидимой, а в нужной всего один оператор:
Memo1.BoundsRect := Panel1.BoundsRect;
3. Пусть мы хотим взаимно поменять местами расположения двух одинаковых
по размерам панелей Panel1 и Panel2. Это можно сделать следующими операторами:
var rec : TRect;
…
rec := Panel1.BoundsRect; //Запоминание позиции Panel1
Panel1.BoundsRect := Panel2.BoundsRect; //Перемещение Panel1
Panel2.BoundsRect := rec; //Перемещение Panel2
4. Пример задания BoundsRect с помощью функции Rect. Пусть окно текстового
редактора Memo1 расположено на родительской панели Panel1, размеры которой
во время выполнения могут изменяться при изменении размеров формы. Надо,
чтобы размер Memo1 также изменялся, но по отношению к клиенткой области
Panel1 оставлял слева, внизу и справа зазор в 10 пикселей (для более приятного
вида), а сверху - зазор 40 пикселей (для размещения заголовка окна). Это
можно сделать, поместив в обработчик события OnResize панели Panel1 оператор:
Memo1.BoundRect := Rect (10,40,Panel1.ClientWindth - 10,Panel1.ClientHeight
- 10);
5. Примеры использования свойства BoundsRect приведены также в разделах
BringToBront и Visible.
Толковый словарь дельфина
Рюхать - изучать компьютерные программы. Сансел - так некоторые называют "батон", выполняющий
cancel и скрывающийся под именем Escape или Esc. Сайт - то, часть чего вы сейчас просматриваете :-) Сантехник - специалист, обслуживающий компьютеры фирмы Sun. Сдохнуть - перестать работать, испортиться. Например "винчестер
сдох". Сидюк - 1) Привод CD-ROM, CD-RW. 2) Диск CD-ROM. Синий экран - предсмертное сообщение операционной системы. Сисадмин - системный администратор. Скандировать - (глагол) проверять винчестер на наличие ошибок программой
ScanDisk. Склероз - оперативная память, синоним мозгов. Снести - деинсталлировать программу, удалить операционную систему. Солярка - операционная система Solaris (SUN). Софт, софтина (soft) - программное обеспечение. Спам - непрошеная рекламная почта. Таракан в тапочках - микросхема в панельке, съемная. Например микросхема
BIOS. Телевизор - монитор компьютера Тетя Ася - см. Аська. Топик (topic) - тема. Тракторист - (терминология квакеров) - человек, играющий в к/л
компьютерную игру (особенно разные версии Quake) без помощи мыши, только
с клавиатуры. Трэй - панель задач Windows. "Значек в трэе" чаще указывает
на ее правую часть, рядом с часами. Тулз (tools) - 1) общее название для слесарного инструмента (отвертка,
пассатижи...) 2) Программное средство разработки, утилита. УПС - (UPS) источник бесперебойного питания. Фак (FAQ) - Frequently Asked Questions (Наиболее часто задаваемые
вопросы). Совокупность ответов на вопросы (справочник), по мнению автора
наиболее часто задаваемых по конкретной теме. Иногда употребляется в уничижительном
смысле по отношении к техническому, научному и прочее уровню некоего документа. Фартук - ярлык (Shortcut) в виндах.