Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2011
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Uso de Componente TArtFormula

Me gustaria saber si por este Foro existe alguien que halla trabajador con este Componente
Código:
ArtFormula
el mismo sirve para hacer evaluaciones matematicas, Formulas y Funciones.

Tengo Problemas al Crear mis funciones propias para que el Componente las utilize,, pero me da error de Acceso de Violacion, no se si es un desconocimiento de la Parte de Objeto de Delphi o es que el componente simplemente no sirve para lo que necesito.

Explico Brevemente el proble acon el codigo

Código Delphi [-]

unit UBioDataPerX;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UbioGeneral, DB, Wwdatsrc, formula, IBCustomDataSet, IBQuery,UBioTipos, UGlobal, UBioBusPer, DateUtils, Math, UBioCxCTra;
type
  TDataPer = class(TForm)
   ..
   ..
  public
    { Public declarations }
    Global:ValoresGlobales;
    Variables:array of string;
    Valores:TCalcArray;
    FechaBase:TDateTime;
    Nombre:String;
    Procedure CreaVariables;
    Function  BusSaldoCxp(Numero:String;Tipo:String)ouble;
  end;
var
  DataPer: TDataPer;
implementation
{$R *.dfm}
 
procedure TDataPer.FormCreate(Sender: TObject);
begin
   CreaVariables;
   FechaBase:=Dateof(Now);
end;
 
Function TDataPer.BusSaldoCxp(Numero:String;Tipo:String)ouble;
Begin
  BusSalCxp.Close;
  BusSalCxp.ParamByName('CODCIA').AsString:=Global.Cia.Codigo;
  BusSalCxp.ParamByName('CODSUC').AsString:=Global.Sede.Codigo;
  BusSalCxp.ParamByName('NUMTRABA').AsString:=Numero;
  BusSalCxp.ParamByName('HASTA').AsDate:=FechaBase;
  BusSalCxp.ParamByName('TIPO').AsString:=Tipo;
  BusSalCxp.Open;
  BusSalCxp.First;
  Result:=BusSalCxpSALDO.AsFloat;
  BusSalCxp.Close;
End;
 
 
 
function SaldoCXP(var Calc : TFormulaCalc):TCalcItem;
var
   V1,V2,V3:String;
   Montoouble;
begin
   V1 := Calc.ItemS(1); // primer valor
   V2 := Calc.ItemS(0); // segundo valor
   Monto:=DataPer.BusSaldoCxp(V1,V2);
   SetN(result,Monto);
End;
 
 
 
 
Procedure TDataPer.CreaVariables;
begin
 PCalculo.CaseSensitive := False;
 setlength(Variables,100);
 setlength(Valores,100);
 // Variables Del Calculo
 Variables[0]:='CALCULA';
 Variables[1]:='XCANTIDAD';
 Variables[2]:='XMONTO';
 Variables[3]:='TOT_ASIGNACION';
 Variables[4]:='TOT_DEDUCCION';
 Variables[5]:='TOT_DEVENGADO';
 Variables[6]:='TOT_PRESTAMOS';
 Variables[7]:='TOT_ACUMPROM';
 Variables[8]:='TOT_ACUMISLR';
 // Funciones
 PCalculo.AddUserFunction('SaldoCXP',2,SaldoCxP,False);
end;



El error esta cuando mando a ejecutar la funcion SaldoCXP,, cuando en la
Código:
Funcion BusSaldoCxp
Se ejecuta; da el error de Acceso de Violacion,, ya probe incluso en la primera linea de esa funcion algo tan simple como Colocar Código Delphi [-]Nombre:='prueba'

me da el mismo error,, lo unico que funciono es utilizar un objeto Visual del formulario o una propiedad.

Saludos

Última edición por Neftali [Germán.Estévez] fecha: 16-03-2011 a las 11:09:13. Razón: Corregidos los TAG's
Responder Con Cita
  #2  
Antiguo 16-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
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
Tal vez sería más sencillo que montes un pequeño proyecto de ejemplo (y añadas el componente) y lo subas como adjunto o al FTP para poder probarlo.
__________________
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
  #3  
Antiguo 16-03-2011
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Tal vez sería más sencillo que montes un pequeño proyecto de ejemplo (y añadas el componente) y lo subas como adjunto o al FTP para poder probarlo.

