Прозрачность в delphi 6


Прозрачность в delphi 6

Сегодня:

Последние:
— 29.11, 09:46 / #6691
— 29.03, 23:32 / #6682
— 30 апреля 2012

Сейчас онлайн:
На сайте — 10
На IRC-канале — 2

Обзор свойств компонент

Пришло время подробнее ознакомиться со свойствами компонент. И начнём мы с базового элемента любого оконного приложения — формы. Свойств у формы достаточно много, и в разных версиях Delphi их набор может немного отличаться. Здесь будет рассмотрение свойств на основе Delphi 7.

Action — определяет объект TAction. Это объект служит для быстрой привязки действий к компонентам, в особенности — к пунктам меню и панелям инструментов. Но может быть привязан и к форме. Для управления TAction служат редакторы TActionList со страницы Standard и TActionManager со страницы Additional.

ActiveControl — определяет элемент, который имеет в данный момент фокус ввода. Если выбрать какой-либо объект во время разработки (design-time), то при запуске приложения этот объект и будет иметь фокус ввода. Также свойство может быть полезно и во время выполнения (run-time) — можно узнать, какой объект «держит» фокус в данный момент, а также можно переместить фокус на любой из объектов. Пример: разместим на форме 2 кнопки — Button1 и Button2, а также TTimer (страница System). Выбрав элемент Timer1, дважды щёлкнем в Инспекторе объектов напротив надписи OnTimer на вкладке Events, т.е. создадим обработчик события и напишем следующее: ActiveControl:=Button2; Теперь, запустив программу, каждую секунду фокус будет перемещаться на Button2.

Align — определяет выравнивание формы на экране. Свойство принимает одно из следующих значений:

  • alBottom — по нижнему краю;
  • alClient — вся пользовательская (клиентская) область;
  • alCustom — выравнивание определяется вызовом методом объекта-родителя;
  • alLeft — по левому краю;
  • alNone — без выравнивания;
  • alRight — по правому краю;
  • alTop — по верхнему краю.

AlphaBlend — включает/выключает прозрачность формы.

AlphaBlendValue — задаёт степень непрозрачности формы: 0 — форма полностью невидима, 255 — полностью видима. Прозрачность активируется только при установке свойства AlphaBlend в True.

Anchors — определяет направления, по которым компоненты «привязываются» к форме. Пример: если установить у формы значения akLeft и akRight этого свойства в True, и точно также сделать у кнопки, то при изменении ширины формы размер кнопки (ширина) также будет изменяться.

AutoScroll — включает автоматическое появление полос прокрутки (Scroll bars) на форме, когда размеров формы недостаточно для отображения всех элементов.

AutoSize — включает автоматическое изменение размеров формы согласно позициям размещённых на ней элементов.

BiDiMode — определяет двунаправленное отображение элемента. В некоторых языках письмо осуществляется не слево-направо, а наоборот. Это свойство создано как раз для этой цели.

BorderIcons — определяет множество кнопок, которые отображаются в заголовке окна:

  • biSystemMenu — единственный элемент, который не является кнопкой — отвечает за системное меню окна, которое вызывается комбинацией клавиш [Alt]+[Пробел].
  • biMinimize — кнопка сворачивания (минимизации) окна;
  • biMaximize — кнопка разворачивания окна;
  • biHelp — кнопка справки.

Если хотя бы одна из кнопок сворачивания и разворачивания включена, то независимо от состояния другой, отображаются обе (но вторая естественно неактивна). Если выключены обе, они не отображаются вообще. Это не зависит от Delphi — так устроена ОС Windows.

BorderStyle — определяет поведение границ окна и общий тип окна:

  • bsDialog — диалоговое окно (из кнопок — только «Закрыть», иконки в заголовке окна нет);
  • bsNone — «чистый лист» (отсутствие у окна границ и заголовка) — применяется обычно для создания заставок во время запуска программы;
  • bsSingle — обычное окно, но с запретом изменения размеров;
  • bsSizeable — обычное окно (по умолчанию) — размеры формы можно изменять;
  • bsSizeToolWin — упрощённое окно с уменьшенным заголовком;
  • bsToolWindow — упрощённое окно с уменьшенным заголовком без возможности изменения размеров.

BorderWidth — ширина границы окна в пикселах. Граница является невидимой и расположена в пользовательской части формы.

Caption — текст заголовка формы.

ClientHeight, ClientWidth — размер клиентской (пользовательской) части формы, т.е. той, на которой располагаются компоненты.

Color — цвет формы.

Constraints — определяет минимальные и максимальные размеры высоты и ширины формы в пикселах. 0 — любое значение, т.е. без ограничений.

Ctl3D — свойство определяет 3D-вид формы. При выключенном — «плоское» изображение.

Cursor — курсор мыши в тот момент, когда он находится над формой.


DefaultMonitor — определяет, на каком мониторе появится форма. Имеет смысл применять это свойство только при наличии более, чем одного монитора (например, если несколько экранов).

DockSite, DragKing и DragMode — определяют поведение формы при осуществлении операций Drag&Drop.

Enabled — отвечает за общую активность формы. Если установлено в False, форма недоступна.

Font — шрифт, используемый на форме.

FormStyle — стиль формы или её поведение в MDI-приложении (многооконное приложение, где дополнительные формы располагаются «внутри» основной формы). Значения:

  • fsNormal — обычная форма (значение по умолчанию);
  • fsMDIChild — дочерняя (подчинённая) форма MDI-приложения;
  • fsMDIForm — главная форма MDI-приложения;
  • fsStayOnTop — форма находится поверх всех окон на экране.

