Hallo alle Ich habe eine neue Komponente von TWinControl
abgeleitet. Ich legte es auf eine TPanel
und ich versuchte, die PaintTo
Prozedur des Panels aufzurufen. Das Ergebnis ist das Panel und seine Beschriftung und meine Komponente ist überhaupt nicht auf der Leinwand gemalt. Was soll ich dagegen tun?PaintTo funktioniert nicht mit meiner Komponente
ein Teil der Quelle (wie lieber David fragte):
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;
Wie malt sich Ihre Kontrolle? –
Wenn das Panel, seine Beschriftung, * und * Ihr Steuerelement nicht lackiert sind, warum denken Sie, das Problem ist mit Ihrer Kontrolle und nicht das Panel? –
Verwenden Sie die Überladung "Canvas"? Oder wenn Sie die DC-Überladung verwenden und ein Canvas-Handle an sie übergeben, sperren Sie die Zeichenfläche? –