Amigo Neftali,, aqui genere un pequeño proyecto ,,,

La Direccion Web para bajar el Componenet
http://artsoft.nm.ru/

Gracias por tu tiempo..
Archivos Adjuntos
Tipo de Archivo: rar Proyecto Formula.rar (11,7 KB, 36 visitas)
Responder Con Cita
  #4  
Antiguo 16-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
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
Pues a mi me funciona perfectamente esta función y el proyecto:

Código Delphi [-]
function XDiferencia(var Calc : TFormulaCalc):TCalcItem;
var
   V1,V2,V3ouble;
begin
   Form2.Prueba:='En Esta Linea da el Error,, si quiero accesar ha algo de este formulario (Varibales, Otras Funciones, Otros Objetos,Etc';
   V1 := Calc.ItemN(1);
   V2 := Calc.ItemN(0);
   SetN(result,V1-V2);
end;

Siempre y cuando elimines la primera línea:

Código Delphi [-]
   Form2.Prueba:='...

Puesto que la variable Form2 no está asignada en ese momento. De ahí el AV.

Un saludo.

AÑADO: No conocía este componente y me parece muy bueno. ;-)
__________________
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
  #5  
Antiguo 16-03-2011
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Pues a mi me funciona perfectamente esta función y el proyecto:


Código Delphi [-]
function XDiferencia(var Calc : TFormulaCalc):TCalcItem;
var
V1,V2,V3ouble;
</SPAN>begin
Form2.Prueba:='En Esta Linea da el Error,, si quiero accesar ha algo de este formulario (Varibales, Otras Funciones, Otros Objetos,Etc';
V1 := Calc.ItemN(1);
V2 := Calc.ItemN(0);
SetN(result,V1-V2);
end;





Siempre y cuando elimines la primera línea:


Código Delphi [-]
Form2.Prueba:='...





Puesto que la variable Form2 no está asignada en ese momento. De ahí el AV.

Un saludo.

AÑADO: No conocía este componente y me parece muy bueno. ;-)


Efectivamente el problema es ese... Necesito Acceder a unas Funciones, Procedures y/o Propiedades de ese formulario, ya que en mi proyecto original debo accesar a Bases de Datos, Valores , Etc.

Gracias
Responder Con Cita
  #6  
Antiguo 16-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.442
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
Cita:
Empezado por Efren2006 Ver Mensaje
Efectivamente el problema es ese... Necesito Acceder a unas Funciones, Procedures y/o Propiedades de ese formulario, ya que en mi proyecto original debo accesar a Bases de Datos, Valores , Etc.
En ese caso deberás asegurarte de que el formulario está creado, o crearlo si no lo está.
__________________
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
  #7  
Antiguo 22-03-2011
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Poder: 21
Efren2006 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
En ese caso deberás asegurarte de que el formulario está creado, o crearlo si no lo está.
Disculpen por el Tiempo ,, estaba fullllllllllllll.

Efectivamente Amigo neftali la ventana si esta creada, pero el problema era que la funcion no la reconoce, entonces para resolver el problema hice lo siguiente;

Cree una Variable del mismo tipo del Formulario;
Código Delphi [-]
 
 
var
  DataPer: TDataPer;
  XDataPer:TDataPer;
implementation
{$R *.dfm}


Luego en la Funcion Coloque esto:

Código Delphi [-]
  
 
 if TComponent(Calc.Parent).Owner is TDataPer then
   Begin
   XDataPer:=TDataPer(TComponent(Calc.parent).Owner);
   ..
   ..
   end;
..

Ya con ese Objeto del mismo tipo de la ventana que lo llama, puedo acceder a todas las funciones y Propiedades del Mismo
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
Componente PDF tcp_ip_es Varios 7 16-06-2008 07:16:33
como comparar cada linea de un componente Memo1 con un componente ListBox1 soma25 C++ Builder 1 31-10-2007 10:02:22
componente SSH didier OOP 2 25-05-2007 22:07:47
Apuntar una propiedad de un componente a otra de otro componente Majo Varios 10 24-03-2004 19:46:39
Componente On/Off sergisan OOP 8 30-05-2003 16:31:30


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


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