Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   True o False por Si o No (https://www.clubdelphi.com/foros/showthread.php?t=87022)

emeritos 05-11-2014 11:47:07

True o False por Si o No
 
Hola Dilferos.

Necesito como hacer que un campo boolena (true o False) me aparezca como Si o No.

Gracias.

Casimiro Notevi 05-11-2014 12:33:36

Cita:

Empezado por emeritos (Mensaje 484247)
Necesito como hacer que un campo boolena (true o False) me aparezca como Si o No.

¿Aparezca?

duilioisola 05-11-2014 13:41:54

¿Aparezca?
Si eso significa devolver un string según el valor de un boolean:

Código Delphi [-]
function BooleanToStringSINO(Valor : boolean) : string;
begin
   if (Valor = True) then
      Result := 'Si'
   else
      Result := 'No';
end;

ecfisa 05-11-2014 13:51:15

Hola emeritos.

Si lo que buscas es que se muestre como una cadena con los valores "No" o "Si", podes hacer:

Código Delphi [-]
function NoSi(const Value: Boolean): string;
begin
  if Value then
    Result:= 'Si'
  else
    Result:= 'No';
end;

O también, con el mismo resultado:
Código Delphi [-]
function NoSi(const Value: Boolean): string;
const
  CNOSI : array[Boolean] of string =('No', 'Si');
begin
  Result:= CNOSI[Value];
end;

Ejemplo:
Código Delphi [-]
uses DateUtils; // YearOf

...

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(Format('Este %s es un año bisiesto', [LowerCase(NoSi(IsLeapYear(YearOf(Now))))]));
end;

Saludos :)

Edito: Disculpas duiliosola, no estaba tu mensaje cuando comencé este. Es la misma idea.

Caminante 05-11-2014 15:37:45

Hola

Ahi tienes el evento ongettext de los objetos TField

Código Delphi [-]
procedure TDMPrincipal.MicampoGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
 if sender.asboolean then
text:='Si'
else
Text:='No';
end;

Espero te sirva

Saludos

Neftali [Germán.Estévez] 06-11-2014 13:17:01

Cita:

Empezado por emeritos (Mensaje 484247)
Necesito como hacer que un campo boolena (true o False) me aparezca como Si o No.


¿En un formulario?
¿En una tabla?
¿En un listado?
....

:confused::confused:

Casimiro Notevi 06-11-2014 13:21:42

goto 2



............

nlsgarcia 06-11-2014 14:53:17

emeritos,

Cita:

Empezado por emeritos
...Necesito como hacer que un campo Boolean (True o False) me aparezca como Si o No...

:cool:

Cita:

Empezado por Neftali
¿En un formulario?
¿En una tabla?
¿En un listado?

^\||/

Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
   Si : Boolean = True;
   No : Boolean = False;

begin

   if Si then
      ShowMessage('Si');

   if not No then
      ShowMessage('No');

end;
:rolleyes:

Revisa esta información:
Cita:

Boolean
Espero sea útil :)

Nelson.

ecfisa 06-11-2014 16:06:55

Hola emeritos.

Me parece que interpreté mal lo que estabas buscando... Creo que te refieres a esto:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  TBooleanField(TuDataSet.FieldByName('NOMBRE_DEL_CAMPO_BOOLEAN')).DisplayValues:= 'Si;No';
end;
Si creaste el campo persistente, podes definir los valores de la propiedad DisplayValues desde el Object Inspector.

Saludos :)

emeritos 11-11-2014 11:40:52

DBGrill campo boolean Si por true
 
Hola dilferos.

Necesito que en un DBGrill en varias de sus columnas que son campos boolean en vez de salir true o false o en su efecto o, -1 me salga SI, NO segun sea.

Gracias.

Casimiro Notevi 11-11-2014 12:21:06

Es fácil, pero incluso es más fácil si nos dices qué base de datos usas y qué componentes, ya que hay algunos que lo hacen ellos y te ahorras el código.

emeritos 11-11-2014 12:28:46

base de dato mysql
compomente CRDBGrill

Neftali [Germán.Estévez] 11-11-2014 18:28:25

Revisa los eventos de las columnas definidas en el DBGrid.
En concreto el OnGetText.

ecfisa 11-11-2014 22:31:04

Cita:

Empezado por emeritos (Mensaje 484455)
Hola dilferos.

Necesito que en un DBGrill en varias de sus columnas que son campos boolean en vez de salir true o false o en su efecto o, -1 me salga SI, NO segun sea.

Gracias.

Hola emeritos.

¿ Esta relacionado con lo tratado aquí ?

Saludos :)

Casimiro Notevi 11-11-2014 22:37:49

Los he unido, se ve que es lo mismo :rolleyes:


La franja horaria es GMT +2. Ahora son las 17:47:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi