Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Una vez que ya te han comentado cosas sobre los DEFINE, yo te diría que este problema, aunque se soluciona tal y come te han comentado, creo que denota que estás realizando un mal diseño.

Que una determinada unidad, necesite del FormMain para ejecutar un método (y más una unidad que vas a compartir entre varios proyectos) te está indicando que seguramente algo no es correcto (aunque sea "solucionable" tal y como te han dicho).

Si se puede, ese procedimiento al que estás llamado debería estar fuera en una unit aparte, para poder llamarlo con parámetros cuando fuera necesario.

"Imagina que tienes un TEdit(edit1) en un formulario (form1), y al realizar un cambio en el Edit1, necesitamos ocultar otro componente (Edti2) del form1".

Lo que no hacemos en el TEdit es colocar un DEFINE que diga (aunque funcinaría):

Código Delphi [-]
{$IFDEF FORM1}
...
  form1.Edit2.Visible := False;
...  
{$ENDIF}

¿Cómo lo solventamos? Se añade al TEdit un evento OnChange, que captura el formulario que lo necesite.

Creo que en este caso (por lo poco que comentas) una solución un poco más correcta sería una similar.
Define en el segundo form un evento y lánzalo en lugar de la llamada:

Código Delphi [-]

type
 ...
private
  ...
    // Este tipo o con los parámetros que necesites en tu caso
    property OnEvento1:TNotifyEvent read FOnEvento1 write FOnEvento1;
  ...
 
end;


Procedure TForm.acViewAccountExecute(Sender: TObject);
Begin
  Inherited;
{$IFNDEF NOTMAIN}
  If Not dsOutboundList.DataSet.IsEmpty then
    Begin
    
      //  ---FRM_Main.SearchforCust(dbgResults.Cells[4, dbgResults.Row]);
      
      // levantamos el evento si está asignado...
      if Assigned(OnEvento1) then begin
        OnEvento1(Self);
      end;
      
      pRefresh;
    End;
{$ENDIF}
End; // Proc

Desde el Main si es necesario, deberás asignar ese evento para capturarlo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 19:08:57.


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