Height — высота формы в пикселах. В отличие от ClientWidth является высотой с учётом заголовка и границ формы.

HelpContext, HelpFile, HelpKeyword, HelpType — свойства для связи формы с файлом справки в формате *.hlp.

Hint — текст всплывающей подсказки.

HorzScrollBar — свойство определяет внешний вид и поведение горизонтальной полосы прокрутки окна.

Icon — значок (иконка) формы. Отображается в заголовке слева от заголовка. Задаётся файлом в формате *.ico.

KeyPreview — если свойство установлено в True, то при нажатии клавиш сначала будут вызываться обработчики формы, а только затем обработчики того компонента, который в данный момент имеет фокус ввода. События, связанные с нажатием клавиш — OnKeyDown(), OnKeyPress(), OnKeyUp().

Left — позиция формы на экране (левого верхнего угла) в пикселах.

Menu — позволяет выбрать один из компонентов-меню, который станет главным меню окна, т.е. будет отображаться вверху.

Name — имя формы как объекта. Может содержать только латинские буквы, цифры и знак подчёркивания, и не может начинаться с цифры. Фактически, это то имя, по которому в программе можно обратиться к форме.

ObjectMenuItem — используется при работе с OLE-объектами и позволяет связать пункт меню и OLE-объект: когда объект выделен, пункт меню активен и наоборот.

OldCreateOrder — определяет, когда происходят события OnCreate() и OnDestroy() формы. Если установлено в False, то OnCreate() произойдёт после вызова всех конструкторов, а OnDestroy() — после вызова всех деструкторов. Начальное значение — False, изменять не рекомендуется.

ParentBiDiMode — изменение свойства BiDiMode согласно значению объекта-предка формы.

ParentFont — изменение шрифта (Font) согласно значению объекта-предка.

PixelsPerInch — пропорции шрифта в системе (точек на дюйм).

PopupMenu — позволяет указать контекстное меню (объект TPopupMenu) для формы. Это меню вызывается нажатием правой кнопки мыши.

Position — определяет начальную позицию формы на экране, т.е. в момент её появления. Основные значения:

  • poDesigned — появление в том месте, в каком форма расположена в design-time;
  • poDesktopCenter — по центру рабочего стола (рекомендуемое значение);
  • poScreenCenter — по центру экрана;
  • poMainFormCenter — по центру главной формы приложения (для главной формы не имеет смысла).

PrintScale — определяет размеры формы при выводе её изображения на печать.

Scaled — включает масштабирование формы в соответствии с заданным значением свойства PixelsPerInch.

ScreenSnap — если установлено в True, то форма будет автоматически «прилипать» к краям экрана в момент перемещения.

SnapBuffer — определяет расстояние (в пикселах), на котором форма будет «прилипать» к краю экрана.

ShowHint — включает/выключает показ всплывающей подсказки (Hint).


Tag — специальное свойство, которое есть у всех объектов. Специального применения для этого свойства нет, поэтому оно используется для разных целей в конкретной ситуации. Свойство удобно в том случае, если нужно хранить некоторое целое число — не придётся заводить дополнительную переменную.

Top — позиция формы (левого верхнего угла) на экране в пикселах.

TransparentColor — включает/выключает прозрачность определённого цвета формы.

TransparentColorValue — задаёт цвет, который будет прозрачным.

UseDockManager — используется при реализации Drag&Drop технологии, предоставляя дополнительные возможности этого метода взаимодействия.

VertScrollBar — определяет внешний вид и поведение вертикальной полосы прокрутки окна.

Visible — определяет видимость формы на экране.

Width — ширина окна в пикселах, включая границы.

WindowMenu — свойство-аналог свойства Menu, но используемое при создании MDI-форм.

WindowState — одно из состояний окна:

  • wsNormal — обычное состояние (занимает часть экрана);
  • wsMinimized — окно свёрнуто;
  • wsMaximized — окно развёрнуто на весь экран.

В итоге мы получаем огромное количество свойств, способных изменить как внешний вид формы, так и её поведение, а также поведение компонент, расположенных на ней. Но данная статья незаметно познакомила Вас не только со свойствами формы, но и со свойствами большинства компонент. Дело в том, что компоненты имеют общих «предков», т.е. тех объектов, от которых они образованы, поэтому свойства компонент очень похожи и большая их часть просто-напросто совпадает. Если посмотреть на свойства кнопки (TButton), то сразу можно заметить, что большинство свойств — те же самые, что и у формы. Это позволяет быстро научиться работать с любым незнакомым объектом.

Стоит сделать несколько примечаний насчёт свойств.

  • Свойства прозрачности формы (AlphaBlend, AlphaBlendValue, TransparentColor и TransparentColorValue) корректно работают только на ОС Windows XP и следующих версиях. В предыдущих версиях ОС изменение значения этих свойств не производит визуального изменения формы.
  • Свойства, названия которых начинаются со слова Parent (англ. — родитель), в большинстве случаев связывают значения некоторых свойств со значениями соответствующих свойств объекта-родителя. Так, кнопка (TButton) имеет свойство ParentFont и свойство Font, отвечающее за шрифта текста на этой кнопке. Но и сама форма имеет свойство Font. В результате, если у кнопки установить ParentFont в True, а затем изменить шрифт у формы, то шрифт у кнопки изменится соответствующим образом. Это позволяет быстро изменять одни и те же свойства у большого числа компонент. Другие подобные свойства — ParentShowHint, ParentColor, ParentB >Заключение

