Efecto lupa

Programa que amplia el texto sobre el que se posiciona el cursor para facilitar su lectura.

Programa efecto lupa

Codigo fuente

 RelacionadosMostrar una regla en pantalla
Capturar pantalla

Programa para generar efectos graficos
Trucos sobre imagenes en Delphi


Información de procesos







Codigo fuente

Rotación de poliedros en el espacio



Simula el movimiento de un objeto sobre los 3 ejes X,Y,Z

Movimiento de un octoedro

Movimiento de un octaedro en pantalla. (No utiliza OpenGL, GlScene)


Codigo fuente


Links relacionados:

Rotación de poliedros en el espacio

Simulación 3D con Delphi


LIBROS:



Simulación del movimiento de burbujas



Autor: daniel.davies@blueyonder.co.uk

Comprimir jpgs


Con este programa se comprimen imágenes bmp y jpg en archivos jpg.
Características:
-Regulación del nivel de compresión.
-6 formatos standards de redimiensionamiento.
-Varios formatos de exportación, incluyen zip.
-Gestión completa de exif, xmp, miniaturas, thumbnails, copyright.
-Posibilidad de añadir copyrights o cualquier texto sobre la imagen.
-Posibilidad de cambiar la fecha de creación o modificación.

Autor:
Nicolas Plagieri
http://www.ni69.info/

Codigo fuente

Ping Alert

Este programa envia un ping a intervalos regulares a un PC para comprobar su estado, si no obtiene respuesta permite lanzar un programa o un mensaje de aviso.
Muy útil para monitorizar servidores o equipos de misión crítica.
Toda la configuración se encuentra en el archivo nopingalert.conf

Codigo fuente


Simulación del movimiento de los electrones en un campo electrico



Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico.

Como muestra la imagen se ven los electrones saliendo en tiempo real de la placa de color gris hacia la placa de color rojo acelerándose cuando atraviesan el campo eléctrico.
El escenario se puede girar o rotar en todas direcciones para apreciar mejor el movimiento.
El texto de los botones está en ruso, por lo que aparecen textos no legibles.

Autor:
Email: systemhalt@nm.ru
www.systemhalt.nm.ru

Codigo fuente

Links relacionados:

Modelado 3D con Delphi

Rotar un punto en 3D

Angulo creado por 3 segmentos en 3D

Chipmunk 2D Physics engine





Antivirus

AiD Scanner free Antivirus v3.4.3  es un antivirus totalmente operativo que viene con código fuente e incorpora una base de firmas de 60.000 virus que se pueden ampliar incluyendo otras nuevas, utilizando la aplicación "Aid database creator" que viene incluida en el soft.


Autor: DoGeR                       
BlackCash2006@Yandex.ru          
DoGeR@bit-lab.info 

Codigo fuente


Link relacionado:
Crear un antivirus con Delphi 
Antikeylogger
Firewall
Sniffer de red

Antikeylogger


Los componentes TAntiKeyLoggerEdit  TAntiKeyLoggerMem sirven para dificultar las acciones de los keyloggers insertando en el buffer de teclado del PC caracteres basura. Podéis ver un ejemplo en la imagen del texto capturado por un keylogger cuando se usa el notepad y cuando se usa este programa.
Mediante la propiedad GarbageCount se puede especificar el número de caracteres falsos que se añaden en el buffer.

Autor: Wuul  Wuuldev@googlemail.com
Web:
 

=========================================================

PSMAntiKeyLogger
Real-time protection, protects you against KeyLoggers (For Windows 9x/ME/NT/2K/XP)
(C) 2003-2004 PSMKorea - Do Duc Truong, Truong2D@Yahoo.com

Project description:

PreSetup\PreSetup.dpr:            Create PreSetup.exe, killing processes before copying new files (For setup only)
PSMAntiK.Dll\PSMAntiK.dpr:            Injected DLL
PSMAntiSpy_Kr\PSMAntiSpy.dpr:        Main application
PSMAntiSpySvc\PSMAntiS.dpr:        Service
PSMStartupCfg_Kr\PSMStartupCfg.dpr:        Additional tool
Setup\setup.wse:                Script to create the full setup (Wise Installation System - Professional Edition)

NOTE for developers:
- Special component used: madCodeHook/madX : www.madshi.net
- Need to Install the TrayIcon compnent in TrayIcon.pas
- Change the const Lang in every project to switch between two language English/Korean. for ex: const Lang='KO';



Firewall en Delphi


