2009-10-08 2 views
2

Я хотел бы использовать некоторые пользовательские элементы управления, которые я использую, и думал, что некоторые привлекательные заливки должны выполнять эту работу (возможно, часть). Как заполнение на фоне кнопок iPhone или ленты ленты Office 2007 (возможно, вы знаете еще несколько).Как сделать пустую кнопку для iPhone

Редактировать: Чтобы прояснить ситуацию, мне не нужна простая заливка градиента - для этого есть вызов Windows API. Меня больше интересует, как достигается весь эффект. Вот link to an article, который показывает, как это сделать в PhotoShop, но я хочу сделать это в коде.

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

Любые идеи?

+0

Если вы говорите о 3D-эффекте округления или глубины плоской поверхности, это называется градиентом. –

+0

Вы говорите о градиентах? Они в основном являются интерполяцией (часто линейной) между двумя или более цветами. – Joren

+0

Это сложнее, чем просто линейный градиент. Если вы посмотрите на IPhone, например, есть градиент в верхней половине кнопки, но он немного округлен в нижней части градиента и имеет большой контраст с тем, что ниже. Вот учебник для этого в PhotoShop, который, конечно, бесполезен в моем случае: http://www.keepthewebweird.com/iphone-style-icon-tutorial/ Теперь, как это сделать в коде? –

ответ

4

«Стеклянный» эффект создается просто путем создания белого эллипса размером около 4x, большего, чем высокий, и помещать его поверх изображения, чтобы оно было «застеклено», чтобы нижняя дуга была центрирована на изображении, а затем альфа-смешение. Я считаю, что этот пример delphi code будет полезен при выполнении финальной части.

3

Вы говорите о градиентных заполнениях. Вы можете получить образцы кода here для начала - найдите эту страницу для «градиента», чтобы найти соответствующие разделы.

1

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

+0

+1 Я нашел несколько примеров, и это, кажется, общий способ сделать это. Хотя я собираюсь пойти с ответом Скамрадта. –

2

Вы можете использовать http://www.tmssoftware.com/site/advsmoothbutton.asp. Насколько я знаю, этот элемент управления включен в бесплатный пакет Smooth Controls с D2009. Для других версий Delphi вы можете купить сам контроль TAdvSmoothButton или как часть пакета управления.

+0

Гладкие элементы управления - действительно отличные компоненты: просто попробуйте их. –