DTextEntry

Açıklama

Oyuncunun seçip kopyalaması veya alternatif olarak kendi metinlerini girmelerine olanak tanıyan metinleri görüntülemek için kullanılabilecek bir form.

DTextEntry'nizin ebeveynlerinden en az birinin bir EditablePanel veya ondan türetilmiş bir eleman (örneğin bir DFrame) olması gerekir, aksi takdirde odaklanamaz ve bu nedenle seçilemez hale gelir.

Ayrıca, bahsi geçen panelde Panel:MakePopup fonksiyonunu çağırmalısınız, yoksa DTextEntry çalışmaz.

Kaynağı görüntüle

Ebeveyn

Bu sayfada listelenmeyen metotları vb. TextEntry'den türetir.

Uygular

Aşağıdaki kancaları/metotları uygular veya geçersiz kılar. Bunları geçersiz kılmak isterseniz, muhtemelen orijinal fonksiyonu da çağırmak istersiniz.

Olaylar

DTextEntry:OnChange()
Kullanıcı DTextEntry içindeki metni değiştirdiğinde DTextEntry:OnTextChanged tarafından çağrılır. DTextEntry metni değiştiğinde özel davranış tanımlamak için bu fonksiyonu geçersiz kılmalısınız.
DTextEntry:OnEnter( string value )
Bir DTextEntry üzerinde Enter tuşuna basıldığında çağrılır. DTextEntry:IsEditing bu geri çağrıda (callback) hala true döndürecektir!
DTextEntry:OnGetFocus()
DTextEntry odağı kazandığında çağrılır.
DTextEntry:OnKeyCode( number keyCode )
Metin girişi odaklanmışken geçerli bir karakter yazıldığında DTextEntry'nin TextEntry:OnKeyCodeTyped geçersiz kılması (override) tarafından çağrılır.
DTextEntry:OnLoseFocus()
DTextEntry odağı kaybettiğinde çağrılır.
DTextEntry:OnValueChange( string value )
DTextEntry'nin metin değişiklikleri uygulandığında çağrılır. (Ve eğer varsa, bağlı konsol değişkenine ayarlanır) Konsol değişkeni güncellenmese bile her metin değişikliğinde çağrılan bir fonksiyon için ayrıca DTextEntry:OnChange'e bakın. Metin değiştiğinde özel davranış tanımlamak için bu fonksiyonu geçersiz kılmalısınız. Bu metot şu durumlarda çağrılır: Yazı yazdıktan sonra Enter'a basıldığında DTextEntry:SetValue kullanıldığında Her tuşa basıldığında - yalnızca DTextEntry:SetUpdateOnType true olarak ayarlanmışsa (varsayılanı false'tur)

Metotlar