iSafer es un firewall winsock que permite entre otras cosas añadir / quitar reglas de acceso en función de IPs, modificar el nivel de seguridad, crear un registro de acceso, comprobar el estado de los puertos. Es bastante completo y para su instalación antes hay que descargar madCodeHook desde http://madshi.net  y el componente TrayIcon.pas que viene incluido en el código fuente.
Ha sido diseñado y creado por Do Duc Truong (Truong2D@yahoo.com) y LTH(LuuTruongHuy@yahoo.com)









================================================================

MOSTRAR PROPIEDADES DEL FW



La siguiente aplicación permite controlar diferentes aspectos del Firewall que viene incluido en Windows (Probado en WindowsXP)
- Muestra sus propiedades
- Permite activarlo o desactivarlo
- Hace un listado de los programas autorizados
- Activa la configuración por defecto
- Lista servicios relacionados
- Muestra la configuración ICMP

Codigo fuente 

Relacionados:

Esteganografía con Delphi

Antikeylogger

Sniffer de red


LIBROS:








Reproducir archivo MIDI en piano virtual


Con esta aplicación puedes abrir un archivo MIDI y reproducirlo en un piano virtual. Para que funcione hay que instalar previamente el package zzPianoEx.dpk con lo que tendremos los componentes: TPianoKeyBoard, TMidiOutput, TMidiFile, TMidiInput, TMidiPlayer, TPianoChannels, TPianoTracks.


XI'AN Science and Technology University, Shanghai, China
http://www.PianoEx.com
Author: ZHONG WAN
Email: webmaster@PianoEx.com
MSN: ziziiwan@hotmail.com

Descargar programa

Codigo fuente

Ejemplos archivos MIDI

Archivo1.mid
Archivo2.mid
Archivo3.mid



Relacionados
Escuchar la radio por streaming
Tutorial - utilizar el componente Media Player
Simular teclado de un piano
 

Visualizar el espectro de frecuencias del sonido



Visualiza el espectro de frecuencias de audio en diferentes formatos al reproducir archivos del tipo mp3 o wav utilizando la biblioteca de funciones Bass.
 
Lo que nos dice el gráfico es que si en un sonido predominan los agudos entonces la parte izquerda del gráfico aumentará de valor.

Para que sirva de referencia:
El registro grave de una voz masculina – 200Hz
El registro grave de una voz femenina – 350Hz
Rango medio–grave – 400Hz - 1 kHz (frecuencias cálidas)
Rango medio-agudo (“aspereza”, sonido “caliente”) – 2.5 kHz – 4 kHz.
Sibilancia (sonido “sss”, “siseo” de los platillos) – 8kHz – 15kHz. 

Autor: Ian Luck.
adaptado a Delphi por Evgeny Melnikov 

Descargar el programa  (el archivo bass.dll está en el Codigo fuente)
Al ejecutar el archivo solicitará que indiques que archivo wav quieres abrir


Codigo fuente


Relacionados:
Osciloscopio con la tarjeta de sonido
Vumetro con Delphi  
Leer las cabeceras de un archivo mp3 
Conversor MPEG4 a AVI 
Reproducir notas musicales 



Reproductor de estructuras moviles


Permite simular, dibujar y animar estructuras móviles y además puede servir de base para la construcción de vuestro propio motor de interacciones físicas.
Para empezar tenéis que ir al primer desplegable y seleccionar "construct", se limpiará la pantalla y haciendo clic sucesivamente iremos dibujando las partículas y sus uniones entre ellas.
Cuando terminemos de dibujar la figura en el primer desplegable hacemos clic sobre "simulate" para iniciar la animación y ver la interacción entre todos los elementos del gráfico.
Posteriormente se puede hacer clic mantenido sobre una partícula cualquiera para moverla.

Autor:
Paul TOTH
http://tothpaul.free.fr

Codigo fuente

Redondear numeros reales

Aquí tienen varias formas de redondear correctamente números reales:


Opcion1:
======

