Как получить изображение панели с combobox

Мне нужно получить изображение панели.

Проблема в том, что если панель содержит TCombobox, то текст не отображается.

procedure AssignPanelImageToPicture(Panel : TPanel;Image : TImage);
var
 B : TBitmap;
begin
 B := TBitmap.Create;
 try
   B.Width := Panel.Width;
   B.Height := Panel.Height;
   B.Canvas.Lock;
   Panel.PaintTo(B.Canvas.Handle,0,0);
   B.Canvas.Unlock;
   Image1.Picture.Assign(B);
  finally
    B.Free;
  end;
end;

Используя этот код, я бросаю панель с TCombobox на ней. Затем ввожу значение в свойство Text. Также я помещаю на нее изображение TImage Next. Затем я добавляю кнопку для вызова приведенного выше код.

Вот результат:

Imaging of Panel Painting Problem

Есть ли лучший способ получить истинное изображение панели.

5
задан menjaraz 12 January 2012 в 04:29
поделиться