Hallo,
Ich hab das jetzt so hier gelöst:
Delphi-Quellcode:
procedure Decorate(hdc: HDC; r: TRect; penColor: TColor);
const
PENWIDTH = 2;
begin
with TCanvas.Create
do
try
Handle := hdc;
Pen.Width := PENWIDTH;
Pen.Color := penColor;
InflateRect(r, PENWIDTH, PENWIDTH);
Brush.Style := bsClear;
Rectangle(r);
finally
Free;
end;
end;
procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
//Selektionsrahmen zeichnen
with Sender
as TLabel
do
Decorate(GetDC(
Handle), BoundsRect, clHighlight);
end;
procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
//Selektionsrahmen löschen
{
with Sender as TLabel do
Decorate(GetDC(Handle), BoundsRect, self.Color);}
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
{
FShape := TShape.Create(self);
FShape.Left := Label1.Left - 2;
FShape.Top := Label1.Top - 2;
FShape.Width := Label1.Width + 2;
FShape.Height := Label1.Height + 2;
FShape.Parent := self;
}
end;
Die letzte Version, die mit TShape verdeckt mir leider meine Labelbeschriftung, womit ja die Komponente verdeckt wäre. Die Prozedut Decotate funktioniert gut.
@Hansa: Schade, ich musste Axel die unschöne Kunde überbringen. Damit hat sich aber auch der Designer erledigt, für den er, nicht ich, den Selektionsrahmen gebraucht hätte. In die Lazarusquellen einzusteigen, das dauert einfach zu lange, um daraus eine Lösung zu extrahieren. Axel wir sich ein neues Projekt überlegen.
Habe mir die Jedis mal angesehen. Da sind auch Formdesigner, Objektinspektor u.a. dabei. Aber wozu braucht man das noch. CodeGear und das Lazarusteam können doch Anwendungsdesigner echt besser programieren, als unsereiner, der sich jetzt in die Jedis erst mal einarbeiten muss.
@_frank_: Ich habe trotzdem mal per GExperts Grep Suche nach TSizeCtrls und TStretchHandle gesucht, aber leider ohne Erfolg. Dann gegoogelt und TStretchHandle gefunden und runtergeladen. Werde mir den Quelletext trotz allem mal ansehen. TSizeCtrls hab ich gar nicht gefunden, da gibt mir auch Google keine Auskunft. Egal, jetzt guck ich mir mal den Quelltext von TStretchHandle an. Irgenwie hat mich der Ehrgeiz gepackt, obwohl wohl andere so einen Anwendungsdesigner besser hinkriegen werden, als ich.