function RoundStr(Zn: Real; kol_zn: Integer): Real;
var
snl, s, s0, s1, s2: string;
n, n1: Real;
nn, i: Integer;
begin
s := FloatToStr(Zn);
if (Pos(',', s) > 0) and (Zn > 0) and
(Length(Copy(s, Pos(',', s) + 1, length(s))) > kol_zn) then
begin
s0 := Copy(s, 1, Pos(',', s) + kol_zn - 1);
s1 := Copy(s, 1, Pos(',', s) + kol_zn + 2);
s2 := Copy(s1, Pos(',', s1) + kol_zn, Length(s1));
n := StrToInt(s2) / 100;
nn := Round(n);
if nn >= 10 then
begin
snl := '0,';
for i := 1 to kol_zn - 1 do
snl := snl + '0';
snl := snl + '1';
n1 := StrToFloat(Copy(s, 1, Pos(',', s) + kol_zn)) + StrToFloat(snl);
s := FloatToStr(n1);
if Pos(',', s) > 0 then
s1 := Copy(s, 1, Pos(',', s) + kol_zn);
end
else
s1 := s0 + IntToStr(nn);
if s1[Length(s1)] = ',' then
s1 := s1 + '0';
Result := StrToFloat(s1);
end
else
Result := Zn;
end;

Opcion 2:

function RoundEx(X: Double; Precision: Integer ): Double;

// Precision : 1, 10,100 ...

var
ScaledFractPart, Temp: Double;
begin
ScaledFractPart := Frac(X) * Precision;
Temp := Frac(ScaledFractPart);
ScaledFractPart := Int(ScaledFractPart);
if Temp >= 0.5 then
ScaledFractPart := ScaledFractPart + 1;
if Temp <= -0.5 then
ScaledFractPart := ScaledFractPart - 1;
Result := Int(X) + ScaledFractPart / Precision;
end;

Opcion 3:

function FormatData(s: String; i: Integer): String;
begin
Result:=FloatToStr(Round(StrToFloat(s)*exp(i*ln(10)))/(exp(i*ln(10))));
end;

Opcion 4:

function RoundFloat(R: Extended; Decimals: Integer): Extended;
var
Factor: Extended;
begin
Factor := Int(Exp(Decimals * Ln(10)));
Result := Round(Factor * R) / Factor;
end;


La llamada sería de la siguiente forma:

showmessage(FloatToStr(RoundStr(2.3456789,3)));
showmessage(FloatToStr(RoundEx(2.3456789,1000)));
showmessage(formatdata('2,3456789',3));
showmessage(FloatToStr(RoundFloat(2.3456789,3)));


Al trabajar con imágenes en 3D he tenido que utilizar alguna de estas funciones y lo que he hecho para acelerar su cálculo es aumentar la prioridad de mi aplicación con la siguiente función:

procedure TForm1.AumentaPrioridad;
var
ProcessID : DWORD;
ProcessHandle : THandle;
ThreadHandle : THandle;
begin
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
false, ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
end;



OCR simplificado

Realiza una limpieza del fondo de una imagen y a continuación pasa a texto su contenido haciendo la función de un OCR.

Author: Dennis Malkoff
E-mail: info@sminstall.com

Codigo fuente


Relacionados:








Reconocimiento de caras con Delphi


Software de reconocimiento de caras ( face recognition ) en imágenes con formato bmp.
Lo que hace es enmarcar cada rostro detectado dentro de un rectángulo utilizando funciones de una dll llamada VCOpenCV.
VCOpenCV se basa en OpenCV (Open Computer Vision) que es una biblioteca de funciones relacionadas con visión artificial  y que como curiosidad se ha utilizado en el sistema de visión del vehículo no tripulado del "Gran desafío DARPA"

Actualmente es un área de investigación muy compleja que necesita la participación de investigadores de diferentes ámbitos, ya que involucra no sólo o programadores e ingenieros de software, sino que también necesita la colaboración de neurocientíficos y psicólogos.


Debido a que estos sistemas son poco intrusivos, aún permanecen en primera línea de investigación por encima de otros como pueden ser los sistemas biométricos, de detección de huellas o reconocimiento del iris.


Descargar codigo fuente

En caso de que nos interese detectar zonas más específicas como ojos y boca, 
tendremos que hacerlo como indica el programa del que abajo os adjunto el link

Descargar codigo fuente

Descargar VCOpenCV.dll

Descargar OpenCV.pas (Es la traducción de las cabeceras de Opencv en Delphi realizada por Vladimir Vasilyev)

Relacionados:

Seguimiento de personas, animales y objetos con OpenCV

(Tesis doctoral) técnicas de reconocimiento facial mediante redes neuronales

OCR con Tesseract

OCR simplificado

OCR con Delphi

Chipmunk 2D Physics engine


Relacionados sobre imágenes:


Componente para generar efectos graficos

Librería Exif

Componente para manipulacion de imagenes

