Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Event bei Z-Order Änderung o.ä.

  Alt 22. Nov 2012, 15: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 17:33 Uhr) Grund: weil ein Käfer nie alleine kommt, Deddy's Hinweis + logischer Dreher bei Abfrage der zOrder
  Mit Zitat antworten Zitat