Ich danke für den Tipp. ich habe versucht den Balloonhint abzuleiten (habe vorher noch nie eine Komponente abgeleitet), bin aber wohl zu blöd dafür.
Der normale Balloonhint greift in der Funktion "PaintHint" auf Canvas zu. In meiner abgeleiteten Version kann ich das nicht, weil Canvas ein undeklarierter Bezeichner ist.
Vom Positionieren her und von der grundfunktionalität her ist der Balloonhint genau was ich brauche. Ich möchte nur die Hintergrundfarbe und die Schrift noch ändern können.
Code:
unit yxBalloonHint;
interface
uses
System.SysUtils, System.Classes,
Vcl.Controls;
type
TyxBalloonHint = class(TBalloonHint)
private
{ Private-Deklarationen }
protected
procedure PaintHint(HintWindow: TCustomHintWindow); override;
public
{ Public-Deklarationen }
published
{ Published-Deklarationen }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('meineFirma', [TxyBalloonHint]);
end;
{ TxyBalloonHint }
procedure TxyBalloonHint.PaintHint(HintWindow: TCustomHintWindow);
begin
Canvas.Brush.Color := clHighlight;
inherited;
end;
end.
Ich habe mit ein neues
Package erzeugt, diese
Unit hinzugefügt und wie gesagt: Canvas kennt er nicht.