Morphing con delphi


Libros

Face-Detection and Gesture Recognition for Human-computer interaction

Intelligent Biometric Techniques in Fingerprint and Face Recognition (International Series on Computational Intelligence)

Handbook of Face Recognition










Programas Delphi que utilizan OPENGL



1) Generador de curvas de Bezier
Esta aplicación genera un array de vértices utilizados para construir curvas de Bezier. Requiere que la tarjeta gráfica sea compatible con OpenGL.

Codigo fuente y programa


2) Utilización de una Webcam

Utilizando las primitivas OpenGL, permite ver la imagen de una webcam en una rejilla tridimensional, con la posibilidad de cambiar el ángulo de la cámara, la distancia del observador y la rotación de la imagen.


Simulador de circuitos lógicos


Simulador de circuitos con código fuente que permite diseñar circuitos basándose en puertas lógicas: Y, AND, OR, etc.

Una vez que se termina el diseño se puede activar virtualmente para ver su resultado.
Utilizando o no una tabla es posible realizar funciones básicas: sumador, comparador, etc y simular cualquier expresión booleana de una forma fácil.
El autor incluye varios ejemplos:
-Un display de 7 segmentos
-Un multiplicador binario.

Descargar codigo

Autor: Montero-Ribas
Web: ADMR.CAD.Free.fr

Relacionados:
Modelado 3D con delphi

Asegurar / monitorizar Firebird

Estos son algunos tips que hay que tener encuenta para proteger las bases de datos Firebird:

-Cambiar la contraseña:
gsec –user SYSDBA –pa "antiguo pass" –modify SYSDBA –pw "nuevo pass"
-Abrir el puerto 3050 como aquí te indica si quieres que los usuarios accedan desde fuera a tu sistema, si estás en un entorno web en donde tienes en el servidor tus bases de datos esto no hace falta hacerlo.
Ejecutar Firebird como non-system-user:
-Crear un usuario por ejemplo "UsuarioFB", que no pertenezca a ningun grupo de usuarios del sistema y en la ventana de propiedades desmarcar el check "Allow logon to terminal server"
-En la carpeta donde estén las bases de datos en Propiedades->Seguridad añadir el usuario "UsuarioFB" con los permisos de lectura, escritura,listar directorios, listado y ejecución.
En entornos web con que des permisos al usuario "iusr" de lectura y escritura es suficiente.
- Hay que cambiar las propiedades del servicio "Firebird Server – DefaultInstance" y "FB Guardian" de la siguiente manera:
1) desde Propiedades->Recovery cambiando todos los desplegables a "restart recovery"
2) desde Propiedades->Log on pinchar en "This account" y seleccionar el usuario "UsuarioFB" con la contraseña y usuario que hayamos indicado previamente.
3) desde Propiedades->General marcar en tipo de inicio "Automático"
Por regla general, sólo el proceso del servidor Firebird debería tener acceso a los archivos de base de datos. Los usuarios no necesitan, y no deben tener, el acceso a los archivos - ni siquiera de sólo lectura. Ellos consultan bases de datos a través del servidor, y el servidor se asegura de que sólo los usuarios obtengan el tipo de acceso permitido (en su caso) a cualquier objeto dentro de la base de datos.

Monitorización
Firebird incorpora tablas de monitorización que permiten conocer información relativa a la base de datos y a las consultas de los clientes respecto a la base de datos conectada, sentencias preparadas, transacciones, etc
Las tablas son las siguientes:
MON$DATABASE: base de datos conectada. Con información como ruta de la base de
datos, versión de ODS, identificadores de proceso, etc.
- MON$ATTACHMENTS: Conexiones realizadas. Con información de estado, usuario que
hace la conexión, protocolo de conexión, etc.
- MON$STATEMENTS: Sentencias preparadas para ejecutar. Con información como
identificadores, texto, estado, etc.
- MON$CALL_TACK: Pila de llamadas de las sentencias PSQL activas.
- MON$IO_STATS: Estadísticas de I/O.
- MON$RECORD_STATS: Estadísticas a nivel de fila.
- MON$MEMORY_USAGE: Uso de memoria actual.
- MON$CONTEXT_VARIABLES: Variables de contexto conocida

Ejemplos de consultas:

-Para saber todos los identificadores de procesos con carga de CPU actuales:
SELECT MON$SERVER_PID
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND MON$STATE = 1

-Para obtener información sobre las aplicaciones clientes
SELECT MON$USER, MON$REMOTE_ADDRESS,
MON$REMOTE_PID,
MON$TIMESTAMP
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION

-Para obtener el nivelde aislamiento de la transacción actual
SELECT MON$ISOLATION_MODE
FROM MON$TRANSACTIONS
WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION

-Para obtener las sentencias actualmente activas
SELECT ATT.MON$USER,
ATT.MON$REMOTE_ADDRESS,
STMT.MON$SQL_TEXT,
STMT.MON$TIMESTAMP
FROM MON$ATTACHMENTS ATT
JOIN MON$STATEMENTS STMT
ON ATT.MON$ATTACHMENT_ID = STMT.MON$ATTACHMENT_ID
WHERE ATT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND STMT.MON$STATE = 1

Créditos:
Simon Carter
Vicente Tejero Trueba (Monitorización)

Relacionados:

Manuales sobre Firebird
Hacer restore o backup
Activar shadow
Validar una base de datos firebird






Multibuscador con Delphi

Este pequeño programa realiza una búsqueda de archivos utilizando programación multi-hilo.
El buscador estándar de Window permite también realizar búsquedas en varias rutas, pero las realiza en serie, es decir: cuando termina de buscar en una carpeta comienza con la siguiente.
Con este programa se puede buscar en varias carpetas de forma simultanea, mejorando así el tiempo de búsqueda, especialmente en búsquedas sobre unidades de red de distintos servidores (mejora los tiempos del buscador de Windows en un 140% para unidades locales de disco duro y en un 300% para unidades en red.
La idea original y el desarrollo son de Salvador Jover (www.sjover.com) y JM (www.lawebdejm.com).
Realizado inicialmente para la revista Síntesis del Grupo Albor (www.grupoalbor.com)

Codigo fuente

Relacionados:
Nunca ha sido tan facil utilizar los threads

Juego de ajedrez

Este es un nuevo juego de ajedrez avanzado programado en Delphi que incorpora un algoritmo de cálculo de posiciones bastante bueno, aún en los niveles de juego básicos el programa tiene bastante fuerza.
Permite seleccionar el bando con el quieres jugar, tiene diferentes niveles de profundidad de cálculo de posiciones, posee una biblioteca de aperturas muy básica pero creo que suficiente para lo que pretende el programa y un diseño de tablero modificable por el usuario.

Autor: Montero-Ribas
Licencia: GNU GPL

Descargar codigo fuente

Relacionado:
http://delphimagic.blogspot.com/2008/11/ajedrez-con-delphi-chess-with-delphi.html

Biblioteca de funciones matemáticas MPArith

Esta es una impresionante biblioteca de funciones matemáticas en Delphi, para cálculos en punto flotante, con números racionales y operaciones en alta precisión con enteros.
Según el autor el código no es el más eficiente, pero a cambio es comprensible, compacto, open source y puede ser compilado a partir de Delphi 7.
Para ejecutar los demos hay que cambiar la extensión del archivo demo *.pas a *.dpr y se iniciará en modo consola.

Ejemplo:
Si queremos calcular la operación z=1/3 habría que hacer lo siguiente:

uses
BTypes, mp_types, mp_base, mp_supp, mp_real,sysutils;

var
p,r,s,t,z:mp_float;
r1:real;
begin

//se inicializan las variables
mpf_initp3(s,t,z,mpf_get_default_prec);
mpf_set_ext(s,1);
mpf_set_ext(t,3);
mpf_div(s,t,z);
writeln('Rdo con MPArit ',mpf_decimal(z,80));
mpf_clear3(s,t,z); //Se liberan las variables
//El rdo es: 3.333333333333333333333333333333333333333333E-1

//comparación con el método habitual para calcular 1/3
r1:=1/3.0;
writeln('Rdo con Delphi: '+FloatToStrF(r1,ffexponent,8,20));
//el Rdo es: 3.3333333E-1

end;


Descargar biblioteca de funciones

Pagina oficial



Relacionados:

Funciones matemáticas, estadísticas y XML en delphi

Dibujo de funciones matematicas

Funciones matematicas


LIBROS:

Matemáticas, el fascinante mundo de los números

Matrix computations (Matematical Science)

Geometría analítica del plano y del espacio

Mecánica de fluidos

Geometría Afín y Euclidea

Modelado 3D con Delphi


Para los entusiastas del modelado 3D aquí tienen un soft realizado en Delphi que permite construir piezas basándose en primitivas simples cilindros, cubos, etc y con las operaciones topológicas habituales como fusión, intersección, recorte, etc...

Dar capacidades de scripting a tu aplicacion

Hoy os presento el componente freeware Artformula que permite dar capacidades de scripting a una aplicación Delphi , para que un usuario pueda escribir y ejecutar código dentro de nuestro programa. En el programa demo asimila los scripts a macros y los utiliza para aplicarlos en un tRichEdit haciéndonos ver lo fácil que es utilizarlos en caso de que tengamos que programar un editor de textos.

Ejemplo de scripts:
1) Abrir un fichero y mostrar su contenido:

