Привет всем Я создал новый компонент, полученный от TWinControl
. Я положил его на TPanel
, и я попытался вызвать процедуру PaintTo
панели. Результатом является панель и ее подпись, а мой компонент вообще не нарисован на холсте. Что я должен делать по этому поводу?PaintTo не работает с моим компонентом
часть источника (как это спросил дорогой Давид):
Procedure TApListBox.Paint;
var
C: TCanvas;
B: TBitmap;
ItemClient: TPoint;
Begin
Try
If (FUpdating > 0) Then
Exit;
Try
BeginUpdate;
B := TBitmap.Create;
B.Width := Width;
B.Height := Height;
With B.Canvas Do Begin
Lock;
// Begin :
ItemClient := Point(IVisPanel + 3, 2);
// Draw Items
PaintItems(B.Canvas, ItemClient);
Unlock;
End;
C := TCanvas.Create;
C.Handle := GetWindowDC(Self.Handle);
C.Lock;
inherited;
C.Draw(1, 1, B);
If (RenameEdit.Visible) Then
RenameEdit.Repaint;
Finally
C.Unlock;
ReleaseDC(0, C.Handle);
C.Free;
B.Free;
Dec(FUpdating);
End;
Except
End;
End;
Как ваш контроль рисует сам? –
Если панель, ее подпись, * и * ваш элемент управления не окрашены, почему, по вашему мнению, проблема связана с вашим управлением, а не с панелью? –
Вы используете перегрузку «холста»? Или, если вы используете перегрузку «DC» и передаете ей «Canvas», блокируете ли вы холст? –