В этой статье рассмотрены свойства формы и основные свойства компонент. Изменяя свойства, можно настроить объекты так, как это требуется для реализуемой программы. Объектно-ориентированное программирование в основном и сводится к управлению свойствами объектов.

Автор: Ерёмин А.А.

Статья добавлена: 27 апреля 2007

Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.

Статьи, похожие по тематике

Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:

Ссылка для форумов (BBCode):

Быстрая вставка ссылки на статью в сообщениях на сайте:
<> (буква a — латинская) — только адрес статьи (URL);
<<статья:106>> — полноценная HTML-ссылка на статью (текст ссылки — название статьи).

Поделитесь ссылкой в социальных сетях:

Комментарии читателей к данной статье

Цитата:
Для управления TAction служат редакторы TActionList со страницы Standard и TActionManager со страницы Additional.
Конец цитаты.

Можно узнать более точные координаты редакторов? Использую Delphi 2010.

Репутация: нет
Репутация: +40
Репутация: нет

Оставлять комментарии к статьям могут только зарегистрированные пользователи.

Сделать заголовок формы непрозрачным в delphi. Прозрачность формы

В Delphi 6 разработчикам Windows-приложений доступна одна из замечательных возможностей создавать (полу)прозрачные формы (окна). В Delphi 6 класс TForm поддерживает формы со слоями, которые имеют свойства AlphaBlend, AlphaBlendValue, TransparentColor, и TransparentColorValue. Прозрачность в форме означает то, что пользователь может видить то, что находится позати формы.

Прозрачность в Delphi 6

В Delphi 6 разработчикам Windows-приложений доступна одна из замечательных возможностей создавать (полу)прозрачные формы (окна). В Delphi 6 класс TForm поддерживает формы со слоями, которые имеют свойства AlphaBlend, AlphaBlendValue, TransparentColor, и TransparentColorValue.

Прозрачность в форме означает то, что пользователь может видить то, что находится позати формы.

Чтобы подготовить форму к прозрачности, Вам потребуется установить свойство AlphaBlend в True. Если AlphaBlend установлено в True, то свойство AlphaBlendValue указывает степень прозрачности. Это свойство позволяет задать значения от 0 до 255. 0 указывает на полную прозрачность окна, в то время как 255 указывает на непрозрачное окно.

Так же возможно устанавливать свойства AlphaBlend и AlphaBlendValue во время разработки (или во время выполнения приложения) при помощи Object Inspector.

Следующая форма диалогового окна About имеет значение AlphaBlendValue установленный в 210.

Возможно, Вы подумаете, что такая возможность в Delphi, может Вам пригодиться довольно редко, однако прозрачностью можно довольно эффективно привлекать внимание пользователей Вашей программы:

procedure TAboutBox.FormClose (Sender: TObject; var Action: TCloseAction); var i, cavb: 0..255; begin if AlphaBlend=False then begin AlphaBlendValue:=255; AlphaBlend:=True; end; cavb:=AlphaBlendValue; for i:= cavb downto 0 do begin AlphaBlendValue:= i; Application.ProcessMessages; end end;

Вышеприведённый код, в событие OnClose для формы about, создаёт плавно изменяющийся эффект. Когда пользователь попытается закрыть диалоговое окошко, то форма плавно исчезнет. Делается это путём циклического уменьшения AlphaBlendValue до нуля.

Другие два новый свойства формы в Delphi 6, это TransparentColor и TransparentColorValue. TransparentColor, это булевое свойство, которое указывает, будет определённый цвет, указанный в TransparentColorValue прозрачным. То есть мы можем задать прозрачность только определённому цвету.

В качестве примера, установим TransparentColor для формы About в True. Теперь зададим свойству TransparentColorValue значение clWhite — что соответствует белому. Компонент Memo имеет белый фон, поэтому окошко About будет выглядеть следующим образом:

И взаключении хотелось бы указать на главный недостаток. Все свойства, описанные выше, не будут работать, если приложение запущено не под Windows 2000 или выше, и если процессор на компьютере ниже P90.