DTextEntry:AddHistory( string text )
DTextEntry'nin geçmişine bir giriş ekler. DTextEntry:SetHistoryEnabled'e bakın.
boolean DTextEntry:AllowInput( string char )
Panelin değeri güncellendiğinde (kullanıcı girdisiyle veya başka bir şekilde) çağrılır. Bir kullanıcının TextEntry metnini değiştirip değiştiremeyeceğini belirlemenizi sağlar. Varsayılan olarak, bu sadece panelin sayısal karakterleri engelleyip engellemediğini kontrol eder ve değer herhangi bir sayısal karakter içeriyorsa düzenlenmesini önler. Bu aslında sadece TextEntry türevi elemanlarda çalışan bir motor kancasıdır. Karakter sınırlarını değiştirmenin bir yolunu arıyorsanız, Panel:SetMaximumCharCount'a bakın.
boolean DTextEntry:CheckNumeric( string strValue )
Bir dizenin sayısal olup olmadığını döndürür. DTextEntry:SetNumeric false olarak ayarlanmışsa her zaman false döndürür.
table DTextEntry:GetAutoComplete( string inputText )
Otomatik tamamlama seçenekleri listesi istendiğinde DTextEntry tarafından çağrılır. Geçersiz kılınması (override) amaçlanmıştır.
table DTextEntry:GetCursorColor()
Bir DTextEntry'nin imleç rengini döndürür.
boolean DTextEntry:GetDisabled()
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. Bunun yerine Panel:IsEnabled kullanın. Metin kutusunun devre dışı bırakılıp bırakılmadığını döndürür. Bunun yerine Panel:IsEnabled kullanın.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. DTextEntry:GetPaintBackground'un takma adıdır (alias). Onun yerine onu kullanın. Arka planın görüntülenip görüntülenmediğini belirtir.
boolean DTextEntry:GetDrawBorder()
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. DTextEntry:SetDrawBorder tarafından ayarlanan değeri döndürür.
Enter tuşuna basmanın panelin odağını kaybetmesine neden olup olamayacağını döndürür. Bu fonksiyon true döndürse bile çok satırlı bir DTextEntry'nin Enter tuşu kullanılarak sonlandırılamayacağını unutmayın.
number DTextEntry:GetFloat()
DTextEntry'nin içeriğini sayı olarak döndürür.
Metin girişinin vurgu/metin seçim rengini döndürür. Eğer üzerine yazılmadıysa, derma arayüzü (skin) değerini döndürür. (colTextEntryTextHighlight)
DTextEntry'nin geçmiş özelliğinin etkin olup olmadığını döndürür. DTextEntry:AddHistory'e bakın.
number DTextEntry:GetInt()
DTextEntry:GetFloat'a benzer, ancak değeri en yakın tam sayıya yuvarlar.
boolean DTextEntry:GetNumeric()
DTextEntry'ye yalnızca sayısal karakterlerin (123456789. -) girilip girilemeyeceğini döndürür.
Arka planın görüntülenip görüntülenmediğini belirtir
Panel yer tutucusunun mevcut rengini döndürür
DTextEntry:SetPlaceholderText ile ayarlanan yer tutucu metnini döndürür.
Panelin sekme (tab) tuşunu kabul edip etmediğini döndürür.
table DTextEntry:GetTextColor()
Bir DTextEntry'nin metin rengini döndürür.
DTextEntry'nin her karakter yazıldığında veya silindiğinde mi yoksa yalnızca Enter'a basıldığında mı DTextEntry:OnValueChange'i çalıştıracak şekilde ayarlanıp ayarlanmadığını döndürür.
boolean DTextEntry:IsEditing()
Bu DTextEntry'nin düzenlenip düzenlenmediğini döndürür. (yani odaklanmış olup olmadığını)
DTextEntry:OnTextChanged( boolean noMenuRemoval )
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız. DTextEntry içindeki metin değiştiğinde dahili olarak çağrılır. Bu, TextEntry:OnTextChanged'in bir uygulamasıdır. Bu fonksiyonu geçersiz kılmamalısınız. Bunun yerine DTextEntry:OnValueChange kullanın.
DTextEntry:OpenAutoComplete( table tab )
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız. Gerçekten DTextEntry:GetAutoComplete'ı kullanmalısınız. Girdi tablosuna dayanarak DTextEntry için bir DMenu oluşturur.
DTextEntry:SetCursorColor( table color )
DTextEntry'deki imlecin rengini (yanıp sönen çizgi) ayarlar.
DTextEntry:SetDisabled( boolean disabled )
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. Bunun yerine Panel:SetEnabled kullanın. Bir DTextEntry'de girdiyi devre dışı bırakır ve görsel olarak grileştirir. Bu, metin kutusunu görsel olarak değiştirmeyen DTextEntry:SetEditable'dan farklıdır.
DTextEntry:SetDrawBackground( boolean show )
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. DTextEntry:SetPaintBackground'un takma adıdır (alias). Onun yerine onu kullanın.
DTextEntry:SetDrawBorder( boolean bool )
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. Hiçbir şey yapmaz.
DTextEntry:SetEditable( boolean enabled )
Bir DTextEntry'de Girdiyi devre dışı bırakır. Bu, DTextEntry:SetDisabled'dan farklıdır - SetEditable, metin kutusunun görünümünü etkilemez.
DTextEntry:SetEnterAllowed( boolean allowEnter )
Çok satırlı olmadığı sürece, Enter tuşuna basmanın DTextEntry'nin odağı kaybetmesine neden olup olmayacağını ayarlar. Bu varsayılan olarak doğrudur (true).
DTextEntry:SetFont( string font )
DTextEntry'nin yazı tipini değiştirir.
DTextEntry:SetHighlightColor( table color )
Metin girişinin varsayılan vurgu/metin seçim rengini ayarlar/geçersiz kılar.
DTextEntry:SetHistoryEnabled( boolean enable )
DTextEntry'nin geçmiş özelliğini etkinleştirir veya devre dışı bırakır. Bu, oyuncunun yukarı ve aşağı ok tuşlarını kullanarak geçmiş öğeleri arasında gezinmesini sağlar. DTextEntry:AddHistory'e bakın.
DTextEntry:SetNumeric( boolean numericOnly )
Girdi olarak sayısal olmayan karakterlerin reddedilip reddedilmeyeceğini ayarlar. Sayısal karakterler şunlardır: 1234567890. -
DTextEntry:SetPaintBackground( boolean show )
DTextEntry'nin varsayılan arka planının gösterilip gösterilmeyeceğini ayarlar.
DTextEntry:SetPlaceholderColor( table color = Color(128, 128, 128) )
Yer tutucu rengini ayarlamanıza izin verir.
DTextEntry:SetPlaceholderText( string text = nil )
Metin girişinde kullanıcı metni yokken gösterilecek olan yer tutucu metnini ayarlar. Oyuncu yazmaya karar verirse yer tutucu metnini silmek zorunda kalmaz.
DTextEntry:SetTabbingDisabled( boolean enabled )
Panelin sekme (tab) tuşunu kabul edip etmeyeceğini ayarlar. Sekme tuşunu devre dışı bırakmak, panelin fare ile odağını kaybetmesini engeller, ancak diğer klavye odaklarına odaklanmak için hala çalışır.
DTextEntry:SetTextColor( table color )
DTextEntry'nin metin rengini ayarlar.
DTextEntry:SetUpdateOnType( boolean updateOnType )
Her karakter yazdığımızda veya sildiğimizde mi yoksa yalnızca Enter'a basıldığında mı DTextEntry:OnValueChange'i tetiklememiz gerektiğini ayarlar.
DTextEntry:SetValue( string text )
DTextEntry'nin metnini ayarlar ve DTextEntry:OnValueChange'i çağırır. DTextEntry'nin metni yalnızca o anda içine yazı yazılmıyorsa değişir. Metni ne olursa olsun ayarlamayı tercih ederseniz, Panel:SetText'i kullanın.
DTextEntry:UpdateConvarValue()
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız. DTextEntry:OnTextChanged, DTextEntry:OnEnter ve DTextEntry:OnLoseFocus tarafından kullanılır TextEntry ile ilişkili ConVar'ı yeni değerine günceller.
DTextEntry:UpdateFromHistory()
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız. Geçmişten metin ayarlamak için dahili olarak kullanılır.
DTextEntry:UpdateFromMenu()
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız. Otomatik tamamlama menüsünden metin ayarlamak için dahili olarak kullanılır.

