2013-06-18 22 views
6

Sabit bir StringGrid ile bir iOS Uygulaması oluşturmak istiyorum. Bu şeyin her hücresi yalnızca sayısal değerleri kabul etmelidir. Bunun için KeyboardType öğesini vktNumberPad ... olarak ayarlamak istiyorum ancak şu ana kadar bunun için bir giriş noktası bulamadı. Burada bunun nasıl yapılacağına dair bir ipucu var mı?StringGrid'de bir değer girerken Klavye Türünü ayarlamanın bir yolu var mı?

Tamam, bu yüzden Mikes ipucunu takip ederek kendi sütun sınıfımı kullanmaya başladım. Burada

TNumEditCell = class(TEdit) 
end; 
TNumberColum = class(TStringcolumn) 
private 
    function CreateCellControl: TStyledControl; override; 
end; 

Ve

şaşırtıcı kısmı gelir:

function TNumberColum.CreateCellControl: TStyledControl; 
begin 
    result := TNumEditCell.Create(Self); 
    TNumEditCell(result).KeyboardType := vktNumberPad; // <- is undeclared!! What?! 
    TNumEditCell(result).OnChange := DoTextChanged; 
end; 

Dostumuz derleyici vktNumberPad ne olduğunu bilmiyor. Onu bir telefon direğine FMX.Types.TVirtualKeyboardType(vktNumberPad) işaret etsem bile. Sanırım yanlış bir şey yapıyorum :(

Son düzenleme: Gerçekten de, Peter'in işaret ettiği gibi yanlış bir şey yaptım. Bu yüzden yukarıdaki kod ve Peters, her şeyin işe yaradığını ima ediyor. Ummm ... bu soruyu nasıl bitirebilirim?

+0

TEdit için, tasarımcı içinde KeyboardType ayarlayabilirsiniz Eğer TStringGrid ile bunu yapamayız – Argalatyr

+0

Hayır.? En azından TEdit ile olduğu gibi, en azından ben bulamadım. – Sherlock70

+1

Bir ızgara hücresi sadece bir TEdit bu yüzden sorun olmamalı ama özel bir sütun sınıfına ihtiyacınız olacak, böylece Cre olarak ayarlayabilirsiniz ateCellControl - http://monkeystyler.com/guide/Custom-Grid-Columns –

cevap

2
doğru şekilde ele olmadığı için Derleyici vktNumberPad bilmediği kullanmak

. TNumEditCell(result).KeyboardType := TVirtualKeyboardType.vktNumberPad

İlgili konular