АНДРЕЙ ПРОКИП ВЫСКАЗАЛСЯ НА ТЕМУ РАЗВИТИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ФИНАНСОВОЙ СФЕРЕ
Актуальностью темы внедрения информационных технологий в бизнес никого не удивишь, но подавляющее большинство населения России так и не имеет ясного представления о том, что же такое информационные технологии и как они должны применятся на практике.
К примеру ЮНЕСКО, дает определение ИТ как комплекс связанных между собой технологических, инженерных наук, которые изучают методы эффективной организации труда людей, занятых обработкой, хранением и практическим применением информации. Несмотря на изобилие официальных определений важно дать свое. С этим нам помог Андрей Прокип – российский бизнесмен. Этот человек достиг высот в бизнесе и, по его словам, знает насколько важно внедрять информационные технологии на всех этапах деятельности. Он дал нам следующую трактовку: «информационные технологии – это комплекс мер по обеспечению поддержки бизнеса посредством сбора, хранения, обработки и передачи потребителям информации». Известный бизнесмен сделал ударение на то, что необходимо создавать именно систему, то есть комплекс взаимодействующих элементов, которые образуют единство средств и целей бизнеса. Сейчас выражение «кто владеет информацией – тот владеет миром», уже утратило актуальность, как экс-возлюбленная. По мнению Андрея Зиновьевича Прокипа мало владеть информацией, важно использовать и управлять ею в интересах бизнеса!
АНДРЕЙ ПРОКИП О СИСТЕМЕ И КРИЗИСЕ СРЕДНЕГО ВОЗРАСТА
Важно понимать работу системы информационных технологий, где два основополагающих аспекта – это четко отлаженный алгоритм, который дает ожидаемый результат, а второй элемент – форма, в которой представлены результаты. Необходимо чтобы форма была пригодной и понятной при передаче и апробации следующим элементом системы.
Весьма карикатурно Андрей Прокип обрисовал российские реалии и практику на данном этапе: «очевидно, что российское государство пытается внедрять информационные технологии, подобно мужчине средних лет, заимевшего любовницу. Так сказать, стремление есть, желание есть, а как удовлетворить – не знает, потому что аппарат уже устарел))). На старую систему пытаются примерять новые подходы. В связи с этим Андрей Прокип предложил эффективные пути решения основных проблем бизнеса, а также подходов к управлению внутри государства
1. Приведение в соответствие системы образования и требований рынка.
2. Повышение квалификации работников «старой закалки».
3. Автоматизация и внедрение информационных технологий во все сферы бизнес процессов.
Как завил нам бизнесмен каково бы ни было решение – его внедряет и использует человек. Молодых специалистов, на которых возлагают основные надежды – обучают по старинке. Это в корне неверно так как рынок с каждым днем становится динамичнее и выигрывает тот, кто идет в ногу со временем. Также Андрей Прокип, на последнем интервью компании рентв сказал, что государственные предприятия должны брать пример с частного бизнеса. Именно приватные бизнес-структуры задают тон на российском рынке, хоть и со своими ошибками. Необходимо делать ставку на молодых IT специалистов и гнать в шею представителей «старой школы», которые не заинтересованы в оптимизации бизнеса в целом.
Закончил свои интервью бизнесмен цитатой Алана Кейа – «Технология – это то, чего не было, когда вы родились».

Прокип Андрей Зиновьевич выступил в помощь пожилых людей в вопросах кредитования

Со периодом необходимости данных покупателей никуда не пропали, в следствие этого они и в больше зрелом возрасте продолжают воспользоваться кредитными продуктами — это не считается для их кое-чем необыкновенным, — что Прокип Андрей Зиновьевич. — Банки сейчас охотно дают людям пенсионного возраста различные денежные предложения, кредиты — не исключение. Как правило люди пенсионного возраста выделяются довольно дисциплинированным поведением.

Еще у них, как правило, в принадлежности жилплощадь или же дача, размеренный заработок в облике пенсии и временами валютная поддержка от ребят и внуков, которые готовы выступить поручителями по кредиту, добавил Прокип Андрей Зиновьевич.

Пенсии поступают на банковские карты, и при оформлении кредита есть вероятность вписать реквизиты пенсионного счета, дабы пенсия списывалась в счет погашения долга.

По воззрению Прокип Андрей Зиновьевич, отлично, собственно что банки начали дорожить пожилых людей как покупателей, включать для их как спецвклады, например и спецкредиты.

Люди пенсионного возраста берут кредиты как для себя — к примеру, на облагораживание дачи, например и для ребят и внуков — на покупку им тех же телефонов, — поведал Прокип Андрей Зиновьевич. — То есть в любом случае всё персонально.

Ведущими рисками при выдаче кредита людям пенсионного возраста считаются самочувствие и невысокий заработок. 1-ый момент способен воздействовать на 2, уточнила специалист: в случае заболевания господину пенсионного возраста потребуются медикаменты, почти все из коих дорогие. Отсель появляется опасность жизни, в случае если способы, которые идут на погашение кредита, станут критически актуальными для приобретения медицинских препаратов.

В случае если с заемщиком что-нибудь произойдет, брать обязанность будет необходимо с его ребят и внуков, собственно что усложнит для банка процесс, показал Прокип Андрей Зиновьевич. Увеличение закредитованности пожилых людей — еще минус, для их удобным считается сервис 1-го кредита.

Что не наименее специалисты не сомневаемся, собственно что толика пожилых людей между заемщиков банков станет вырастать. По мониторингам в первую половину 2020 года их толика имеет возможность увеличится с текущих 16 до 19–20%.

Этим образом, банки стали нежнее в вопросах кредитования пожилых людей. Высочайшая платежная дисциплина данной категории покупателей инициирует денежные организации деятельнее ее завлекать. Ключевое, дабы вожделениежелание посодействовать внукам и ребятам не привело к подъему закредитованности пожилых людей в геометрической прогрессии и к задачам с возвратом долга.

Эта статья также доступна на следующих языках: Тайский

Как нарисовать прозрачность с альфа-прозрачностью в Delphi?

Я хочу нарисовать довольно сложные изображения с альфа-прозрачными прямоугольниками и альфа-прозрачными изображениями. There is GDI+ wrapper from Mitov, но, похоже, он не поддерживает 32-битные файлы BMP, и он пересказывает их, и документация ужасна. BMP быстрее, чем PNG, поэтому я хочу их использовать. There is SynGDI wrapper of GDI+, но он кажется очень простым, и для него нет документации. Существует также этот трюк для GDI:Как нарисовать прозрачность с альфа-прозрачностью в Delphi?

