Mache erstmal den Rand so groß, dass man ihn auch vernünftig sieht (siehe Code). Die Reihenfolge der späteren Anzeige (also dass das Label auf dem Rectangel liegt) kannst du beeinflussen, indem du das Label zuletzt noch einmal refreshed.
Delphi-Quellcode:
begin
with Sender as TLabel do begin
Color := clSkyBlue;
Font.Color := clNavy;
end;
//showmessage ('KJHJK');
Canvas.Pen.Width := 2;
Canvas.Pen.Color :=clBlue;
Canvas.Rectangle ((Sender as TLabel).Left-5,(Sender as TLabel).Top-5,
(Sender as TLabel).Left + (Sender as TLabel).Width+5,
(Sender as TLabel).Top+(Sender as TLabel).Height+5);
(Sender as TLabel).Refresh;
end;
Wie willst du bei diesem Konstrukt den Rahmen eigentlich wieder wegmachen, wenn die Maus das Label verlässt?