Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема с DrawItem


Автор: devmstr 18.9.2004, 22:13
Почему данный код не выводит текст.

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
s:string;
begin
s:='Hello World';
DrawText(ListBox1.Canvas.Handle,PChar(s),length(s),Rect,DT_CENTER or DT_WORDBREAK);
end;
qstn.gif

Автор: Pakshin A. S. 18.9.2004, 22:17
А такое не подойдет?
Код

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
   s:string;
begin
   s:='Hello World';
   with (Control As TListBox).Canvas do
    begin
     FillRect(rect);
     TextOut(Rect.Left, Rect.Top, s);
    end;
end;

Автор: Pakshin A. S. 18.9.2004, 22:32
А вот и с DrawText biggrin.gif :
Код

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
   s:string;
begin
   s:='Hello World';
   DrawText((Control as TlistBox).Canvas.Handle,PChar(s),length(s),Rect,DT_CENTER or DT_WORDBREAK);
   OffsetRect(rect, rect.right div 2,  rect.buttom div 2);
   DrawText((Control as TlistBox).Canvas.Handle,PChar(s),length(s),Rect,DT_CENTER or DT_WORDBREAK);
end;

Взято из компонента. Может сработает... smile.gif

А может и так сработает exclamation.gif :
Код

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
   s:string;
begin
   s:='Hello World';
   DrawText((Control as TListBox).Canvas.Handle,PChar(s),length(s),Rect,DT_CENTER or DT_WORDBREAK);
end;

thumbs-up.gif

Автор: devmstr 19.9.2004, 09:12
Спасибо. Все рботает

Автор: Pakshin A. S. 19.9.2004, 13:27
magician
biggrin.gif Обращайся...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)