Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2011, 20:54   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию checklistbox и канвас

Не могу понять почему у меня не показывается рисунок из ItemsList на ListBox показывается нормально а на checkbox не рабоает или просто не видно из-за чекера?
Код:
procedure TFInvDomain.ListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
var iRect: TRect;
    s: String;
begin
  if FListWorkStation.Count<(Index+1) then Exit;
  iRect:=Rect;
  TCheckListBox(Control).Canvas.FillRect(Rect);
  iRect.Right:=iRect.Bottom-iRect.Top+3;
  if TWorkStation(FListWorkStation.Objects[Index]).isReady then
  begin
    if Length(TWorkStation(FListWorkStation.Objects[Index]).LastError)=0 then
       ImageList1.Draw(TCheckListBox(Control).Canvas,iRect.Left,iRect.Top,0,true)
    else
       ImageList1.Draw(TCheckListBox(Control).Canvas,iRect.Left,iRect.Top,1,true)
  end;
  iRect.Left:=iRect.Right+2;
  iRect.Right:=iRect.Left+TCheckListBox(Control).Canvas.TextWidth('accountingrgto1');
  DrawText(TListBox(Control).Canvas.Handle, PChar(CheckListBox1.Items[Index]), -1, iRect, DT_Left or DT_SingleLine or
    DT_END_ELLIPSIS);
  if Length(TWorkStation(FListWorkStation.Objects[Index]).LastError)>0 then
    s:=TWorkStation(FListWorkStation.Objects[Index]).LastError
  else
    s:=TWorkStation(FListWorkStation.Objects[Index]).VideoAdapter;
  iRect.Left:=iRect.Right+2;
  iRect.Right:=CheckListBox1.Width;
  DrawText(TCheckListBox(Control).Canvas.Handle, PChar(s), -1, iRect, DT_Left or DT_SingleLine or DT_END_ELLIPSIS);
end;
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 13.08.2011, 14:30   #2
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Может необходимо как то сдвинуть текст и картинку iRect.Left:=?
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение Image через канвас (Bitmap) Dj_SheLL Помощь студентам 2 18.08.2010 18:52
канвас iliili Общие вопросы Delphi 1 25.05.2010 17:26
CheckListBox jahongir007 Общие вопросы Delphi 4 07.06.2009 12:10
Как нарисовать на КАНВАС-е БИТМАП. Altera Общие вопросы Delphi 3 09.03.2008 15:41