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

ImageList1.Draw(CheckListBox1.Canvas, CheckListBox1.Canvas.TextWidth('W'+CheckListBox1.I tems[Index])+2+Rect.Left, Rect.Top, Index);

Я сделал лучше но все равно

Код:
procedure TForm1.CheckListBox4DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var i:integer;
  cc:TCanvas;
begin
  PngIcon:=TPngImage.Create;
  if odSelected in State then begin
    CheckListBox4.Canvas.Brush.Color:=DynamicColor[40];
    CheckListBox4.Canvas.Font.Color:=DynamicColor[39];
  end
  ELSE begin
    CheckListBox4.Canvas.Brush.Color:=CheckListBox4.Color;
    CheckListBox4.Canvas.Font.Color:=DynamicColor[38];
  end;
  CheckListBox4.ItemHeight:=20;
  CheckListBox4.Canvas.Font.Size:=12;
  CheckListBox4.Canvas.FillRect(Rect);
  if (Length(ParamIconSaveLang[index])>0)and(ParamIconSaveLang[index]<>'...') then begin
    PngIcon.LoadFromFile(ExtractFileDir(Application.ExeName)+ParamIconSaveLang[index]);
    CheckListBox4.Canvas.Draw(Rect.Left,Rect.Top+3,PngIcon);
  end;
  CheckListBox4.Canvas.TextOut(Rect.Left+PngIcon.Width+5,Rect.Top,DynamicLangSaveLang[index]);
  PngIcon.Free;
end;

Не решает проблемы иконка должна быть по середине height текста и это число надо получить CheckListBox4.ItemHeight:=20; программно
Ответить с цитированием