Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
1-1101650361
Bobby Digital
2004-11-28 16:59
2004.12.12
Listbox pt.3


1-1101783419
Змей
2004-11-30 05:56
2004.12.12
файл в каталоге с *.exe


1-1101443573
_sulent
2004-11-26 07:32
2004.12.12
Шрифты, подскажите?


14-1100897306
dmk
2004-11-19 23:48
2004.12.12
Владельцам автомобилей


3-1099041934
stud
2004-10-29 13:25
2004.12.12
dbchart delphi7