void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State)
{
Graphics::TBitmap *pBitmap; // temporary variable for item’s bitmap
int Offset = 2; // default text offset width
// note that we draw on the listbox’s canvas, not on the form
TCanvas *pCanvas = ((TListBox *)Control)->Canvas;
pCanvas->FillRect(Rect); // clear the rectangle
pBitmap = (Graphics::TBitmap *)((TListBox *)Control)->Items->Objects[Index];
if (pBitmap)
{
pCanvas->BrushCopy(Bounds(Rect.Left + Offset, Rect.Top, pBitmap->Width, pBitmap->Height), pBitmap, Bounds(0, 0, pBitmap->Width, pBitmap->Height), clRed); // render bitmap
Offset += pBitmap->Width + 4; // add four pixels between bitmap and text
}
// display the text
pCanvas->TextOut(Rect.Left + Offset, Rect.Top, ((TListBox *)Control)->Items->Strings[Index]);
}
Memo поле
Если нет, то какой компонент можно использовать для вывода текста и каритнок в одном поле?
TRichEdit
Я пробую так:
Graphics::TBitmap *pic=new Graphics::TBitmap();
pic->LoadFromFile("F1.bmp");
RichEdit1->Lines->AddObject("",pic);
Но не получается...
так не получиться однозначно - TRichEdit предназначен для вывода файлов в формате rtf. Т.е. вначале надо этот файл создать, затем загрузить - и еще с учетом кучи ньюансов. Если надо просто рисунки с подписями - то пробуйте стандартный пример из справки: