Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.046 c
14-1101301441
РВА
2004-11-24 16:04
2004.12.12
Где найти


14-1100967410
redlord
2004-11-20 19:16
2004.12.12
delfi7 и сокеты


1-1101673252
Pupkov
2004-11-28 23:20
2004.12.12
Ошибка Cannot assign a TFont to a TFont


4-1098727684
Anti
2004-10-25 22:08
2004.12.12
Работа со службами


1-1101055819
Гаврилов В.А.
2004-11-21 19:50
2004.12.12
Почему не работает ссылка с рабочего стола





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский