# PANEL:PerformLayout

- **Ortam:** İstemci
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/PANEL:PerformLayout
- **Çeviri tarihi:** 2026-02-09

```lua
PANEL:PerformLayout( number width, number height )
```

## Açıklama

Panellerin yeniden düzenlenmesi gerektiğinde çağrılır. Bu, tüm çocuk panellerinin bu panelin olası yeni boyutuna uyum sağlamak için yeniden konumlandırılması gerektiği anlamına gelir.

Bu, çeşitli yollarla tetiklenebilir:

- [Panel:InvalidateLayout](https://gmod.tr/wiki/Panel:InvalidateLayout)Bu ya da önceki çerçeve olarak adlandırıldı (argümanına bağlı olarak)
- [Panel:SetPos](https://gmod.tr/wiki/Panel:SetPos)Aynı panelde birden fazla kez çağrıldı ([Çıkış](https://github.com/Facepunch/garrysmod-issues/issues/5519))
- Bu panelye bir çocuk elemanı eklendi (TODO: Verify me)
- Bu panelin boyutu değişti .

Buna function directly demeyin. Kullan [Panel:InvalidateLayout](https://gmod.tr/wiki/Panel:InvalidateLayout)Bunun yerine.

Ayrıca düzenleme döngüslerine neden olmamak için de dikkatli olmalısınız.`vgui_visualizelayout 1`Panel düzenlerini debugging amaçlı görselleştirmek için. paneller performans nedenleri için bunu her çerçeve yapmamalıdır.

## Argümanlar

1 (Gülüşmeler). [Numarası](https://gmod.tr/wiki/number) **genişlik**: Panellerin akım genişliği.
- 2. [Numarası](https://gmod.tr/wiki/number) **yüksekliği**: Panellerin akım yüksekliği.

### Örnek

DFrame ile birlikte yeniden ölçeklendirilecek bir ' yan çubuğu' ile büyüklüğünü değiştirilebilir bir Dframe oluşturmak

```lua
local frame = vgui.Create("DFrame")
frame:SetSize(500, 400)
frame:Center()
frame:SetSizable(true)
-- oPerformLayout orijinal PerformL layout fonksiyonunu saklar
- Onu saklıyoruz çünkü yan çubuğu boyutlandırmak için kendi ile yazmaya gidiyoruz.
-- Daha sonra orijinal function to diyoruz çerçevenin uygun işlevini korumak
-- Orijinal PerformLayout'u buradan bulabilirsiniz https://github.com/Facepunch/garrysmod/blob/master/garriesmod/lua/vgui/[ID=1]#L234-L258
local oPerformLayout = frame.PerformLayout

frame.PerformLayout = function(pnl, w, h)
    oPerformLayout(pnl, w, h)
    pnl.Sidebar:SetWide(w * 0.5)
end

frame.Sidebar = frame:Add("DPanel")
frame.Sidebar:Dock(LEFT)

frame.Sidebar.Paint = function(pnl, w, h)
    surface.SetDrawColor(255, 0, 0)
    surface.DrawRect(0, 0, w, h)
end

frame.Sidebar.PerformLayout = function(pnl, w, h)
    local buttonWidth = w * 0.5
    local buttonHeight = h * 0.5
    pnl.Button:SetSize(buttonWidth, buttonHeight)
    Şimdi düğmeye odaklanıyoruz.
    pnl.Button:SetPos(w / 2 - buttonWidth / 2, h / 2 - buttonHeight / 2)
end

frame.Sidebar.Button = frame.Sidebar:Add("DButton")
frame.Sidebar.Button:SetText("Hello!")
```

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/PANEL:PerformLayout