Но когда я называю его Opacity = 255 она рисует 32-битные растровые изображения не правильно (что-то, что они являются полупрозрачными, где они должны быть полностью). Я не хочу использовать Scanline, чтобы сделать пикселы прозрачными, поскольку это будет слишком сложно, чтобы рисовать все прозрачные прямоугольники таким образом. Также я тонкий GDI + должен быть быстрее на современных компьютерах, верно?

Итак, вопрос: как рисовать альфа-прозрачный прямоугольник и растровое изображение легко (без тонны кода)?


Предпочитаемый Delphi: 7. У меня также есть 2005 и XE3, но поскольку 7 — демон скорости, я бы больше всего хотел, чтобы что-то работало с 7 до.

Если вы можете использовать [ ‘это wrapper’] (http://www.bilsen.com/gdiplus/index.shtml), который поддерживает Delphi 2009, вы можете написать [‘ код как это’] (http://pastebin.com/fcjtHKen), который выглядит довольно сложно, но вам нужно знать, что вы можете изменить [‘color adjustment’] (http://www.codeproject.com/Articles/3772/ColorMatrix-Basics-Simple-Image-Color-Adjustment) с этой цветовой матрицей и что я загружаю файл, который должен быть альфам, смешанным в этом коде (например, вы можете создать «GPBitmap» из переданного объекта «TBitmap»). – TLama

@TLama Спасибо, этот GDI + кажется лучшим до сих пор. Другие дрянные. Один из Progdigy не компилируется (7, ни 2005 или XE3), тот, который из Митова уничтожает изображения после их рисования, тот, что из Synopse является неполным. – Tom

Обучающий курс 6. Обзор свойств компонент в Delphi

Пришло время подробнее ознакомиться со свойствами компонент. И начнём мы с базового элемента любого оконного приложения — формы. Свойств у формы достаточно много, и в разных версиях Delphi их набор может немного отличаться. Здесь будет рассмотрение свойств на основе Delphi 7 .

Action — определяет объект TAction . Это объект служит для быстрой привязки действий к компонентам, в особенности — к пунктам меню и панелям инструментов. Но может быть привязан и к форме. Для управления TAction служат редакторы TActionList со страницы Standard и TActionManager со страницы Additional .

ActiveControl — определяет элемент, который имеет в данный момент фокус ввода. Если выбрать какой-либо объект во время разработки (design-time), то при запуске приложения этот объект и будет иметь фокус ввода. Также свойство может быть полезно и во время выполнения (run-time) — можно узнать, какой объект «держит» фокус в данный момент, а также можно переместить фокус на любой из объектов. Пример: разместим на форме 2 кнопки — Button1 и Button2, а также TTimer (страница System ). Выбрав элемент Timer1, дважды щёлкнем в Инспекторе объектов напротив надписи OnTimer на вкладке Events, т.е. создадим обработчик события и напишем следующее: ActiveControl:=Button2; Теперь, запустив программу, каждую секунду фокус будет перемещаться на Button2.

Align — определяет выравнивание формы на экране. Свойство принимает одно из следующих значений:

  • alBottom — по нижнему краю;
  • alClient — вся пользовательская (клиентская) область;
  • alCustom — выравнивание определяется вызовом методом объекта-родителя;
  • alLeft — по левому краю;
  • alNone — без выравнивания;
  • alRight — по правому краю;
  • alTop — по верхнему краю.

AlphaBlend — включает/выключает прозрачность формы.

AlphaBlendValue — задаёт степень непрозрачности формы: 0 — форма полностью невидима, 255 — полностью видима. Прозрачность активируется только при установке свойства AlphaBlend в True.

Anchors — определяет направления, по которым компоненты «привязываются» к форме. Пример: если установить у формы значения akLeft и akRight этого свойства в True, и точно также сделать у кнопки, то при изменении ширины формы размер кнопки (ширина) также будет изменяться.

AutoScroll — включает автоматическое появление полос прокрутки (Scroll bars) на форме, когда размеров формы недостаточно для отображения всех элементов.

AutoSize — включает автоматическое изменение размеров формы согласно позициям размещённых на ней элементов.

BiDiMode — определяет двунаправленное отображение элемента. В некоторых языках письмо осуществляется не слево-направо, а наоборот. Это свойство создано как раз для этой цели.

BorderIcons — определяет множество кнопок, которые отображаются в заголовке окна:

  • biSystemMenu — единственный элемент, который не является кнопкой — отвечает за системное меню окна, которое вызывается комбинацией клавиш [Alt]+[Пробел].
  • biMinimize — кнопка сворачивания (минимизации) окна;
  • biMaximize — кнопка разворачивания окна;
  • biHelp — кнопка справки.

Если хотя бы одна из кнопок сворачивания и разворачивания включена, то независимо от состояния другой, отображаются обе (но вторая естественно неактивна). Если выключены обе, они не отображаются вообще. Это не зависит от Delphi — так устроена ОС Windows.

BorderStyle — определяет поведение границ окна и общий тип окна:

  • bsDialog — диалоговое окно (из кнопок — только «Закрыть», иконки в заголовке окна нет);
  • bsNone — «чистый лист» (отсутствие у окна границ и заголовка) — применяется обычно для создания заставок во время запуска программы;
  • bsSingle — обычное окно, но с запретом изменения размеров;
  • bsSizeable — обычное окно (по умолчанию) — размеры формы можно изменять;
  • bsSizeToolWin — упрощённое окно с уменьшенным заголовком;
  • bsToolWindow — упрощённое окно с уменьшенным заголовком без возможности изменения размеров.

BorderWidth — ширина границы окна в пикселах. Граница является невидимой и расположена в пользовательской части формы.

Caption — текст заголовка формы.

ClientHeight , ClientWidth — размер клиентской (пользовательской) части формы, т.е. той, на которой располагаются компоненты.

Color — цвет формы.

Constraints — определяет минимальные и максимальные размеры высоты и ширины формы в пикселах. 0 — любое значение, т.е. без ограничений.

Ctl3D — свойство определяет 3D-вид формы. При выключенном — «плоское» изображение.

Cursor — курсор мыши в тот момент, когда он находится над формой.


DefaultMonitor — определяет, на каком мониторе появится форма. Имеет смысл применять это свойство только при наличии более, чем одного монитора (например, если несколько экранов).

DockSite , DragKing и DragMode — определяют поведение формы при осуществлении операций Drag&Drop.

Enabled — отвечает за общую активность формы. Если установлено в False, форма недоступна.

Font — шрифт, используемый на форме.

FormStyle — стиль формы или её поведение в MDI-приложении (многооконное приложение, где дополнительные формы располагаются «внутри» основной формы). Значения:

  • fsNormal — обычная форма (значение по умолчанию);
  • fsMDIChild — дочерняя (подчинённая) форма MDI-приложения;
  • fsMDIForm — главная форма MDI-приложения;
  • fsStayOnTop — форма находится поверх всех окон на экране.

Height — высота формы в пикселах. В отличие от ClientWidth является высотой с учётом заголовка и границ формы.

HelpContext , HelpFile , HelpKeyword , HelpType — свойства для связи формы с файлом справки в формате *.hlp .

Hint — текст всплывающей подсказки.

HorzScrollBar — свойство определяет внешний вид и поведение горизонтальной полосы прокрутки окна.

Icon — значок (иконка) формы. Отображается в заголовке слева от заголовка. Задаётся файлом в формате *.ico .

KeyPreview — если свойство установлено в True, то при нажатии клавиш сначала будут вызываться обработчики формы, а только затем обработчики того компонента, который в данный момент имеет фокус ввода. События, связанные с нажатием клавиш — OnKeyDown(), OnKeyPress(), OnKeyUp().

Left — позиция формы на экране (левого верхнего угла) в пикселах.

Menu — позволяет выбрать один из компонентов-меню, который станет главным меню окна, т.е. будет отображаться вверху.

Name — имя формы как объекта. Может содержать только латинские буквы, цифры и знак подчёркивания, и не может начинаться с цифры. Фактически, это то имя, по которому в программе можно обратиться к форме.

ObjectMenuItem — используется при работе с OLE-объектами и позволяет связать пункт меню и OLE-объект: когда объект выделен, пункт меню активен и наоборот.

OldCreateOrder — определяет, когда происходят события OnCreate() и OnDestroy() формы. Если установлено в False, то OnCreate() произойдёт после вызова всех конструкторов, а OnDestroy() — после вызова всех деструкторов. Начальное значение — False, изменять не рекомендуется.

ParentBiDiMode — изменение свойства BiDiMode согласно значению объекта-предка формы.

ParentFont — изменение шрифта (Font) согласно значению объекта-предка.

PixelsPerInch — пропорции шрифта в системе (точек на дюйм).

PopupMenu — позволяет указать контекстное меню (объект TPopupMenu) для формы. Это меню вызывается нажатием правой кнопки мыши.

Position — определяет начальную позицию формы на экране, т.е. в момент её появления. Основные значения:

  • poDesigned — появление в том месте, в каком форма расположена в design-time;
  • poDesktopCenter — по центру рабочего стола (рекомендуемое значение);
  • poScreenCenter — по центру экрана;
  • poMainFormCenter — по центру главной формы приложения (для главной формы не имеет смысла).

PrintScale — определяет размеры формы при выводе её изображения на печать.

Scaled — включает масштабирование формы в соответствии с заданным значением свойства PixelsPerInch.

ScreenSnap — если установлено в True, то форма будет автоматически «прилипать» к краям экрана в момент перемещения.

SnapBuffer — определяет расстояние (в пикселах), на котором форма будет «прилипать» к краю экрана.

ShowHint — включает/выключает показ всплывающей подсказки (Hint).


Tag — специальное свойство, которое есть у всех объектов. Специального применения для этого свойства нет, поэтому оно используется для разных целей в конкретной ситуации. Свойство удобно в том случае, если нужно хранить некоторое целое число — не придётся заводить дополнительную переменную.

Top — позиция формы (левого верхнего угла) на экране в пикселах.

TransparentColor — включает/выключает прозрачность определённого цвета формы.

TransparentColorValue — задаёт цвет, который будет прозрачным.

UseDockManager — используется при реализации Drag&Drop технологии, предоставляя дополнительные возможности этого метода взаимодействия.

VertScrollBar — определяет внешний вид и поведение вертикальной полосы прокрутки окна.

Visible — определяет видимость формы на экране.

Width — ширина окна в пикселах, включая границы.

WindowMenu — свойство-аналог свойства Menu, но используемое при создании MDI-форм.

WindowState — одно из состояний окна:

  • wsNormal — обычное состояние (занимает часть экрана);
  • wsMinimized — окно свёрнуто;
  • wsMaximized — окно развёрнуто на весь экран.

В итоге мы получаем огромное количество свойств, способных изменить как внешний вид формы, так и её поведение, а также поведение компонент, расположенных на ней. Но данная статья незаметно познакомила Вас не только со свойствами формы, но и со свойствами большинства компонент. Дело в том, что компоненты имеют общих «предков», т.е. тех объектов, от которых они образованы, поэтому свойства компонент очень похожи и большая их часть просто-напросто совпадает. Если посмотреть на свойства кнопки (TButton), то сразу можно заметить, что большинство свойств — те же самые, что и у формы. Это позволяет быстро научиться работать с любым незнакомым объектом.

Примечания

Стоит сделать несколько примечаний насчёт свойств.

  • Свойства прозрачности формы ( AlphaBlend , AlphaBlendValue , TransparentColor и TransparentColorValue ) корректно работают только на ОС Windows XP и следующих версиях. В предыдущих версиях ОС изменение значения этих свойств не производит визуального изменения формы.
  • Свойства, названия которых начинаются со слова Parent (англ. — родитель ), в большинстве случаев связывают значения некоторых свойств со значениями соответствующих свойств объекта-родителя. Так, кнопка (TButton) имеет свойство ParentFont и свойство Font, отвечающее за шрифта текста на этой кнопке. Но и сама форма имеет свойство Font. В результате, если у кнопки установить ParentFont в True, а затем изменить шрифт у формы, то шрифт у кнопки изменится соответствующим образом. Это позволяет быстро изменять одни и те же свойства у большого числа компонент. Другие подобные свойства — ParentShowHint , ParentColor , ParentBiDiMode .
  • Свойство Cursor , отвечающее за курсор, есть у большинства компонент. Но при перемещении курсора его вид изменяется на тот, который задан у самого «дальнего» объекта. Т.е. если и формы и у кнопки заданы разные формы курсора, то при перемещении над кнопкой будет использоваться курсор, заданный у самой кнопки. Число «вложений» одних компонент в другие может быть довольно большим.

Заключение

В этой статье рассмотрены свойства формы и основные свойства компонент. Изменяя свойства, можно настроить объекты так, как это требуется для реализуемой программы. Объектно-ориентированное программирование в основном и сводится к управлению свойствами объектов.

Поддержка Delphi 6 для панели инструментов и значков меню с прозрачностью альфа-канала

У нас есть унаследованное приложение, разработанное в Delphi 6 (да, я знаю, что это древняя среда разработки), которую мы пытаемся обновить, чтобы выглядеть более современно. Мы добавили в манифест и теперь используем его с помощью средств управления Windows версии 6 и используем визуальную тему Windows (все хорошо).

Однако при попытке заменить старую 4-битную панель инструментов и значки меню с прозрачностью True Color с альфа-каналом (32-битной) мы столкнулись с проблемой. Похоже, что Delphi 6 поддерживает только прозрачность, основанную на нижнем левом пиксельном цвете (http://delphi.about.com/od/delphitips2007/qt/timage_transp.htm) и не поддерживает более современную прозрачность альфа-смеси. Это вызывает проблему, так как все созданные нами графики находятся в этом формате и не выглядят хорошо при добавлении на панель инструментов из-за сглаживания, создающего эффект бахромы (в фоновом цвете, на котором они были созданы, прозрачность становится белый в этом случае) вокруг них.

Я часами пробовал интернет, пытаясь подтвердить, действительно ли Delphi 6 поддерживает или поддерживает Delphi 6, но, поскольку Delphi 6 так устарел, я только нахожу ссылки на Delphi 7 и выше.

Может ли кто-нибудь подтвердить, возможно ли то, что мы пытаемся достичь, или если есть какие-либо обходные пути для этого очевидного ограничения? Обратите внимание, что обновление до более новой версии Delphi не является вариантом для этого конкретного проекта из-за ограниченного бюджета и времени.

Прозрачность в delphi 6

Прозрачность в Delphi 6
Как сделать прозрачное окно родными средствами Windows2000? Updated!

См. также статьи в других разделах:
Как правильно работать с прозрачными окнами?
Как поместить прозрачную фоновую каринку на компонент CoolBar?
Если прозрачная часть glyph’а становится видной.
Каким образом задать прозрачный цвет иконки?
Как разместить прозрачную надпись на TBitmap?
Как нарисовать Bitmap с прозрачностью

Прозрачность отдельного компонента

Скажите пожалуйста, возможно ли каким то образом манипулировать прозрачностью отдельно взятого компонента (например TPanel), да так, чтобы сами компоненты, находящиеся на ней, не изменялись?

Возможно ли такое?


  • Добавить комментарий
  • 6829 просмотров

А что ты понимаешь под прозрачностью? GlassEffect или AlphaBlend?
AlphaBlend:
1) свойства формы
TransparentColor поставить в TRUE
В TransparentColorValue выставить цвет, именно этот цвет будет прозрачным, советую поставить например clGreen, чтобы уж точно не пересекся с другими цветами.
2) выставить свойство COLOR твоего компонента так же в clGreen.

