Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Делаю “skin” для TabControl помогите   Найти похожие ветки 

 
Idx ©   (2005-10-22 07:48) [0]

В общем, почти сделал, но не знаю правильно не правильно
но думаю, для начало что-то есть (Если можете, подправьте)
Вроде все рисуется как надо =)  делать через WM_PAINT

Но теперь проблема моя программа сканирует все открытые
окна в системе ну что-то вроде TaskBar(а)  и все получилось
почти =| Не могу вставить иконки с лева то есть они рисуются
но не так как я хотел =( Они сливаются и рисуются но что мне
надо, то есть та иконка, которая должна быть она рисуется сверху
а остальные снизу, что мне сделать, что бы, не сливались, помогите.

И ещё как мне удалить не нужный элемент? Delete не работает
как надо =(  Она выдает ошибку при удалений предпоследние эл.


 
Idx ©   (2005-10-22 08:47) [1]

Забыл код добавить....


// А вот наши объявленные процедуры
procedure TMyTabControl.WMPAINT(var Msg: TWMPaint);
var
 r      : TRect;   // Это нам нужно что бы знать положение кнопки
 Idx    : Integer; // А это номер кнопки

Procedure AlignButtonView(BtnBmpMode:TBitmap; DownUp:Boolean);
  Var
    Txt:String;
    IcoBmp:TBitmap;
   Begin
       IcoBmp:=TBitmap.Create;
       // Если она нажата то выпоняем наши действий
       r.Bottom:=TaskBtnDown.Height; // Выровним высоту кнопки по картинке
       // Выдергиваем иконку программы
       Form1.ImageList1.GetBitmap(idx,IcoBmp);
       // Выделяем иконку (Исключаем белый цвет)
       CopyTransparentBrush(IcoBmp,BtnBmpMode,5,3, Rgb(255,255,255));
       // Рисуем её туда где надо! В "r" хранится положение кнопки
       Form1.TabControl1.Canvas.StretchDraw(r,BtnBmpMode);
       // Ресуем надпись!
       r.Top:=4; // Выровним позицию с верху вниз
       // Делаем текст с обрезанием...
       Txt:=Form1.TabControl1.Tabs[idx];
       // Если длина текста привешает 17 символов
       if Length(txt) > 17 then
       // тогда обрезаем
       txt:=copy(txt,1,17)+"...";

       IF not DownUp Then
       Self.Canvas.Font.Color := clBlack else
       Self.Canvas.Font.Color := clWhite;

       SetBkMode(Self.Canvas.Handle, TRANSPARENT);
       Self.Canvas.TextOut(r.TopLeft.X+32,r.TopLeft.Y,Txt);
       IcoBmp.Free;
end;

begin
 inherited; // Эт типа мы сначало вызовим старое
 if(TaskBtnDown.Handle=0)and(TaskBtnUp.Handle=0)Then exit;
 // Перебигаем все кнопки на TabControl(е)
  for idx:=0 to Form1.TabControl1.Tabs.Count-1 do
  begin
    // Берем по индексу размещение кнопки
    // размещение будет хранится в переменной "r"
    // которой относится тип TRECT.
     r:=Form1.TabControl1.TabRect(idx);
     // Здесь мы проверяем на НАЖАТУЮ И ОТЖАТУЮ КНОПКУ
     if Form1.TabControl1.TabIndex = idx then // Если она нажата
       AlignButtonView(TaskBtnDown,True)
    else // А если отжато то подставляем другую картинку
       AlignButtonView(TaskBtnUp,False);
  end;

  Msg.Result:=1;
end;



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
2-1142065880
AlexeyT
2006-03-11 11:31
2006.03.26
Число отображаемых строк в TMemo


2-1142312072
Гога
2006-03-14 07:54
2006.03.26
ООП


2-1141668489
vital538
2006-03-06 21:08
2006.03.26
FireBird


2-1141756772
Dmitrij_K
2006-03-07 21:39
2006.03.26
Непонятки с регистром символов в коде


2-1141226299
KyRo
2006-03-01 18:18
2006.03.26
Ado Table





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский