Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Pues no entiendo que quieres...

Por que en tu ejemplo solo preguntas si Saludo no es cadena vacia, entonces muestralo en un ShowMessage, y luego?

Ahora, vamos a suponer, de casualidad no querras algo como esto?:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
  Hola = 'Hola, ¿qué tal?';
  Guillermo = '¿Cómo estás, Guillermo?';
  Pepe = 'Uy, ese nombre no me suena';

var
  Saludo: string;

begin
  Saludo := Edit1.Text;
  if Saludo <> '' then
    ShowMessage(Saludo)
  else
    ShowMessage(Hola)
end;

Saludos...
Responder Con Cita
  #2  
Antiguo 03-10-2006
SaGuMa SaGuMa is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
SaGuMa Va por buen camino
nop. lo que quiero es que cuando la variable tome el valor 'Hola' m diga 'Hola, ¿qué tal?' cuando tome el valor 'Guillermo' me diga ¿Cómo estas, Guillermo?...
Responder Con Cita
  #3  
Antiguo 03-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Ah ya...

Entonces sería algo como:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
  Hola = 'Hola, ¿qué tal?';
  Guillermo = '¿Cómo estás, Guillermo?';
  Pepe = 'Uy, ese nombre no me suena';

var
  Saludo: string;

begin
  Saludo := Edit1.Text;
  if Saludo = 'Hola' then
    ShowMessage(Hola)
  else
    if Saludo = 'Guillermo' then
      ShowMessage(Guillermo)
    else
      if Saludo = 'Pepe' then
        ShowMessage(Pepe)
      else
        ShowMessage(Saludo)
end;


Saludos...
Responder Con Cita
  #4  
Antiguo 03-10-2006
SaGuMa SaGuMa is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
SaGuMa Va por buen camino
y si tuvieses en vez de 3 constantes unas 30, ¿no habría otra forma mas corta?
Responder Con Cita
  #5  
Antiguo 03-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Lo primero que se me ocurre es un archivo de texto con este formato:

Código:
Hola=Hola, ¿qué tal
Guillermo=¿Cómo estás, Guillermo?
Pepe=Uy, ese nombre no me suena
Luego desde tu aplicación haces algo como:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Consts: TStringList;

begin
  Consts := TStringList.Create;
  try
    Consts.LoadFromFile('consts.txt');
    if Consts.Values[Edit1.Text] <> '' then
      ShowMessage(Consts.Values[Edit1.Text])
  finally
    Consts.Free
  end
end;

Ahora la explicación...

La clase TStringList tiene una propiedad llamada Values, la cual al insertar una o más líneas con el formato Nombre=Valor, se puede usar para obtener un valor mediante su nombre.

Así pues, puedes crear un archivo de texto con tantos pares de "constantes" y sus valores quieras, y luego desde tu aplicación lo cargas a un TStringList y devuelves su valor mediante la propiedad Values, tal como lo muestro en el ejemplo de arriba.

Esto es lo primero que se me ocurrió, tal vez exista una forma de hacer más rápido la comparación que necesitas y que sea usando constantes, pero por ahora no se me ocurre nada...



Saludos...

P.D. [Actualización] Veo que seoane dio la misma respuesta que acabo de dar, lo que me indica que no ando del todo equivocado...

Última edición por maeyanes fecha: 03-10-2006 a las 16:20:32.
Responder Con Cita
  #6  
Antiguo 03-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
La respuesta seria usar una serie de if anidados, uno por cada valor posible. Pero eso no quedaría "bonito", así que porque no usar un TStringList:

Código Delphi [-]
// Esta es una variable global
var
  Lista: TStringList;


// Para inicalizar los valores, usalo en el OnCreate por ejemplo
Lista:= TstringList.Create;
Lista.Values['HOLA']:= 'Hola, ¿qué tal?';
Lista.Values['GUILLERMO']:= '¿Cómo estás, Guillermo?';
Lista.Values['PEPE']:= 'Uy, ese nombre no me suena';


// Para usarlo
Saludo:= 'Hola';
ShowMessage(Lista.Values[Uppercase(Saludo)]);

// Para destruir el TStringList, usalo en el evento OnClose por ejemplo
Lista.Free;

También puedes cargar la lista desde un archivo de texto, donde cada linea tiene el siguiente formato: Nombre=Valor
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Def. de constantes - Casting Mariana OOP 3 21-10-2005 19:24:23
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52
Constantes de Delphi en Run Time Carlos Claveria OOP 3 23-10-2003 17:55:12
constantes globales acrophet Varios 3 18-09-2003 13:51:45


La franja horaria es GMT +2. Ahora son las 17:02:32.


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
Copyright 1996-2007 Club Delphi