2013-02-20 8 views
7

Sto usando mssql e Delphi 2009. Quando un modulo contiene un dbgrid collegato al campo booleano, i valori vengono visualizzati come True o False. Il Delphi DBGrid ha la capacità di tradurredelphi dbgrid valore booleano, accetta f fa fal fals false, come accettare più valori?

f 
fa 
fal 
fals 
false 
t 
tr 
tru 
true 

di essere true o false. Desidero aggiungere valori in modo che possa accettare altre stringhe e abbinarle a true o false. Dove possono essere aggiunti questi valori?

+0

Quale metodo si utilizza per verificare che dbgrid li traduca? Ciò di cui dubito potrebbe non essere affatto la traduzione. Se stai inserendo del testo, per esempio, potrebbe essere il completamento automatico di sTextFalse/sTestoTrue. –

+0

@SertacAkyuz è la mia domanda. Non so come fa Delphi, e sto cercando il metodo che controlla la f per renderla falsa. ne dubito davvero nella sql. – none

+0

@none - La tua domanda è come modificare possibili possibilità di inserimento vero/falso. La mia domanda è come hai concluso che il dbgrid traduce fa a false. –

risposta

9

Questo è il comportamento predefinito per TBooleanField.DisplayValues. Guarda la sorgente dell'unità db:
db.TBooleanField.SetAsString e db.TBooleanField.SetDisplayValues.

Se si imposta TField.DisplayValues := 'Yes;No'; per esempio: Y, Ye, Yes rappresenterà True; N, No rappresenterà False.

Non è possibile aggiungere ulteriori valori. A meno che non si utilizzi OnSetText come suggerito dall'altra risposta, oppure utilizzare TDbGrid.PickList.

Personalmente, vorrei usare un CheckBox per la rappresentazione del valore di campo booleano su TDBGrid.
Ci sono un sacco di examples là fuori su come farlo.

2

È possibile scrivere un evento OnSetText per il campo booleano e interpretare qualsiasi testo come True o False.