Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Event bei Z-Order Änderung o.ä.
22. Nov 2012, 16:29
Cih wollte gerade keine Komponente schreiben, die Simulation hier mit Paintbox und Label überlappend sollte sich IMHO aber identisch verhalten.
Delphi-Quellcode:
Function ZOrderFirst(TestComp,MainComponent:TControl):Boolean;
var
i:Integer;
p:TWinControl;
found:Boolean;
begin
found := false;
p := Maincomponent.Parent;
if not assigned(p) then Exit;
for i := 0 to p.Controlcount - 1 do
begin
if (p.Controls[i]= TestComp) or (p.Controls[i]= MainComponent) then
begin
Result := p.Controls[i]= TestComp;
break;
end;
end;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
Paintbox1.BringToFront;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
Label1.BringToFront;
end;
procedure TForm5.PaintBox1Paint(Sender: TObject);
var
c:TCanvas;
begin
c := TPaintBox(sender).Canvas;
c.Brush.Color := clBlue;
c.Ellipse(TPaintBox(sender).ClientRect);
if ZOrderFirst(Label1,TPaintBox(sender)) then
begin
Label1.BringToFront;
end;
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
Geändert von Bummi (22. Nov 2012 um 18:33 Uhr)
Grund: weil ein Käfer nie alleine kommt, Deddy's Hinweis + logischer Dreher bei Abfrage der zOrder
|