Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 05-03-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola Karo,
Bienvenido a clubdelphi. Como eres nueva en los foros, te invito a que destines unos minutos para conocer la guia de estilo.

Respecto a tu pregunta, sería oportuno que aclares mejor tu situación. Un ejemplo de como lo estás haciendo, o enfocando el problema.

Inicialmente si unit A debe comunicarse con otra B, A debe tener declarado en uses a B.

Ahora bien, si a su ves B debe comunicar a A algo, debe declarar en uses a A.

El problema es que si ambos se referencian... se forma una dependencia circular. Esto se soluciona trasladando la sección el "uses X" siendo X la unidad de A o B, de la sección interface a la sección implementation:

Código Delphi [-]
...

implementation
uses UnitX;
...

Ahora bien, en lo posible deben evitarse éstas dependencias mutuas, se puede plantear alguna alternativa. Y es por ello que yo indicaba al comienzo si nos puedes comentar con mayores detalles tu caso.
Es una pregunta muy general el hecho de que "una unit deba devolver el dato a otra", cuanto más puntual seas más fácil será tratarlo.

Lo más elemental sería que en Unit2, exista alguna función o método (si es que le pertenece a una clase) que regrese el valor que unit1 necesita. De este modo se puede evitar esta mutua dependencia y sólo unit1 se mantiene acoplada a unit2. Algo así:
Código Delphi [-]
Unit unit2;

...


interface

function UnaFuncion(Parametro: tipo_parametro): tipo_resultado;
...

implementation

function UnaFuncion(Parametro: tipo_parametro): tipo_resultado;
begin
  ...
end;

...
end.

Y de este modo, luego Unit1 puede hacer uso de Unit2:


Código Delphi [-]
Unit Unit1;

interface
uses Unit2; 
// Nota como sólo unit1 conoce a unit2 no se hace falta poner este
// uses en implementation y evitar una referencia circular.

...

implementation

procedure Form1.Button1Click(Sender: TObject);
// en este ejemplo, lo llamamos desde un botón
var algo: tipo_resultado;
begin
  algo := UnaFuncion(...); 
  //llamamos a la función de Unit2 y esta nos regresa el resultado
end;

...

end.

Como te éstas iniciando en Delphi, sugiero que te acerques a la sección FTP y wiki del club. Allí encontrarás material tanto teórico como práctico. Recomiendo la lectura de la Cara Oculta de Delphi 4.

Si tienes mayores dudas puedes consultarnos, pero recomiendo que antes de iniciar un hilo nuevo, realices una búsqueda. Existe la posibilidad de que tu duda haya sido tratada.

Por cualquier duda sobre este tema que iniciaste, continúa aquí por favor.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



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
Retornar o no retornar desde un script principal dec PHP 6 24-03-2008 23:41:12
Como hacer para que una funcion regrese varios valores jangel_ramirezm Varios 11 07-03-2008 22:14:49
Cómo puedo hacer para que una variable valga 2 valores al mismo tiempo wlad Internet 15 19-12-2007 18:06:03
Como pasar los valores de una tabla a otra! Carlosguiland MySQL 4 15-06-2004 22:58:20
¿Como puedo llamar un Procedure desde otra unit? athal Lazarus, FreePascal, Kylix, etc. 11 17-05-2004 01:05:20


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


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