Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Delphi.Narium,
12. Jul 2021
Na klar, dashier wäre dann eher suboptimal ;-) Result := Parent.ClientRect.Contains(BoundsRect) and Assigned(Parent);
Oder etwas flacher formuliert:
Wenn rechts was steht, was scheitern kann, dann muss links davon was stehen, dass sicherstellt, dass das zum Scheitern verurteilte nie erreicht wird.
Oder aber auch: Assigned steht zuerst, wenn das ok ist, kann man rechts davon...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Delphi.Narium,
12. Jul 2021
Ginge nicht auchfunction TControlHelper.isClipped(): Boolean;
begin
Result := Assigned(Parent) and Parent.ClientRect.Contains(BoundsRect);
end;
Ok, geht nicht, wenn boolsche Ausdrücke vollständig ausgewertet werden ;-)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Delphi.Narium,
12. Jul 2021
Du weißt wo der Button beginnt: Button.Top
Du weißt wie hoch der Button ist: Button.Height.
Du weißt wie hoch sein Parent ist: Button.Parent.Height.
Ist nun Button.Top + Button.Height > Button.Parent.Height, so ist der Button nicht vollständig sichtbar.
Bei der Breite geht's analog:
Sind Button.Left + Button.Width > Button.Parent.Width, dann ist der Button nicht vollständig sichtbar.