Как сделать прозрачную кнопку в делфи

Добавил пользователь Skiper
Обновлено: 10.09.2024

1) определение формы при обращении можно не писать, так как вы работаете с текущей, которая является родительской для объектов.
2) команда, которую вы привели в листинге, меняет цвет шрифта (FONT) на кнопке, вам нужно использовать смену фона кнопки

вы бы могли написать код,а то у меня не получается,ну или хотябы чтобы менялся цвет шрифта,а то код вроде правильный а не меняет

Для смены фона кнопки либо используйте компоненту панель, растянутую вместо кнопки, либо компоненту BitBtn, у которой есть свойство Color, либо пишите код, работающий с канвой, что бесперспективно и длинно

Подписаться на RSS рассылку

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

Выложите на форму TTimer . Установите ему свойство Interval в 10. Затем объявляем глобальную переменную Value

Теперь прописываем событие OnCreate формы.

И теперь прописываем обработчик таймера OnTimer

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

0 Спам
( 07.11.2011 )

0 Спам
( 17.07.2011 )

0 Спам
( 11.07.2011 )

0 Спам
( 14.03.2010 )

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Form1.AlphaBlendValue<>255 then Form1.AlphaBlendValue:=Form1.AlphaBlendValue+1
else Timer1.Enabled:=false;
end;

Имхо чище, и меньше кода, а вот код на плавное исчезание программы после закрытия:

AnimateWindow(Handle, 1000, AW_HIDE or AW_BLEND);

0 Спам
( 23.11.2009 )

Ответ: Ничего не исчезнет! Все нормально. Value это переменная, а прозрачность формы. Единственное Value:=0 не нужно.

0 Спам
( 19.11.2009 )

0 Спам
( 18.11.2009 )

поправочки:
1) форма будет полность невидима и прозрачна при значении AlphaBlendvalue = 1, а при значении 0 она будет ещё и неосязаема.
2) если написать как в процедуре по тпймеру, то форма действительно плавно появится, но потои совсем исчезнет

Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.

Кнопки являются элементами управления и служат для выдачи команд на выполнение определенных функциональных действий. Существует несколько видов кнопок в Delphi:

Основным для кнопки событием является событие OnClick, возникающее при ее нажатии.

Свойство Default , если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе. Правда, если в момент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно кнопка в фокусе.

Кнопка с рисунком отличается от стандартной кнопки тем, что кроме заголовка на кнопке может отобразиться растровое изображение.

Свойство Glyph определяет растровый рисунок кнопки (формат bmp). По умолчанию кнопка не содержит рисунок. Delphi поставляется большое количество изображений для кнопок. Они расположены в каталоге ImagesButtons, а сам каталог Images расположен в каталоге program filescommon filesborland shared.

Расположение изображения и надписи на кнопке определяется свойствами Margin , Layout и Spacing . Если свойство Margin равно -1 (значение по умолчанию), то изображение и надпись размещаются в центре кнопки. При этом положение изображения но отношению к надписи определяется свойством Layout , которое может принимать значения: blGlyphLeft (слева, это значение принято по умолчанию), blGlyphRight (справа), blGlyphТор (вверху), blGlyphBottom (внизу). Если же Margin > 0 , то в зависимости от значения Layout изображение и надпись смещаются к той или иной кромке кнопки, отступая от нее на число пикселей, заданное значением Margin .

Свойство Spacing задает число пикселей, разделяющих изображение и надпись на поверхности кнопки. По умолчанию Spacing = 4 . Если задать Spacing = 0 , изображение и надпись будут размещены вплотную друг к другу. Если задать Spacing = -1 , то текст появится посередине между изображением и краем кнопки.

Еще одно свойство BitBtn – свойство Kind определяет тип кнопки. По умолчанию значение этого свойства равно bkCustom – заказная. Но можно установить и множество других предопределенных типов: bkOK , bkCancel , bkHelp , bkYes , bkNo , bkClose , bkAbort , bkRetry , bkIgnore , bkAll . В этих типах уже сделаны соответствующие надписи, введены пиктограммы, заданы еще некоторые свойства.

Кнопки SpeedButton имеют возможность отображения пиктограмм и могут использоваться как обычные управляющие кнопки. Обычно они используются в качестве быстрых кнопок, дублирующих различные команды меню, и в инструментальных панелях, в которых требуется фиксация нажатого состояния.

У кнопок SpeedButton , как и у других кнопок, имеется свойство Caption – надпись, но в этих кнопках оно обычно оставляется пустым, так как вместо надписи используется пиктограмма.

Изображение на кнопке задается свойством Glyph . И точно так же свойство NumGlyphs определяет число используемых пиктограмм, свойства Layout и Margin определяют расположение изображения, а свойство Spacing – расстояние между изображением и надписью.

Кнопка может использоваться как переключатель. Поэтому, кроме обычного и нажатого состояний, она имеет третье состояние – утопленное, или выбранное (включенное). Включена кнопка или нет, определяет свойство Down (значение true – кнопка выбрана).

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

Если кнопка не входит в группу, то она не может работать как переключатель и находится в выбранном состоянии. Если есть несколько кнопок, имеющих одинаковое ненулевое значение GroupIndex , то они образуют группу взаимосвязанных кнопок из которых нажатой может быть только одна. Если одна кнопка находится в нажатом состоянии и пользователь щелкает на другой, то первая кнопка освобождается, а вторая фиксируется в нажатом состоянии. Поведение нажатой кнопки при щелчке на ней зависит от значения свойства AllowAllUp . Если оно равно true , то кнопка освободится, поскольку в этом случае возможно состояние, когда все кнопки группы отжаты. Если же AllowAllUp равно false , то щелчок на нажатой кнопке не приведет к изменению вида кнопки.

Если Grouplndex > 0 и AllowAllUp (разрешение отжатого состояния всех кнопок группы ) = true , то кнопка при щелчке пользователя на ней погружается и остается в нажатом состоянии. При повторном щелчке пользователя на кнопке она освобождается и переходит в нормальное состояние.

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

Изменить цвет заголовка кнопки — свойство Caption.


Вид кнопки.

Надпись на кнопке.

Свойство Caption определяет надпись на кнопке.


Например, в нашем случае это лучше сделать следующим образом:



procedure TForm1.BitBtn4Click(Sender: Tobject);
begin
if Panel1.Visible = false then Panel1.Visible:=true
else Panel1.Visible:=false;
end;

Свойство Cancel.

Свойство Default.

Свойство ModalResult.

Свойство Glyph.

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

1–е изображение отображается, если кнопка не нажата (по умолчанию);

3-е изображение отображается в том случае, если кнопка нажата (выполнен щелчок).

Замечание. Для особой кнопки с фиксацией добавляется ещё четвёртое изображение.

Итак, изображение на кнопке установливается с помощью свойства Glyph.

(Изображение может, например, быть загружено из файла, поставляемого с Dephi и находящегося в \ program files \ common files \ borland shared \ Images \ Buttons.)

Но мы создадим bitmap матрицу размером 48*16 самостоятельно в графическом редакторе. Она будет состоять из трех примыкающих друг к другу матриц 16*16.

Создадим следующее изображение:




И, наконец, при щелчке по кнопке изображение станет:


Расположение изображения и надписи.

Положение изображения на поверхности кнопки определяются свойствами Margin, Layout и Spacing.

Если же, например, Margin=5 и Layout=blGlyphLeft, то расположение изображения и кнопки координируются от левого края.


Если Layout=blGlyphRight и Margin=20, то расположение изображения и кнопки координируются от правого края:


Читайте также: