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 20-04-2013
red_dragon red_dragon is offline
Registrado
NULL
 
Registrado: abr 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.
Responder Con Cita
  #2  
Antiguo 21-04-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración


Recuerda poner los tags al código fuente, ejemplo:



Gracias
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
¿Cómo modifico una linea de un Memo? ErYcK C++ Builder 2 30-04-2012 18:01:05
Libro: Software Libre para una sociedad libre rretamar La Taberna 33 31-05-2011 11:09:34
como modifico esta consulta. guillox SQL 1 17-11-2007 17:34:53
Modifico tabla y la indexo panda Conexión con bases de datos 8 11-09-2004 22:44:25
[Software libre] Publicada gestión comercial libre (GPL) para Kylix ... kinobi Noticias 4 13-10-2003 15:19:36


La franja horaria es GMT +2. Ahora son las 23:44:58.


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