begin
print('This is a TArtFormula Demo');
print('==========================');
print('');
var 'f' end;
$f := file.new;
file($f).name := 'info';
file($f).open('read');
while not file($f).eof do
print(file($f).readln);
wend;
file.freeall;
end

2) Resolver una ecuación lineal utilizando matrices:

begin
var "n","i","j","k","d" end;
$n := input("Input dimension","Dimension of matrix:",3);

for $i:=1; $i <= $n; $i++ do
for $j:=1; $j <= $n; $j++ do
var "a"+$i+"_"+$j end;
$a[$i,$j] := input("Input element","a["+$i+","+$j+"] = ",if $i = $j ; 1 ; 0 end);
next;
next;

for $i:=1; $i <= $n; $i++ do
var "b"+$i, "x"+$i end;
$b[$i] := input("Input element","b["+$i+"] = ",1);
next;

for $i:=1; $i < $n; $i++ do
for $k:=$i+1; $k <= $n; $k++ do
$d:=$a[$k,$i]/$a[$i,$i];
for $j:=$i+1; $j <= $n; $j++;
$a[$k,$j]:=$a[$k,$j]-$a[$i,$j]*$d;
end;
$b[$k]:=$b[$k]-$b[$i]*$d;
next;
next;

for $i:=$n; $i >= 1; $i-- do
for $j:=$i+1; $j <= $n; $j++;
$b[$i]:=$b[$i]-$a[$i,$j]*$x[$j];
end;
$x[$i]:=$b[$i]/$a[$i,$i];
next;
print("Result:");
for $i:=1; $i <= $n; $i++; print("x["+$i+"] = "+$x[$i]); end;

end


El lenguaje de script tiene las siguientes características:
-Permite definir variables
-Tiene comandos de asignación
-Operadores de incremento y decremento
-Función Return
-Utiliza:
BEGIN...END
Sentencias IF
Bucles WHILE, UNTIL y LOOP
funciones de interface como: msg('text','caption',props), input('caption', 'text', defvalue)


El componente incorpora la posibilidad de evaluación de expresiones y el cálculo de derivadas con respecto a "x" o "y" de una función.
Las funciones que permite son las siguientes: (tomado de la ayuda del programa)

Arithmetic operation:

x + y, x - y, x * y, x / y, x % y (Mod), x ^ y (power), x\ y (Div)

Logical operation (true=1, false=0):
x > y, x < y, x >= y, x <= y, x = y, x <> y, ! x (not), x & y (and), x | y (or), x xor y

Bitwise operations:
x && y (band), x || y (bor), !!x (bnot), x bxor y, x >> y (shr), x << y (shl)

Predefined constants:
Pi = 3.1415926535897932385
True = 1
False = 0

Functions:

sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, asinh, acosh, atanh, sqrt, exp, log, lg (log base 10), int (integer part of a number), frac (fractional part of a number), abs, sign, rnd, randomize,max(x,y...), min(x,y,...), count(x,y,...), sum(x,y,...), sumofsquares(x,y,...), avg(x,y,...), variance(x,y,...), variancep(x,y,...), stddev(x,y,...), stddevp(x,y,...) , iff(cond,x,y) (if cond = true then result = x else result = y), isnumber(x), chr(x), length(s), trim(s), trimleft(s), trimright(s) lowercase(s), uppercase(s), midstr(s,x,y), leftstr(s,x), rightstr(s,x), pos(s,t), code(s), format(s,x), formatf(s,x), stringofchar(c,n), concat(s1,s2,...), date(s), now, formatdate(s,d), year(d), month(d), day(d), hour(d), minute(d), second(d), millisecond(d), isleapyear(n), dayofweek(d), encodedate(y,m,d)


Autor:

Artem V. Parlyuk, e-mail:artsoft@nm.ru, http://artsoft.nm.ru

Descargar codigo