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 13-02-2007
henrygale henrygale is offline
Registrado
 
Registrado: feb 2007
Posts: 5
Poder: 0
henrygale Va por buen camino
variables globales

perdonen si la pregunta es demasiado simplona pero...

¿a alguien se le ocurre una manera de que una función devuelva el contenido de dos variables al programa principal?

a mi lo único que se me ocurre es usando para uno de esos valores una variable global. ¿como se usan variables globales en borland delphi?

el caso es que tengo una función que devuelve una secuencia, pero tambien necesito devolver si se ha podido crear esta de manera correcta o no.
Responder Con Cita
  #2  
Antiguo 13-02-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Para crear una variable global, solo tienes que declararla en la sección interface de la unidad y luego referenciar esta unidad en las otras donde la vayas a usar:

Código Delphi [-]
unit Globales;

interface

uses
  // Lista de unidades

var
  VarGlobal1: Integer;
  VarGlobal2: string;

Para usar una de estas variables:

Código Delphi [-]
unit Form1;

interface

uses
  // Lista de unidades

  // Declaración de tipos y demás

implementation

uses Globales; // con esto puedo usar cualquiera de las variables declaradas en Globales.pas

Ahora, sobre tu duda, yo te recomendaría una función que devuelva True o False si tuvo éxito y como parte de sus parámetros devuelva la secuencia, algo así:

Código Delphi [-]
// Declaración:
function DoSecuencia(var Secuencia: [TipoDeDato]): Boolean;

// Una forma de usarse:
if DoSecuencia(ASecuencia) then
begin
  // Hago aquí lo que quiera con la secuencia creada
end
else
  ShowMessage('Error creando la secuencia')


Saludos...
Responder Con Cita
  #3  
Antiguo 13-02-2007
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
Para estos casos esta 'var'
Código Delphi [-]
function Ejemplo(Parametro: Integer; var Resultado: string): boolean;
begin
  Resultado:= '';
  while Parametro > 0 then
  begin
    Resultado:= Resultado + 'A';
    dec(Parametro);
  end;
  if Length(Resultado) > 0 then
    Result:= TRUE
  else
    Result:= FALSE;
end;

// Por ejemplo
var
  Str: string;
begin
  if Ejemplo(5,Str) then
    ShowMessage(Str);
end;
Responder Con Cita
  #4  
Antiguo 13-02-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Yo nadamas agregaria a tu código variables ya que pudiera ser que la secuancia dependa de algun dato.

Código Delphi [-]
// Declaración:
function DoSecuencia(var Secuencia:[TipoDeDato]; VarSecuencia:[TipoDeDato]): Boolean;

// Una forma de usarse:
if DoSecuencia(ASecuencia,Variable) then
begin
  // Hago aquí lo que quiera con la secuencia creada
end
else
  ShowMessage('Error creando la secuencia')

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 13-02-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Seoane te me adelantaste pero pensamos en lo mismo,

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 13-02-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Claro está que podría depender de algún otro dato, pero solo era un ejemplo sencillo...


Saludos...
Responder Con Cita
  #7  
Antiguo 13-02-2007
henrygale henrygale is offline
Registrado
 
Registrado: feb 2007
Posts: 5
Poder: 0
henrygale Va por buen camino
gracias

lo hice al reves... introduje con var el booleano en vez de la secuencia pero más o menos es lo mismo.

muchas gracias... ya funciona
Responder Con Cita
  #8  
Antiguo 06-04-2007
Avatar de edelphi
edelphi edelphi is offline
Miembro
 
Registrado: jun 2006
Posts: 55
Poder: 18
edelphi Va por buen camino
bueno hice todo lo que dices en el post pero aun asi no me funciona, esto es lo ke quiero hacer:
Código Delphi [-]
unit global;

interface

implementation
uses principal;
Var nom,app,apm,calu,carr,sem,tur:string;
end.
y en el form1
Código Delphi [-]
....
implementation
uses global,matriculas, Dmodulo;
....
procedure TForm14.SpeedButton2Click(Sender: TObject);
begin
nom:=DBgrid2.Columns[3].Field.text;
app:=DBgrid2.Columns[1].Field.text;
apm:=DBgrid2.Columns[2].Field.text;
calu:=DBgrid2.Columns[0].Field.text;
carr:=DBgrid1.Columns[1].Field.text;
sem:=DBgrid1.Columns[2].Field.text;
tur:=DBgrid1.Columns[3].Field.text;
Showmessage(calu+' '+nom+' '+app+' '+apm+' '+carr+' '+sem+' '+tur);
y me manda estos errores
[Error] frm_buscar_alumnos.pas(283): Undeclared identifier: 'nom' ...

que hago ayudenme
Responder Con Cita
  #9  
Antiguo 06-04-2007
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
Prueba asi
Código Delphi [-]
unit global;

interface
Var nom,app,apm,calu,carr,sem,tur:string;
implementation
uses principal;

end.
Responder Con Cita
  #10  
Antiguo 06-04-2007
Avatar de edelphi
edelphi edelphi is offline
Miembro
 
Registrado: jun 2006
Posts: 55
Poder: 18
edelphi Va por buen camino
ok muchas gracias ahora si parece que me va afuncionar jejeje un lapsus en las lineas de codigo
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
declarar variables globales mcnudi Impresión 8 08-11-2006 12:43:51
Variables Globales Abel Garcia Firebird e Interbase 8 26-09-2005 15:20:59
Variables globales en PHP JulioGO PHP 3 08-04-2005 14:36:57
Variables Super Globales JANDREGUE Varios 1 18-03-2005 18:03:16


La franja horaria es GMT +2. Ahora son las 21:30:40.


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