我有 2 個矩形,如下圖所示:

現在我只想繪制紅色矩形內的黃色矩形(B)部分。所以我將 clipchildreen=True 設定為矩形 A,我得到了這個:

但這并不好,因為紅色矩形之外的黃色矩形的一部分仍然被繪制。我想得到這個:

我能怎么做 ?最終我可以直接在畫布上畫畫,但即使這樣我也沒有找到一種簡單的方法來實作我想做的事情
uj5u.com熱心網友回復:
這是一個可能適合您的解決方案,盡管我對您的要求做了一些假設,而且這不是一個特別簡單的方法。它涉及使用帶InnerRound角的矩形來隱藏黃色正方形的一部分。
對于下面的步驟,我假設表格是白色的,黃色方塊是 50 x 50,紅色方塊是 150 x 150,圓角的半徑是 20,整個東西在表格上的位置100,100。
我已經將此描述為您將所有控制元件直接手動定位到表單上,但如果我這樣做,我會添加幾個TLayouts 并在任何地方使用Aligns (在第四步的情況下使用負邊距)。您可以在面板或其他控制元件上執行此操作,而不是直接在表單上執行此操作。
請注意,z 順序很重要,這就是為什么下面的步驟 2 到 5 應該按該順序完成的原因。
- 將
Fill.Kind表單設定為Solid. - 將 a
TRectangle置于 100,100。將XRadius和都設定YRadius為 20,將Width和都設定Height為 150,Fill.Color將Red和Stroke.Kind設定為None。 - 將 a
TRectangle置于 100,100。設定Fill.Color為Yellow。 - 將 a
TRectangle置于 80,80。將兩者都設定XRadius為YRadius20,將兩者Height都設定為 20Width,設定Fill.Color為White(Fill.color表單的),Stroke.Kind設定為None,以及CornerType設定為InnerRound。 - 將 a
TRectangle置于 100,100。將XRadius和都設定YRadius為 20,將Height和都設定為Width150 和。Fill.KindNone
這是結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446159.html
上一篇:為什么會出現這種故障?
