Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 20/04/2013
red_dragon red_dragon is offline
Registrado
NULL
 
Join Date: Apr 2013
Posts: 7
Poder: 0
red_dragon Va por buen camino
¿Como modifico un componente libre?

Bueno el componente en cuestion es ArtFormula, lo encuentran en artsoft . nm . ru / works . html sirve como evaluador de expresiones en tiempo de ejecucion, descargado de la pagina no tiene soporte para llamar datos de una tabla o base de datos, sin embargo el autor de este componente proporciona codigo para que esta funcionalidad se incluya en el componente, lo malo es que intente agregar a los archivos pas que viene con el componente y no le encuentro solucion. El codigo adicional en cuestion es este:

El autor dice que hay que crear un nuevo modulo para acceder a los datos de Firebird. Por ejem para un tsqltable seria asi.

FBTables : array of TSQLTable;

function mytable(var Calc : TFormulaCalc):TCalcItem;
begin
setN(result,trunc(Calc.topn));
end;

function mytableopen(var Calc : TFormulaCalc):TCalcItem;
var i,p : integer;
begin
p := -1;
for i := 0 to high(FBTables) do
begin
if FBTables[i] = nil then
begin
p := i;
break;
end;
end;
if p = -1 then
begin
p := high(FBTables)+1;
setlength(FBTables,p+1);
end;
FBTables[p] := TSQLTable.Create(Self);
< ... initialization of FBTables[p] ... >
setN(result,p);
end;


function mytableclose(var Calc : TFormulaCalc):TCalcItem;
var current:integer;
begin
current := trunc(Calc.TopN);
FBTables[current].close;
Freeandnil(Files[current]);
setN(result,0);
end;

function mytablenext(var Calc : TFormulaCalc):TCalcItem;
var current:integer;
begin
current := trunc(Calc.TopN);
FBTables[current].next;
if FBTables[current].eof then setN(result,0)
else setN(result,1);
end;

function mytablefield(var Calc : TFormulaCalc):TCalcItem;
var current:integer;
begin
current := trunc(Calc.ItemN(1));
SetS(result,FBTables[current].fieldbyname(Calc.topS).asstring);
end;



module := Formula.AddUserFunction('table',1,mytable,true);
Formula.AddModuleFunction(module,'open',1,mytableopen);
Formula.AddModuleFunction(module,'close',0,mytableclose);
Formula.AddModuleFunction(module,'next',0,mytablenext);
Formula.AddModuleFunction(module,'field',1,mytablefield);


Despues en el programa ya iria esto:


$mytable := table.open('table_name');
$n := 1;
while $n=1 do
if table($mytable).field('field')="AFECTED" then B3=50 else B3=0 endd;
$n := table($mytable).next;
wend;

table($mytable).close;

Alguna idea de como deben ir y en que archivos para que la funcionalidad de sacar datos de Tsqltable o Tsqlquery se adicione con estos codigos a ese componente, desde ya gracias por vuestra respuesta.
Reply With Quote
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
¿Cómo modifico una linea de un Memo? ErYcK C++ Builder 2 30/04/2012 18:01
Libro: Software Libre para una sociedad libre rretamar La Taberna 33 31/05/2011 11:09
como modifico esta consulta. guillox SQL 1 17/11/2007 17:34
Modifico tabla y la indexo panda Conexión con bases de datos 8 11/09/2004 22:44
[Software libre] Publicada gestión comercial libre (GPL) para Kylix ... kinobi Noticias 4 13/10/2003 15:19


All times are GMT +2. The time now is 01:52.


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