Теперь при запуске у тебя будет прозрачна именно эта панель.

Используя трассировку кода, можно избежать ламерских вопросов!

Получилось, но так, что форма в этом месте просвечивает (т.е. видно что под ней). А мне необходима чтобы сама панелька было прозрачная.

Получилось, но так, что форма в этом месте просвечивает (т.е. видно что под ней). А мне необходима чтобы сама панелька было прозрачная.

Используя трассировку кода, можно избежать ламерских вопросов!

Компонент TPanel вроде бы не имеет прозрачности, но вместо него можно использовать TBevel

TBevel не поддерживает установку на него компонентов, как панель.

В общем немного порывшись в инете и книжках, сделал прозрачный контролл. Ну почти что мне нужно. Оказалось все это дело даже проще, чем я мог предположить. Но не совсем.

uses
Windows, SysUtils, Classes, Controls, ExtCtrls, Messages;

type
TTransperentPanel = class(TPanel)
private
< Private declarations >
protected
//procedure Paint; override;
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure CreateParams(var Params: TCreateParams); override;
public
< Public declarations >
published
< Published declarations >
end;

procedure Register;
begin
RegisterComponents(‘Samples’, [TTransperentPanel]);
end;

procedure TTransperentPanel.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle + WS_EX_TRANSPARENT;
end;

