Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизSpeedButton + темы WinXP Найти похожие ветки
← →
f00rd (2004-11-21 16:42) [0]Собственно говоря, мне не обязательно нужен SpeedButton... Мне нужна кнопка, на которую можно посадить картинку, но так, чтобы эта кнопка поддерживала темы WinXP. Может кто знает, как это сделать?
← →
Gero © (2004-11-21 21:33) [1]Ищи UxTheme.pas.
← →
f00rd (2004-11-24 14:33) [2]А поконкретнее можно? Что с ним делать-то?
← →
Gero © (2004-11-24 14:58) [3]http://www.rtfm.4hack.com/show.php?rs=1&sb=2&st=11
← →
ламер © (2004-11-24 16:47) [4]
const
BTN_ALIGN_LEFT = 0;
BTN_ALIGN_RIGHT = 1;
BTN_ALIGN_TOP = 2;
BTN_ALIGN_BOTTOM = 3;
type
TButtonImageList = packed record
himl: HIMAGELIST;
margin: TRect;
uAlign: Cardinal;
end;
{ ABtn - кнопка, на которую "вешаем" картинки
AList - ImageList с картинками (по индексу):
0 - обычное состояние,
1 - Hot (курсор над кнопкой),
2 - Pushed (кнопка нажата),
3 - Disabled,
4 - Focused (кнопка получила фокус клавиатуры) }
procedure SetButtonImage(ABtn: TButton; AList: TImageList);
var
bi: TButtonImageList;
begin
bi.himl := AList.Handle;
{ картинка будет располагаться слева }
bi.uAlign := BTN_ALIGN_LEFT;
{ здесь нужно поиграться с полями для получения желаемого положения картинки }
bi.margin := Rect(1, 1, 1, 1);
{ посылаем кнопке сообщение BCM_SETIMAGELIST (обрабывается только под XP) }
SendMessage(ABtn.Handle, $1600{BCM_FIRST} + $0002{BCM_SETIMAGELIST}, 0, Cardinal(@bi));
end;
← →
OneFragLeft © (2004-11-24 17:24) [5]SpeedButton вроде поддерживает темы XP. Только кинь на форму XPManifest.
← →
Gero © (2004-11-24 17:33) [6]
> SpeedButton вроде поддерживает темы XP.
Уверен?
Я - нет.
> Только кинь на форму XPManifest.
Ага, в Delphi 6.
← →
OneFragLeft © (2004-11-24 17:36) [7]>Ага, в Delphi 6.
Об этом в сабже ни слова:)
А в D7 работает.
← →
OneFragLeft © (2004-11-24 17:38) [8]Проверил: Работает на все 100.
← →
OneFragLeft © (2004-11-24 17:41) [9]Можно попробовать SkinEngine. Там есть SpeedButton. Темы поддерживает и без самого Engine. + Темы от SkinEngine можно подключать.
← →
Gero © (2004-11-24 17:53) [10]
> Об этом в сабже ни слова:)
> [D6, WinXP]
> Проверил: Работает на все 100.
Хм, мне казалось что это не так.
Если не тяжело, скинь мне твой Buttons.pas на мыло с анкеты.
← →
OneFragLeft © (2004-11-24 17:55) [11]D6 - не заметил:)
← →
OneFragLeft © (2004-11-24 17:58) [12]Вообще-то это KsSkinSpeedbuttons.pas . У меня Д6 нет, поэтому не могу ручаться что будет работать на нём. А SkinEngine - обычный. http://www.ksdev.com
← →
Gero © (2004-11-24 18:08) [13]
> OneFragLeft © (24.11.04 17:58)
Не SkinEngine, а именно Buttons.pas (если конечно имеются исходники VCL).
← →
OneFragLeft © (2004-11-24 18:37) [14]А он то при чём?
← →
Gero © (2004-11-24 19:46) [15]
> OneFragLeft © (24.11.04 18:37)
> А он то при чём?
При [8].
← →
OneFragLeft © (2004-11-24 19:49) [16]А чем мой Button.pas может отличаться?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c