Разукрасьте Ваше приложение.
SkinForm - это компонент, который поможет Вам
создать "не-квадратное" окно и вто же время
применить к нему так называемую технологию
"skin", наподобие таких популярных программ
как WinAMP, WPlay ..., зачем тратить часы на
программирование, когда это можно сделать за
пару минут! Скачать сам компонент можно с http://www.qwerks.com/download.asp?ProductID=2447.
WYSIWYG скин билдер, который входит в состав архива,
предназначен для создания информационного
файла, описывающего структуру нашей формы. Всё,
что надо сделать - это создать несколько
картинок, и нарисовать кнопки, текстовые поля и
т.д.. Есть возможность постоянно смотреть превью!
Теперь посмотрим, какие нам предоставлены
возможности:
a.поддержка файлов bmp и jpeg
b.поддержка графических кнопок, а так же
переключающиеся и радои кнопки
c.поддержка текста, графического текста и цифр
d.поддержка графического track bar
e.поддержка multi skin-ов, то есть Вы можете создать
свой скин для каждой формы приложения
f.поддержка внутренних скинов, то есть скины
могут быть сохранены в ресурсном файле
Теперь наши действия:
- Создаём bitmap файлы для скина
- Запускаем Skin Builder для создания информационного
файла
- Создаём новый проект.
- Помещаем компонент TSkinForm в форму
- Компилируем
Посмотрим на script файл, созданный SkinBuilder-ом:
[VERSION]
Ver=210 // Версия скин-файла
[BITMAPINFO]
MaskBitmap=PlayerMask.bmp
// Bitmap файл маски поверхности формы
MouseUpBitmap=PlayerMain.jpg
// Bitmap файл, если кнопка мыши была
отпущена
MouseDownBitmap=PlayerSel.jpg
// Bitmap файл, если кнопка мыши была
нажата
MouseOnBitmap=PlayerSel.jpg
// Bitmap файла, если на объекте
находится курсор мыши
NumbersBitmap=
// Bitmap файл для графических цифр (не
обязательно)
TextBitmap=
// Bitmap файл для графического текста (не
обязательно)
[HOTAREAINFO]
Count=19 // Общее количество кнопок
// Описание каждой кнопки
// number=ID, top, left, width, height, hint [, button state, group name]
// Значения в [ ] не обязательны
1=BUTTON_PLAY, 54, 165, 34, 35, Play/Pause
2=BUTTON_STOP, 129, 165, 19, 35, Stop
3=BUTTON_NEXT, 90, 165, 18, 17, Next
4=BUTTON_PREV, 109, 165, 18, 17, Previous
...
[DISPLAYINFO]
Charset=1 // Charset текстовой области
Count=3 // количество
тектовых полей
// Описание каждой текстовой области
// number=ID, font name, bold, italic, size, color, top, left, style, default text, hint,
width, height
1=TEXT_LEN, Arial, TRUE, FALSE, 9, $00366835, 116, 137, Normal, [00:00], Length, 51, 18
2=TEXT_POS, Arial, TRUE, FALSE, 12, $00366835, 55, 133, Normal, 00:00, Position, 52, 23
3=TEXT_SONG, MS Sans Serif, FALSE, FALSE, 7, $00366835, 56, 112, Normal, Song Name, Song
Name, 111, 21
[TRACKBARINFO]
Count=2 // Количество track-баров
// Описание каждого трак-бара
// number=ID, trackbar bitmap file, trackbar bitmap file, top, left, length, style,
position, hint
1=TRACKBAR_VOLUME, TrackBar.BMP, TrackBar.BMP, 79, 205, 88, H, 65, Volume
2=TRACKBAR_POS, TrackBar.BMP, TrackBar.BMP, 79, 217, 88, H, 0, Time
Ну вот Ваше приложение и разукрасилось и, как
видите, безо всякого программирования.
Теперь можно добавить код, чтобы перехватывать
события на кнопках - MouseUp, Down, Over ...
The following is sample code:
...
procedure TForm1.FormCreate(Sender: TObject);
begin
//Загружаем скин файл
SkinForm1.LoadDefaultSkin;
SkinForm1.SetDisplayText('VOLUME',
IntToStr(SkinForm1.GetTrackBarPos('TRACKBAR_VOLUME')));
SkinForm1.SetDisplayText('TIME',
IntToStr(SkinForm1.GetTrackBarPos('TRACKBAR_POS')));
SkinForm1.SetTrackBarMinMax('TRACKBAR_VOLUME', 20, 80);
end;
procedure TForm1.SkinForm1MouseUpNotify(ID: String; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pos : TPoint;
begin
if (Button = mbLeft) then
begin
if ID = 'BUTTON_EXIT' then
Close;
if ID = 'BUTTON_MINIMIZE' then
Form1.Perform(WM_SYSCOMMAND, SC_MINIMIZE, 0);
if ID = 'BUTTON_MENU' then
begin
pos
:= ClientToScreen(Point(X, Y));
PopupMenu1.Popup(pos.x, pos.y);
end;
end;
if (Button = mbRight) then
begin
pos := ClientToScreen(Point(X,
Y));
PopupMenu1.Popup(pos.x,
pos.y);
end;
...
|