procedure TTransperentPanel.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
Message.Result := 1;
end;

Это был код прозрачной панельки, в принципе он работает. Но, посмотрите демку: ]]> http://dump.ru/file/4958026 ]]>

Собственно левая прозрачная панель и есть этот компонент, на ней расположены кнопка и флажок. Под ней расположена другая панель, которая при наведении на прозрачную, становиться видима. Вот этого эффекта я и хотел изначально, жаль конечно, не знаю как это реализовать в одном компоненте (Может кто поможет, а?). Но стоит переместить окошко по рабочему столу, кнопка и чекбокс не прорисовываются и появляются если навести мышкой на компонент. Как это починить?

+ во время редактирования, и перемещения компонента, скажем кнопки на новое место в пределах панели, видна кнопка на новом месте и ее фантом. Как и этого избежать?

Поддержка Delphi 6 для панели инструментов и значков меню с прозрачностью альфа-канала

У нас есть унаследованное приложение, разработанное в Delphi 6 (да, я знаю, что это древняя среда разработки), которую мы пытаемся обновить, чтобы выглядеть более современно. Мы добавили в манифест и теперь используем его с помощью средств управления Windows версии 6 и используем визуальную тему Windows (все хорошо).

Однако при попытке заменить старую 4-битную панель инструментов и значки меню с прозрачностью True Color с альфа-каналом (32-битной) мы столкнулись с проблемой. Похоже, что Delphi 6 поддерживает только прозрачность на основе цвета нижнего левого пикселя ( http://delphi.about.com/od/delphitips2007/qt/timage_transp.htm ) и не поддерживает более современную прозрачность альфа-смеси. Это вызывает проблему, так как все созданные нами графики находятся в этом формате и не выглядят хорошо при добавлении на панель инструментов из-за сглаживания, создающего эффект бахромы (в фоновом цвете, на котором они были созданы, прозрачность становится белый в этом случае) вокруг них.

Я часами пробовал интернет, пытаясь подтвердить, действительно ли Delphi 6 поддерживает или поддерживает Delphi 6, но, поскольку Delphi 6 так устарел, я только нахожу ссылки на Delphi 7 и выше.

Может ли кто-нибудь подтвердить, возможно ли то, что мы пытаемся достичь, или если есть какие-либо обходные пути для этого очевидного ограничения? Обратите внимание, что обновление до более новой версии Delphi не является вариантом для этого конкретного проекта из-за ограниченного бюджета и времени.

Прозрачность в delphi 6

Прозрачность в Delphi 6
Как сделать прозрачное окно родными средствами Windows2000? Updated!

См. также статьи в других разделах:
Как правильно работать с прозрачными окнами?
Как поместить прозрачную фоновую каринку на компонент CoolBar?
Если прозрачная часть glyph’а становится видной.
Каким образом задать прозрачный цвет иконки?
Как разместить прозрачную надпись на TBitmap?
Как нарисовать Bitmap с прозрачностью

поддержка Delphi 6 для панели инструментов и меню иконки с альфа-каналом прозрачности

У нас есть наследие приложение, разработанное в Delphi 6 (да, я знаю, что это древний IDE в настоящее время), который мы пытаемся обновить, чтобы выглядеть более современно. Мы добавили в Manifest и теперь его с помощью версии 6 элементов управления Windows, и принимая на Windows, визуальные темы (все хорошо).

Однако, при попытке заменить старую 4 бита на панель инструментов и меню иконки с True Color с альфа — каналом (32 бит) прозрачностью мы ударяли проблему. Оказывается , что Delphi 6 поддерживает только прозрачность на основе нижнего цвета левого пикселя ( http://delphi.about.com/od/delphitips2007/qt/timage_transp.htm ) и не поддерживает более современную полупрозрачный прозрачность. Это вызывает вопрос, как все графики мы сотворили в этом формате и не хорошо выглядеть при добавлении к панели инструментов из — за сглаживания , создавая эффект бахромы (в цвете фона , на котором они были созданы, прозрачный становится белый в данном случае) вокруг них.

Я обыскивал интернет в течение нескольких часов, пытаясь подтвердить, имеет ли или нет Delphi 6 или может быть сделано для поддержки этих форматов изображений, но, как Delphi 6 так стар, я только найти ссылки на Delphi 7 и выше.

Может кто-нибудь подтвердить, является ли то, что мы пытаемся достичь, это возможно, или, если есть какие-либо обходные пути для этого очевидного ограничения? Обратите внимание, что обновление до более новой версии Delphi это не вариант для данного проекта из-за ограниченный бюджет и время.

Илон Маск рекомендует:  Статьи о создании дизайна сайта
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL