Показать сообщение отдельно
  #1  
Старый 02.08.2013, 10:11
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию Отрисовка плохо работает

вот код отрисоки
Код:
PngIcon:=TPngImage.Create;
  if odSelected in State then begin
    CheckListBox4.Canvas.Brush.Color:=RGB(255,119,227);
    CheckListBox4.Canvas.Font.Color:=ClBlue;
  end
  ELSE begin
    CheckListBox4.Canvas.Brush.Color:=CheckListBox4.Color;
    CheckListBox4.Canvas.Font.Color:=clPurple;
  end;
  CheckListBox4.ItemHeight:=20;
  CheckListBox4.Canvas.Font.Size:=12;
  CheckListBox4.Canvas.TextOut(Rect.Left,Rect.Top,DynamicLangSaveLang[index]);
  if (Length(ParamIconSaveLang[index])>0)and(ParamIconSaveLang[index]<>'...') then begin
    PngIcon.LoadFromFile(ExtractFileDir(Application.ExeName)+ParamIconSaveLang[index]);
    CheckListBox4.Canvas.Draw(Rect.Left+150,Rect.Top+3,PngIcon);
  end;
  PngIcon.Free;

В масиве DynamicLangSaveLang хранятся тексты
в PngIcon будет находится иконка в формате png
Вот скрин
1) Почему остается рамка выделения и как это исправить
2) Как эти числа получить програмно Rect.Left+150,Rect.Top+3 CheckListBox4.ItemHeight:=20; чтобы после изменения размеров шрифта менялась и отрисовка а также иконки были сразу после текста а не в пол метре от него
Ответить с цитированием