Örnek

Yerel oyuncunun sohbet penceresine mesaj yazdırmanıza olanak tanıyan bir metin giriş formu oluşturur.

concommand.Add( "test_textentry", function(ply) local frame = vgui.Create( "DFrame" ) frame:SetSize( 400, 200 ) frame:Center() frame:MakePopup() local TextEntry = vgui.Create( "DTextEntry", frame ) -- formu frame'in bir çocuğu olarak oluştur TextEntry:Dock( TOP ) TextEntry.OnEnter = function( self ) chat.AddText( self:GetValue() ) -- textentry metnini bir sohbet mesajı olarak yazdır end local TextEntryPH = vgui.Create( "DTextEntry", frame ) TextEntryPH:Dock( TOP ) TextEntryPH:DockMargin( 0, 5, 0, 0 ) TextEntryPH:SetPlaceholderText( "Ben bir yer tutucuyum" ) TextEntryPH.OnEnter = function( self ) chat.AddText( self:GetValue() ) end end )
Çıktı:
image.png

Örnek

Bir göz atma düğmesiyle bir metin girişi oluşturur.

-- Yeni bir çerçeve (pencere) oluştur local frame = vgui.Create( "DFrame" ) frame:SetSize( 300, 300 ) -- Çerçevenin boyutunu ayarla frame:Center() -- Çerçeveyi ekranda ortala frame:MakePopup() -- Çerçevenin diğer pencerelerin önünde görünmesini ve kullanıcı girdisini kabul etmesini sağla -- Çerçeve içinde bir metin giriş alanı oluştur local tEntry = vgui.Create("DTextEntry", frame) tEntry:Dock(TOP) -- Metin girişini çerçevenin üstüne yerleştir -- Metin giriş alanı içinde yeni bir düğme oluştur local browseBtn = vgui.Create("DButton", tEntry) browseBtn:SetText("...") -- Düğmenin metnini ayarla browseBtn:SetWidth(20) -- Düğmenin genişliğini ayarla browseBtn:Dock(RIGHT) -- Düğmeyi metin giriş alanının sağına yerleştir -- Göz atma düğmesine tıklandığında çağrılacak fonksiyon -- Bir referans veya anonim olabilir (bu durumdaki gibi) browseBtn.DoClick = function() -- Belirli dosya türleri için bir tarayıcı açacak kod buraya gelmelidir end
Çıktı:
tentry_w_browse.png

(Dosya tarayıcısının nasıl yapılacağına ilişkin talimatlar için bkz. DFileBrowser)

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord