Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка в TBitBtn при включенном GRAPHCTL_XPSTYLES


Виктор007 ©   (2007-10-21 00:05:00) 

У меня сдвигается текст с глифом в право на середину кнопки, подскажите как исправить?


Виктор007   (2007-10-21 12:33:00) [1]

Еще подправил:
var
TWidth : integer;
...
if Sender.fglyphLayout in [ glyphLeft ] then
   begin
    // Получение ширины текста
    Sender.Canvas.Font.Assign ((Sender).Font);
    TWidth := Sender.Canvas.TextWidth((Sender).Caption);

    RIcon := MakeRect(((SenderWidth - TWidth) div 2) - W,
                      (SenderHeight div 2) - (H div 2),
                       W, SenderHeight);
    RText.Left := ((SenderWidth - TWidth) div 2) + (W div 4);
    HPos := DT_LEFT;
    VPos := DT_VCENTER;
   end;


Виктор007   (2007-10-21 12:17:00) [2]

Пока просто поправил под свои нужды visual_xp_styles.inc:
Заменил в WndButtonXPDraw

if Sender.fglyphLayout in [ glyphLeft ] then
   begin
    RIcon := MakeRect((SenderWidth div 2) - (W + (W div 4)),
                      (SenderHeight div 2) - (H div 2),
                       W, SenderHeight);
    RText.Left := (SenderWidth div 2) + (W div 4);

На это:

if Sender.fglyphLayout in [ glyphLeft ] then
   begin
    RIcon := MakeRect((SenderWidth div 2) - (W + (W div 4)),
                      (SenderHeight div 2) - (H div 2),
                       W, SenderHeight);
    RIcon.Left := 5;
    RText.Left := 24;


Наверх

Титульная страница Поиск, карта сайта Написать письмо