2013-02-20 13 views
7

Używam mssql i Delphi 2009. Gdy formularz zawiera element dbgrid, który jest połączony z polem boolowskim, wartości są wyświetlane jako True lub False. Delphi DBGrid ma zdolność do przetłumaczeniadelphi dbgrid wartość boolowska, zaakceptuj f fa fal fals false, jak zaakceptować więcej wartości?

f 
fa 
fal 
fals 
false 
t 
tr 
tru 
true 

być true lub false. Chcę dodać wartości, aby zaakceptować inne ciągi i dopasować je do true lub false. Gdzie można te wartości dodać?

+0

Jakiej metody używasz do sprawdzania, czy dbgrid tłumaczy te? Wątpię, czy to wcale nie jest tłumaczenie. Jeśli wprowadzasz tekst na przykład, może to być automatyczne ukończenie sTextFalse/sTextTrue. –

+0

@SertacAkyuz to moje pytanie. Nie wiem, jak robi to Delphi i szukam metody, która sprawdza, czy f nie jest fałszywa. Naprawdę wątpię w to w sql. – none

+0

@none - Twoje pytanie brzmi, jak modyfikować możliwe możliwości wprowadzania prawdziwych/fałszywych informacji. Moje pytanie brzmi: jak doszliście do wniosku, że dbgrid tłumaczy fa na false. –

Odpowiedz

9

Jest to domyślne zachowanie dla TBooleanField.DisplayValues. Spójrz na źródło jednostki db:
db.TBooleanField.SetAsString i db.TBooleanField.SetDisplayValues.

Jeśli ustawisz TField.DisplayValues := 'Yes;No'; na przykład: Y, Ye, Yes będzie reprezentował True; N, No będzie reprezentować False.

Nie można dodać do niego więcej wartości. Jeśli nie używasz OnSetText, jak sugeruje inna odpowiedź, lub użyj TDbGrid.PickList.

Osobiście użyłbym CheckBox dla reprezentacji wartości pola logicznego na TDBGrid.
Istnieje wiele examples tam, jak to zrobić.

2

Możesz napisać zdarzenie OnSetText dla swojego pola boolowskiego i zinterpretować dowolny dany tekst jako True lub False.