Einzelnen Beitrag anzeigen

Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Abgeleitete TCustomCombobox Button ändern

  Alt 12. Mär 2019, 12:39
Nach etwas längerer Recherche bin ich jetzt auf eine funktionierende Lösung gekommen. Da ich noch nie wirklich mit Canvas gearbeitet habe, war es schon etwas rumgefummel... aber meine Erfahrungen sind wieder angewachsen

Ich habe einfach die WMPaint Methode überschrieben. Erst habe ich es mit Rectangle(ClientRect) versucht, aber da wurde auch der Dropdown-Pfeil überbügelt. Mit folgender Lösung ist es genau wie ich will:

Code:
procedure TAutoComboBox.WMPaint(var Message: TWMPaint);
var
  CC: TControlCanvas;
begin
  inherited;
  CC := TControlCanvas.Create;
  try
    CC.Control := Self;
    CC.Pen.Color := clGray;
    CC.Pen.Width := 1;
    CC.MoveTo(ClientRect.Left, ClientRect.Top);
    CC.LineTo(ClientRect.Right - 1, ClientRect.Top);
    CC.LineTo(ClientRect.Right-1, ClientRect.Bottom -1);
    CC.LineTo(ClientRect.Left, ClientRect.Bottom-1);
    CC.LineTo(ClientRect.Left, ClientRect.Top);
  finally
    CC.Free;
  end;
end;
Nach noch ein wenig Recherche bin ich nun auf folgende Lösung gekommen:
Code:
procedure TAutoComboBox.WMPaint(var Message: TWMPaint);
var
  CC: TControlCanvas;
begin
  inherited;
  CC := TControlCanvas.Create;
  try
    CC.Control := Self;
    CC.Brush.Color := clGray;
    CC.FrameRect(ClientRect);
  finally
    CC.Free;
  end;
end;
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?

Geändert von Getox (12. Mär 2019 um 12:48 Uhr)
  Mit Zitat antworten Zitat