# DTileLayout

- **Ortam:** İstemci
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/DTileLayout
- **Çeviri tarihi:** 2025-09-08

## Açıklama

[DIconLayout](https://gmod.tr/wiki/DIconLayout)'a benzer şekilde, bu da panelleri karolar olarak iki boyutlu bir şekilde düzenler.

Bununla [DIconLayout](https://gmod.tr/wiki/DIconLayout) arasındaki fark, [DIconLayout](https://gmod.tr/wiki/DIconLayout) öğelerinin hepsinin aynı yüksekliğe sahip olması, [DTileLayout](https://gmod.tr/wiki/DTileLayout) öğelerinde ise bu zorunluluğun olmamasıdır. [DTileLayout](https://gmod.tr/wiki/DTileLayout), alt öğelerini en iyi şekilde "paketlemek" için bir yol bulacaktır.
Örneğin, iki sütunlu bir düzende, 2 birim yüksekliğindeki bir öğe bir sütuna yerleştirilirken, 1 birim yüksekliğindeki iki öğe diğer sütuna yerleştirilecektir.

Ancak, bu panelin alt öğeleri arasında tanımsız bir sırayla dolaşması ve dolaşım sırasında düzenleme yapması nedeniyle, bu paketlemenin mümkün olan en düşük yüksekliğe yol açacağının garantisi olmadığını belirtmek gerekir.

Bu, spawnmenu (doğma menüsü) tarafından spawnicon'ları (doğma ikonları) düzenlemek için kullanılır.

Temel boyut, bir karonun olabileceği en küçük boyutu tanımlar ve tüm alt panelleri barındırmak için dikey olarak yeniden boyutlanır. Her satırdaki eleman sayısı, temel boyuta ve genişliğe göre belirlenir.

Ayrıca isteğe bağlı olarak bu karoların yeniden düzenlenmesine izin verir. Bu işlevselliği etkinleştirmek için, DTileLayout üzerinde benzersiz bir tanımlayıcı ile [DDragBase:MakeDroppable](https://gmod.tr/wiki/DDragBase:MakeDroppable) fonksiyonunu çağırın. Bundan sonra eklenen tüm paneller taşınabilir olacaktır.

[Kaynağı görüntüle](https://github.com/Facepunch/garrysmod/blob/master/garrysmod/lua/vgui/dtilelayout.lua)

## Ebeveyn

Bu sayfada listelenmeyen metotları vb. [DDragBase](https://gmod.tr/wiki/DDragBase)'den miras alır.

## Olaylar

DTileLayout:[OnModified](https://gmod.tr/wiki/DTileLayout:OnModified)()

DTileLayout üzerine bir şey bırakıldığında veya içinde yeniden düzenlendiğinde çağrılır.

## Metotlar

DTileLayout:[ClearTiles](https://gmod.tr/wiki/DTileLayout:ClearTiles)()

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Panelin karo tablosunu temizler. DTileLayout:LayoutTiles tarafından kullanılır.

DTileLayout:[ConsumeTiles](https://gmod.tr/wiki/DTileLayout:ConsumeTiles)( [number](https://gmod.tr/wiki/number) x, [number](https://gmod.tr/wiki/number) y, [number](https://gmod.tr/wiki/number) w, [number](https://gmod.tr/wiki/number) h )

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Bir dizi karoyu bir panel tarafından işgal edilmiş olarak belirlemek için çağrılır.

[Panel](https://gmod.tr/wiki/Panel) DTileLayout:[Copy](https://gmod.tr/wiki/DTileLayout:Copy)()

DTileLayout'un birebir bir kopyasını oluşturur ve döndürür.

DTileLayout:[CopyContents](https://gmod.tr/wiki/DTileLayout:CopyContents)( [Panel](https://gmod.tr/wiki/Panel) source )

Verilen panel nesnesindeki tüm alt öğelerin kopyalarını oluşturur ve bunları bu panele ebeveyn yapar.

[number](https://gmod.tr/wiki/number), [number](https://gmod.tr/wiki/number) DTileLayout:[FindFreeTile](https://gmod.tr/wiki/DTileLayout:FindFreeTile)( [number](https://gmod.tr/wiki/number) x, [number](https://gmod.tr/wiki/number) y, [number](https://gmod.tr/wiki/number) w, [number](https://gmod.tr/wiki/number) h )

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Verilen boyuta uyan ilk boş karo grubunun koordinatlarını bulur.

[boolean](https://gmod.tr/wiki/boolean) DTileLayout:[FitsInTile](https://gmod.tr/wiki/DTileLayout:FitsInTile)( [number](https://gmod.tr/wiki/number) x, [number](https://gmod.tr/wiki/number) y, [number](https://gmod.tr/wiki/number) w, [number](https://gmod.tr/wiki/number) h )

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Bir karo grubunun boş olup olmadığını belirler.

[number](https://gmod.tr/wiki/number) DTileLayout:[GetBaseSize](https://gmod.tr/wiki/DTileLayout:GetBaseSize)()

DTileLayout:SetBaseSize ile ayarlanan her bir karonun boyutunu döndürür.

[number](https://gmod.tr/wiki/number) DTileLayout:[GetBorder](https://gmod.tr/wiki/DTileLayout:GetBorder)()

DTileLayout:SetBorder tarafından ayarlanan kenarlık boşluğunu döndürür.

[number](https://gmod.tr/wiki/number) DTileLayout:[GetMinHeight](https://gmod.tr/wiki/DTileLayout:GetMinHeight)()

DTileLayout'un yeniden boyutlanabileceği minimum yüksekliği döndürür.

[number](https://gmod.tr/wiki/number) DTileLayout:[GetSpaceX](https://gmod.tr/wiki/DTileLayout:GetSpaceX)()

DTileLayout:SetSpaceX tarafından ayarlanan 2 eleman arasındaki X ekseni boşluğunu döndürür.

[number](https://gmod.tr/wiki/number) DTileLayout:[GetSpaceY](https://gmod.tr/wiki/DTileLayout:GetSpaceY)()

DTileLayout:SetSpaceY tarafından ayarlanan 2 eleman arasındaki Y ekseni boşluğunu döndürür.

[any](https://gmod.tr/wiki/any) DTileLayout:[GetTile](https://gmod.tr/wiki/DTileLayout:GetTile)( [number](https://gmod.tr/wiki/number) x, [number](https://gmod.tr/wiki/number) y )

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Bir karonun dolu olma durumunu alır.

DTileLayout:[Layout](https://gmod.tr/wiki/DTileLayout:Layout)()

Son genişlik/yükseklik bilgisini sıfırlar ve panelin düzenini geçersiz kılarak tüm alt öğe konumlarının yeniden hesaplanmasına neden olur. Bir alt öğe eklendiğinde veya kaldırıldığında çağrılır ve paneli yenilemek için çağrılabilir.

DTileLayout:[LayoutTiles](https://gmod.tr/wiki/DTileLayout:LayoutTiles)()

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Boyutu değiştiyse, alt panelleri düzenlemek ve yerleştirmek için PANEL:PerformLayout tarafından çağrılır.

DTileLayout:[SetBaseSize](https://gmod.tr/wiki/DTileLayout:SetBaseSize)( [number](https://gmod.tr/wiki/number) size )

Tek bir karonun boyutunu ayarlar. Eğer bir alt panel bu boyuttan daha büyükse, birkaç karo kaplayacaktır. Eğer alt öğelerin boyutunu doğru bir şekilde ayarlıyorsanız, muhtemelen bunu değiştirmenize gerek yoktur.

DTileLayout:[SetBorder](https://gmod.tr/wiki/DTileLayout:SetBorder)( [number](https://gmod.tr/wiki/number) border )

DTileLayout'un kenarı/sınırı ile içindeki tüm elemanlar arasındaki boşluğu ayarlar.

DTileLayout:[SetMinHeight](https://gmod.tr/wiki/DTileLayout:SetMinHeight)( [number](https://gmod.tr/wiki/number) minH )

DTileLayout'un yeniden boyutlanacağı minimum yüksekliği belirler. Bu, alt panellerin sık sık ekleneceği/kaldırılacağı durumlarda kullanışlıdır.

DTileLayout:[SetSpaceX](https://gmod.tr/wiki/DTileLayout:SetSpaceX)( [number](https://gmod.tr/wiki/number) spacingX )

DTileLayout içindeki 2 eleman arasındaki X ekseni boşluğunu ayarlar.

DTileLayout:[SetSpaceY](https://gmod.tr/wiki/DTileLayout:SetSpaceY)( [number](https://gmod.tr/wiki/number) spaceY )

DTileLayout içindeki 2 eleman arasındaki Y ekseni boşluğunu ayarlar.

DTileLayout:[SetTile](https://gmod.tr/wiki/DTileLayout:SetTile)( [number](https://gmod.tr/wiki/number) x, [number](https://gmod.tr/wiki/number) y, [any](https://gmod.tr/wiki/any) state )

Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Bir karonun dolu olma durumunu ayarlamak için çağrılır.

### Örnek

Bir [DFrame](https://gmod.tr/wiki/DFrame) içinde bir DTileLayout oluşturur, temel boyutu ayarlar ve 32 tane [DLabel](https://gmod.tr/wiki/DLabel) ekler.

```lua
local frame = vgui.Create("DFrame")
frame:SetSize(300, 300)
frame:SetTitle("DTileLayout Example")
frame:MakePopup()
frame:Center()

local layout = vgui.Create("DTileLayout", frame)
layout:SetBaseSize(32) -- Karo boyutu
layout:Dock(FILL)

//Ne yaptığını görebilmek için bir arka plan çizin
layout:SetDrawBackground(true)
layout:SetBackgroundColor(Color(0, 100, 100))

layout:MakeDroppable("unique_name") -- Alt öğeleri yeniden düzenlememize olanak tanır

for i = 1, 32 do
	layout:Add(Label(" Label " .. i))
end
```

**Çıktı:**

![DTileLayout.png](https://gmod.tr/api/uploads/wiki/de75831341e3c12d1cdf.png)

- [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/DTileLayout
