*** empty log message ***

This commit is contained in:
Alejandro de Garate
2003-07-13 18:08:15 +00:00
parent 9e5752cd65
commit 77325fe918
19 changed files with 6506 additions and 36 deletions

View File

@@ -8,6 +8,27 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2003-07-13 14:08 UTC-0400 Alejandro de Garate <alex_degarate@hotmail.com>
* doc/es/Makefile
+ gnulice.txt
+ hvm.txt
+ input.txt
+ macro.txt
+ memvar2.txt
+ misc.txt
+ nation.txt
+ objfunc.txt
+ rdd.txt
+ sayget.txt
+ subcodes.txt
+ tbrowse.txt
+ tclass.txt
+ tgetlist.txt
+ tlabel.txt
+ treport.txt
+ var.txt
+ Added references to new doc files
2003-07-13 12:32 UTC-0400 Alejandro de Garate <alex_degarate@hotmail.com>
* doc/es/lang.txt
! Fixed accents, etc, minor formating. Now in sync with english version

View File

@@ -7,41 +7,42 @@ ROOT = ../../
DOC_SUBDIR=/es
DOC_FILES=\
array.txt \
binnum.txt \
browse.txt \
clipper.txt \
cmdline.txt \
codebloc.txt \
command.txt \
compiler.txt \
datetime.txt \
dbdelim.txt \
dbsdf.txt \
dbstrux.txt \
dir.txt \
dirstruc.txt \
diskspac.txt \
error.txt \
eval.txt \
garbage.txt \
harbext.txt \
hb_set.txt \
hbpplib.txt \
howtobsd.txt \
idle.txt \
lang.txt \
license.txt \
math.txt \
memo.txt \
pcode.txt \
pragma.txt \
readme.txt \
setmode.txt \
simplex.txt \
statics.txt \
strotype.txt \
tracing.txt \
vm.txt \
array.txt \
binnum.txt \
browse.txt \
clipper.txt \
cmdline.txt \
codebloc.txt \
command.txt \
compiler.txt \
datetime.txt \
dbdelim.txt \
dbsdf.txt \
dbstrux.txt \
dir.txt \
dirstruc.txt \
diskspac.txt \
error.txt \
eval.txt \
garbage.txt \
harbext.txt \
hb_set.txt \
hbpplib.txt \
howtobsd.txt \
idle.txt \
lang.txt \
license.txt \
math.txt \
memo.txt \
pcode.txt \
pragma.txt \
readme.txt \
setmode.txt \
simplex.txt \
statics.txt \
strotype.txt \
tracing.txt \
vm.txt \
include $(TOP)$(ROOT)config/doc.cf

500
harbour/doc/es/gnulice.txt Normal file
View File

@@ -0,0 +1,500 @@
/*
* $Id$
*/
/* $DOC$
* $FUNCNAME$
* Licencia GNU
* $CATEGORY$
* Documento
* $ONELINER$
* Licencia GNU Parte 1
* $DESCRIPTION$
*
* GNU General Public License </par>
* Licencia P£blica General
* Versi¢n 2, Junio de 1991 </par>
*
* Copyright (C) 1989, 1991 Free Software Foundation, Inc.
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA </par>
*
* -----------------------------------------------------------------
*
* Traducci¢n al Espa¤ol : Diciembre de 2001 por
* Jos Mar¡a Sar chaga Fischer <jsarachaga@garaitia.com>
* Contribuciones:
* 13-Dic-2002 Fabi n Rodr¡guez <fabian.rodriguez@toxik.com>
* Ene 2003 Alejandro de G rate <alex_degarate@hotmail.com>
*
* This is an unofficial translation of the GNU General Public
* License into spanish. It was not published by the Free Software
* Foundation, and does not legally state the distribution terms for
* software that uses the GNU GPL--only the original English text of
* the GNU GPL does that. However, we hope that this translation
* will help spanish speakers understand the GNU GPL better.
*
* -----------------------------------------------------------------
*
* Esta es una traducci¢n NO oficial de la "GNU General Public
* License" al espa¤ol. No fu publicada por la "FSF Free Software
* Foundation", y no respalda legalmente los trminos de
* distribuci¢n del software que utiliza la "GNU GPL", s¢lo el texto
* original en ingls lo hace. Sin embargo esperamos que esta
* traducci¢n ayude a las personas de habla hispana a entender mejor
* la "GPL".
*
* -----------------------------------------------------------------
*
* Toda persona tiene permiso de copiar y distribuir copias fieles
* de este documento de licencia, pero no se permite hacer
* modificaciones.
*
*
* <b>PREAMBULO</b>
*
* Los contratos de licencia de la mayor parte del software est n
* dise¤ados para quitarle su libertad de compartir y modificar
* dicho software. En contraste, la "GNU General Public License"
* pretende garantizar su libertad de compartir y modificar el
* software "libre", esto es para asegurar que el software es libre
* para todos sus usuarios. Esta licencia p£blica general se aplica
* a la mayor¡a del software de la "FSF Free Software Foundation"
* (Fundaci¢n para el Software Libre) y a cualquier otro programa de
* software cuyos autores as¡ lo establecen. Algunos otros programas
* de software de la Free Software Foundation est n cubiertos por la
* "LGPL Library General Public License" (Licencia P£blica General
* para Librer¡as), la cual puede aplicar a sus programas tambin.
*
* Cuando hablamos de software libre, nos referimos a libertad, no
* precio. Nuestras licencias "General Public Licenses" est n
* dise¤adas para asegurar que:
*
* 1. usted tiene la libertad de distribuir copias del software
* libre (y cobrar por ese sencillo servicio si as¡ lo desea)
* 2. recibir el c¢digo fuente (o tener la posibilidad de obtenerlo
* si as¡ lo desea)
* 3. que usted puede modificar el software o utilizar partes de
* l en nuevos programas de software libre
* 4. que usted est enterado de que tiene la posibilidad de hacer
* todas estas cosas.
*
* Para proteger sus derechos, necesitamos hacer restricciones que
* prohiban a cualquiera denegarle estos derechos o a pedirle que
* renuncie a ellos. Estas restricciones se traducen en algunas
* responsabilidades para usted, si distribuye copias del software,
* ¢ si lo modifica.
*
* Por ejemplo, si usted distribuye copias de un programa, ya sea
* gratuitamente o por alg£n importe, usted debe dar al que recibe
* el software todos los derechos que usted tiene sobre el mismo.
* Debe asegurarse tambin que reciban el c¢digo fuente o bin que
* puedan obtenerlo si lo desean. Y por £ltimo debe mostrarle a esa
* persona estos trminos, para que conozca los derechos de que goza.
*
* Nosotros protegemos sus derechos en 2 pasos: (1) protegiendo los
* derechos de autor del software y (2) ofreciendole este contrato
* de licencia que le otorga permiso legal para copiar, distribuir
* y modificar el software.
*
* Adem s, para la protecci¢n de los autores de software y la
* nuestra, queremos asegurarnos de que toda persona entienda que no
* existe ninguna garant¡a del software libre. Si el software es
* modificado por alguien y lo distribuye, queremos que quienes lo
* reciban sepan que la copia que obtuvieron no es la original, por
* lo que cualquier problema provocado por quien realiz¢ la
* modificaci¢n no afectar  la reputaci¢n del autor original.
*
* Finalmente, cualquier programa de software libre es constantemente
* amenazado por las patentes de software. Deseamos evadir el peligro
* de que los re-distribuidores de un programa de software libre
* obtenga individualmente los derechos de patente con el fin de
* volver dicho programa propietario. Para prevenir esto, hemos
* dejado en claro que cualquier patente deber  ser licenciada para
* el uso libre de toda persona o que no est licenciada del todo.
*
* A continuaci¢n se describen con precisi¢n los trminos y
* condiciones para copiar, distribuir y modificar el software.
*
* -----------------------------------------------------------------
*
*
* <b>TERMINOS Y CONDICIONES PARA COPIA, MODIFICACION Y DISTRIBUCION</b>
*
* 0. Esta licencia aplica a cualquier programa o trabajo que
* contenga una nota puesta por el propietario de los derechos del
* trabajo estableciendo que su trabajo puede ser distribuido bajo
* los trminos de esta "GPL General Public License".
* El "Programa", utilizado en lo subsecuente, se refiere a
* cualquier programa o trabajo original, y el "trabajo basado en
* el Programa" significa ya sea el Programa o cualquier trabajo
* derivado del mismo bajo la ley de derechos de autor: es decir,
* un trabajo que contenga el Programa o alguna porci¢n de l, ya
* sea ¡ntegra o con modificaciones y/o traducciones a otros idiomas.
* De aqu¡ en adelante "traducci¢n" estar  incluida (pero no
* limitada a) en el trmino "modificaci¢n", y la persona a la que
* se aplique esta licencia ser  llamado "usted".
*
* Otras actividades que no sean copia, distribuci¢n o
* modificaci¢n no est n cubiertas en esta licencia y est n fuera de
* su alcance. El acto de ejecutar el programa no est  restringido,
* y la salida de informaci¢n del programa est  cubierta s¢lo si su
* contenido constituye un trabajo basado en el Programa (es
* independiente de si fue resultado de ejecutar el programa). Si
* esto es cierto ¢ no depende de la funci¢n del programa.
*
*
* 1. Usted puede copiar y distribuir copias fieles del c¢digo
* fuente del programa tal como lo recibi¢, en cualquier medio,
* siempre que proporcione de manera conciente y apropiada una nota
* de derechos de autor y una declaraci¢n de no garant¡a, adem s de
* mantener intactas todas las notas que se refieran a esta licencia
* y a la ausencia de garant¡a, y que le proporcione a las dem s
* personas que reciban el programa una copia de esta licencia junto
* con el Programa.
* Usted puede aplicar un cargo por el acto f¡sico de transferir una
* copia, y ofrecer protecci¢n de garant¡a por una cuota, lo cual no
* compromete a que el autor original del Programa responda por tal
* efecto.
*
*
* 2. Usted puede modificar su copia del Programa o de cualquier
* parte de el, formando as¡ un trabajo basado en el Programa, y
* copiar y distribuir tales modificaciones o bin trabajar bajo los
* trminos de la secci¢n 1 arriba descrita, siempre que cumpla con
* las siguientes condiciones:
*
* A. Usted debe incluir en los archivos modificados notas
* declarando que modific¢ dichos archivos y la fecha de los
* cambios.
* B. Usted debe notificar que ese trabajo que distribuye contiene
* totalmente o en partes al Programa, y que debe ser licenciado
* como un conjunto sin cargo alguno a cualquier otra persona
* que reciba sus modificaciones bajo los trminos de esta
* Licencia.
* C. Si el programa modificado lee normalmente comandos
* interactivamente cuando es ejecutado, usted debe presentar un
* aviso, cuando el programa inicie su ejecuci¢n en ese modo
* interactivo de la forma m s ordinaria, que contenga una nota
* de derechos de autor y un aviso de que no existe garant¡a
* alguna (o que s¡ existe si es que usted la proporciona) y que
* los usuarios pueden redistribuir el programa bajo esas
* condiciones, e informando al usuario como puede ver una copia
* de esta Licencia. (Excepci¢n: si el programa en s¡ es
* interactivo pero normalmente no muestra notas, su trabajo
* basado en el Programa no tiene la obligaci¢n de mostrar tales
* notas)
*
* Estos requerimientos aplican al trabajo modificado como un todo.
* Si existen secciones identificables de tal trabajo que no son
* derivadas del Programa original, y pueden ser razonablemente
* consideradas trabajos separados e independientes como tal,
* entonces esta Licencia y sus trminos no aplican a dichas
* secciones cuando usted las distribuye como trabajos separados.
* Pero cuando usted distribuye las mismas secciones como parte de
* un todo, que es un trabajo basado en el Programa, la distribuci¢n
* del conjunto debe ser bajo los trminos de esta Licencia, cuyos
* permisos para otras personas que obtengan el software se
* extienden para todo el software, as¡ como para cada parte de l,
* independientemente de quin lo escribi¢.
*
* No es la intenci¢n de esta secci¢n de reclamar derechos o pelear
* sus derechos sobre trabajos hechos enteramente por usted, en lugar
* de eso, la intenci¢n es ejercer el derecho de controlar la
* distribuci¢n de los trabajos derivados o colectivos basados en el
* Programa.
*
* Adicionalmente, el simple agregado de otro trabajo NO basado en
* el Programa al Programa en cuesti¢n (o a un trabajo basado en el
* Programa) en alg£n medio de almacenamiento no pone el otro
* trabajo bajo el alcance de esta Licencia.
*
*
* 3. Usted puede copiar y distribuir el Programa (¢ un trabajo
* basado en l, bajo la Secci¢n 2) en c¢digo objeto ¢ en forma
* de ejecutable bajo los trminos de las secciones 1 y 2 arriba
* descritas siempre que cumpla los siguientes requisitos:
*
* A. Acompa¤arlo con el correspondiente c¢digo fuente legible por
* la m quina, que debe ser distribu¡do bajo los trminos de las
* secciones 1 y 2 y en un medio comunmente utilizado para el
* intercambio de software, ¢
* B. Acompa¤arlo con una oferta escrita, v lida por al menos 3
* a¤os y para cualquier persona, por un cargo no mayor al costo
* que conlleve la distribuci¢n f¡sica del c¢digo fuente
* correspondiente en un medio comunmente utilizado para el
* intercambio de software, ¢
* C. Acompa¤arlo con la informaci¢n que usted recibi¢ sobre la
* oferta de distribuci¢n del c¢digo fuente correspondiente.
* (Esta alternativa est  permitida s¢lo para distribuci¢n
* no-comercial y s¢lo si usted recibi¢ el Programa en c¢digo
* objeto o en forma de ejecutable con tal oferta de acuerdo
* a la subsecci¢n b anterior)
*
* El c¢digo fuente de un trabajo significa la forma preferida de
* hacer modificaciones al mismo. Para un trabajo ejecutable, un
* c¢digo fuente completo significa todo el c¢digo fuente de todos
* los m¢dulos que contiene, m s cualquier archivo de definici¢n de
* interfases, m s los programas utilizados para controlar la
* compilaci¢n y la instalaci¢n del ejecutable.
* Sin embargo, como excepci¢n especial, no se requiere que el
* c¢digo fuente distribu¡do incluya cualquier cosa que no sea
* normalmente distribu¡da con las componentes mayores (compilador,
* kernel, etc.) del sistema operativo en el cual el ejecutable
* corre, a menos de que una componente en particular acompa¤e al
* ejecutable.
*
* Si la distribuci¢n del ejecutable ¢ del c¢digo objeto se hace
* ofreciendo acceso a copiar desde un lugar designado, entonces el
* ofrecer acceso equivalente para copiar el c¢digo fuente desde el
* mismo lugar se considera distribuci¢n del c¢digo fuente, aunque
* las dem s personas no copien el c¢digo fuente junto con el c¢digo
* objeto.
*
*
* 4. Usted no puede copiar, modificar, sub-licenciar ni distribuir
* el Programa a menos que sea expresamente bajo esta Licencia, de
* otra forma cualquier intento de copiar, modificar, sub-licenciar
* ¢ distribuir el programa es nulo, y autom ticamente causar  la
* prdida de sus derechos bajo esta Licencia. Sin embargo, cualquier
* persona que haya recibido copias ¢ derechos de usted bajo esta
* Licencia no ver n terminadas sus Licencias ni sus derechos
* perdidos mientras ellas contin£en cumpliendo los trminos de
* esta Licencia.
*
*
* 5. Usted no est  obligado a aceptar esta Licencia, dado que no la
* ha firmado. Sin embargo, nada le otorga el permiso de modificar ¢
* distribuir el Programa ni sus trabajos derivados. Estas acciones
* est n prohibidas por la ley si usted no acepta esta Licencia.
* Sin embargo, modificando o distribuyendo el Programa (o cualquier
* trabajo basado en el Programa) indica su aceptaci¢n de esta
* Licencia y de todos sus trminos y condiciones para copiar,
* distribuir o modificar el Programa y/o trabajos basados en l.
*
*
* 6. Cada vez que usted redistribuye el Programa (o cualquier
* trabajo basado en el Programa), la persona que lo recibe
* autom ticamente recibe una licencia del autor original para
* copiar, distribuir o modificar el Programa sujeto a estos
* trminos y condiciones. Usted no puede imponer ninguna
* restricci¢n adicional a las personas que reciban el Programa
* sobre los derechos que en esta Licencia se les otorga.
* Usted no es responsable de forzar a terceras personas en l
* cumplimiento de esta Licencia.
*
* $SEEALSO$
* Licencia GNU Parte 2
* $END$
*/
/*
* $DOC$
* $FUNCNAME$
* Licencia GNU Parte 2
* $CATEGORY$
* Documento
* $ONELINER$
* Licencia GNU Parte 2
* $DESCRIPTION$
*
* 7. Si como consecuencia de un veredicto de un juzgado o por el
* alegato de infringir una patente ¢ por cualquier otra raz¢n (no
* limitado s¢lo a cuestiones de patentes) se imponen condiciones
* sobre usted que contradigan los trminos y condiciones de esta
* Licencia, stas no le excusan de los trminos y condiciones aqu¡
* descritos. Si usted no puede distribuir el producto cumpliendo
* totalmente con las obligaciones concernientes a la resoluci¢n
* oficial y al mismo tiempo con las obligaciones que se describen
* en este contrato de Licencia, entonces no podr  distribuir m s
* este producto. Por ejemplo, si una licencia de patente no
* permitir  la distribuci¢n del Programa de forma libre de
* regal¡as (sin pago de regal¡as) por parte de quienes lo reciban
* directa o indirectamente, entonces la £nica forma de cumplir con
* ambas obligaciones es renunciar a la distribuci¢n del mismo.
*
* Si cualquier parte de esta secci¢n resulta inv lida, inaplicable
* ¢ no obligatoria bajo cualquier circunstancia en particular, la
* tendencia de esta es a aplicarse, y la secci¢n completa se
* aplicar  bajo otras circunstancias.
*
* La intenci¢n de esta secci¢n no es la de inducirlo a infringir
* ninguna ley de patentes, ni tampoco infringir alg£n reclamo de
* derechos, ni discutir la validez de tales reclamos; esta secci¢n
* tiene el £nico prop¢sito de proteger la integridad del sistema de
* distribuci¢n del software libre, que est  implementado por
* pr cticas de licencia p£blica. Mucha gente ha hecho generosas
* contribuciones a la amplia gama de software distribuido bajo este
* sistema favoreciendo as¡ la constante aplicaci¢n de este sistema
* de distribuci¢n; es decisi¢n del autor/donador si su Programa
* ser  distribu¡do utilizando este u otro sistema de distribuci¢n,
* y la persona que recibe el software no puede obligarlo a hacer
* ninguna elecci¢n en particular.
* Esta secci¢n pretende dejar muy en claro lo que se cree que ser 
* una consecuencia del resto de esta Licencia.
*
*
* 8. Si la distribuci¢n y/o el uso del Programa se restringe a
* algunos pa¡ses ya sea por patentes, interfases protegidas por
* derechos de autor, el propietario original de los derechos de
* autor que ubica su Programa bajo esta Licencia puede agregar una
* restricci¢n geogr fica de distribuci¢n expl¡cita excluyendo
* los pa¡ses que aplique, dando como resultado que su distribuci¢n
* s¢lo se permita en los pa¡ses no exclu¡dos. En tal caso, esta
* Licencia incorpora la limitaci¢n como si hubiera sido escrita en
* el cuerpo de esta misma Licencia.
*
*
* 9. La "FSF Free Software Foundation" puede publicar versiones
* nuevas o revisadas de la "GPL General Public License" de uno a
* otro momento. Estas nuevas versiones mantendr n el esp¡ritu de la
* presente versi¢n, pero pueden diferir en la inclusi¢n de nuevos
* problemas ¢ en la manera de tocar los problemas ¢ aspectos ya
* presentes.
*
* Cada versi¢n tendr  un n£mero de versi¢n que la distinga. Si el
* Programa especifica un n£mero de versi¢n para esta Licencia que
* aplique a l y "cualquier versi¢n subsecuente", usted tiene la
* opci¢n de seguir los trminos y condiciones de dicha versi¢n o de
* cualquiera de las posteriores versiones publicadas por la "FSF".
* Si el programa no especifica una versi¢n en especial de esta
* Licencia, usted puede elegir entre cualquiera de las versiones
* que han sido publicadas por la "FSF".
*
*
* 10. Si usted desea incorporar partes del Programa en otros
* Programas de software libre cuyas condiciones de distribuci¢n
* sean distintas, deber  escribir al autor solicitando su
* autorizaci¢n. Para programas de software protegidas por la "FSF
* Free Software Foundation", deber  escribir a la "FSF" solicitando
* autorizaci¢n, en ocasiones hacemos excepciones. Nuestra decisi¢n
* ser  guiada por dos metas principales:
*
* A. mantener el estado de libertad de todos los derivados de
* nuestro software libre
* B. promover el uso comunitario y compartido del software en
* general
*
*
*
* <b>NO EXISTE GARANTIA ALGUNA</b>
* -----------------------------------------------------------------
*
* 11. DEBIDO A QUE EL PROGRAMA SE OTORGA LIBRE DE CARGOS Y REGALIAS,
* NO EXISTE NINGUNA GARANTIA PARA EL MISMO HASTA DONDE LO PERMITA
* LA LEY APLICABLE. A EXCEPCION DE QUE SE INDIQUE OTRA COSA, LOS
* PROPIETARIOS DE LOS DERECHOS DE AUTOR PROPORCIONAN EL PROGRAMA
* "COMO ESTA" SIN NINGUNA GARANTIA DE NINGUN TIPO, YA SEA EXPLICITA
* O IMPLICITA, INCLUYENDO, PERO NO LIMITADA A, LAS GARANTIAS QUE
* IMPLICA EL MERCADEO Y EJERCICIO DE UN PROPOSITO EN PARTICULAR.
* CUALQUIER RIESGO DEBIDO A LA CALIDAD Y DESEMPEÑO DEL PROGRAMA ES
* TOMADO COMPLETAMENTE POR USTED. SI EL SOFTWARE MUESTRA ALGUN
* DEFECTO, USTED CUBRIRA LOS COSTOS DE CUALQUIER SERVICIO,
* REPARACION O CORRECCION DE SUS EQUIPOS Y/O SOFTWARE QUE REQUIERA.
*
* 12. EN NINGUN CASO NI BAJO NINGUNA CIRCUNSTANCIA EXCEPTO BAJO
* SOLICITUD DE LA LEY O DE COMUN ACUERDO POR ESCRITO, NINGUN
* PROPIETARIO DE LOS DERECHOS DE AUTOR NI TERCERAS PERSONAS QUE
* PUDIERAN MODIFICAR Y/O REDISTRIBUIR EL PROGRAMA COMO SE PERMITE
* ARRIBA, SERAN RESPONSABLES DE LOS DAÑOS CORRESPONDIENTES AL USO
* O IMPOSIBILIDAD DE USAR EL PROGRAMA, SIN IMPORTAR SI SON DAÑOS
* GENERALES, ESPECIALES, INCIDENTALES O CONSEQUENTES
* CORRESPONDIENTES AL USO O IMPOSIBILIDAD DE USAR EL PROGRAMA
* (INCLUYENDO PERO NO LIMITADO A LA PERDIDA DE INFORMACION O
* DETERIORO DE LA MISMA AFECTANDOLO A USTED, A TERCERAS PERSONAS
* QUE SEA POR FALLAS EN LA OPERACION DEL PROGRAMA O SU INTERACCION
* CON OTROS PROGRAMAS) INCLUSIVE SI TAL PROPIETARIO U OTRAS
* PERSONAS HAYAN SIDO NOTIFICADAS DE TALES FALLAS Y DE LA
* POSIBILIDAD DE TALES DAÑOS.
*
*
* <b>FIN DE TERMINOS Y CONDICIONES</b>
*
* -----------------------------------------------------------------
*
*
* Apendice: C¢mo aplicar estos trminos a sus nuevos programas ?
*
* Si usted desarrolla un nuevo Programa y desea que sea lo m s
* p£blico posible, el mejor modo de hacerlo es haciendolo Software
* Libre donde toda persona lo puede redistribuir y cambiar bajo
* estos trminos.
*
* Para hacer esto, agregue las siguientes notas al programa.
* Es m s seguro agregarlas al inicio de cada archivo del c¢digo
* fuente para notificar de manera m s efectiva la ausencia de
* garant¡a; y cada archivo debe de contener al menos la l¡nea de
* "Copyright" o derechos de autor y una referencia de donde se
* puede encontrar la nota completa.
* ejemplo:
*
* Una l¡nea que contenga el nombre del programa y una idea de lo
* que hace.
* Copyright (C) <a¤o> <nombre del autor>
*
* Este programa es Software Libre; usted puede redistribuirlo
* y/o modificarlo bajo los trminos de la "GNU General Public
* License" como lo publica la "FSF Free Software Foundation",
* ¢ (a su elecci¢n) de cualquier versi¢n posterior.
*
* Este programa es distribuido con la esperanza de que le ser 
* £til, pero SIN NINGUNA GARANTIA; incluso sin la garant¡a
* impl¡cita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
* particular. Vea la "GNU General Public License" para m s
* detalles.
*
* Usted debe haber recibido una copia de la "GNU General Public
* License" junto con este programa, si no, escriba a la "FSF
* Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Adicionalmente agregue informaci¢n de c¢mo contactarle por
* correo electr¢nico y convencional.
* Si el programa es interactivo, ponga en la salida del programa
* una nota corta al iniciar el modo interactivo como en siguiente
* ejemplo:
*
* Gnomovision version 69, Copyright (C) <a¤o> <nombre del autor>
* Gnomovision no tiene NINGUNA GARANTIA, para m s detalles
* escriba 'show w'. Este es Software Libre, y usted est 
* permitido para redistribuirlo bajo ciertas condiciones;
* escriba 'show c' para m s detalles.
*
* Estos hipoteticos comandos 'show w' y 'show c' deber n mostrar
* las partes apropiadas de la "GPL General Public License".
* Por supuesto, los comandos que utilice pueden ser distintos,
* pueden ser incluso "clicks" del rat¢n, opciones de men£s etc, lo
* m s apropiado para su programa.
*
* Usted deber¡a hacer que su jefe de proyecto (si trabaja como
* programador) o su escuela, si aplica, firme una "declaraci¢n de
* derechos de autor" para el programa, si se necesita.
* Aqu¡ hay un ejemplo, modifique los nombres:
*
* "Yoyodyne, Inc., por este medio renuncia a todo inters
* en los derechos de autor en el programa 'Gnomovision'
* (lo que make pasa al compilador) escrito por James Hacker."
*
* <firma de> Ty Coon, 1 de Abril 1989
* Ty Coon, Presidente de Yoyodyne, Inc
*
*
* Esta Licencia P£blica General no permite incorporar su programa
* en programas propietarios. Si su programa es una librer¡a de
* subrutinas, puede ser m s £til permitir que se ligue en tiempo de
* compilaci¢n o ejecuci¢n a aplicaciones propietarias. Si esto es
* lo que quiere hacer, use la licencia P£blica General para
* Librer¡as en lugar de esta licencia.
*
* Consultas y dudas sobre FSF y GNU dirigirlas a gnu@gnu.org
*
* Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111, USA
* Updated: 3 Jan 2000 rms
*
* $SEEALSO$
* Licencia,Licencia GNU
* $END$
*/

445
harbour/doc/es/hvm.txt Normal file
View File

@@ -0,0 +1,445 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* PROCNAME(), PROCLINE(), PROCFILE(), HB_PVALUE(), PCOUNT()
* __QUIT(), CLIPINIT(), __SetHelpK(), BREAK(), DO(), __VMVARLGET()
*
* Copyright 1999 Jose Lanin <dezac@corevia.com>
* Documentaci¢n en Ingls de: PROCLINE(),PROCFILE(),PROCNAME()
*
* Copyright 1999 Eddie Ruina
* Documentaci¢n en Ingls de: __VMVARLGET()
*
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: CLIPINIT(), __SETHELPK()
*
* Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
* Documentaci¢n en Ingls de: DO()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* PROCNAME()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Obtiene el nombre de la funci¢n actual en la pila
* $SYNTAX$
* PROCNAME( <nLevel> ) --> <cProcName>
* $ARGUMENTS$
* <nLevel> es el nivel de la funci¢n requerida
* $RETURNS$
* <cProcName> El nombre de la funci¢n que esta siendo ejecutada
* $DESCRIPTION$
* Esta funci¢n mira al tope de la pila y obtiene el nombre de la
* funci¢n actual ejecutada si no se pasaron argumentos. De otra
* manera esta retorna el nombre de la funci¢n ¢ procedimiento en el
* nivel <nLevel>.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* Este test mostrar  las funciones y procedimientos en la pila
* antes de ejecutarlas.
*
* FUNCTION Test()
* LOCAL n := 1
* while !Empty( ProcName( n ) )
* ? ProcName( n++ )
* end do
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* PROCNAME() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* PROCLINE(),PROCFILE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PROCLINE()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Obtiene el n£mero de l¡nea de la funci¢n actual en la pila
* $SYNTAX$
* PROCLINE( <nLevel> ) --> <nLinea>
* $ARGUMENTS$
* <nLevel> es el nivel de funci¢n requerida
* $RETURNS$
* <nLinea> el n£mero de l¡nea de la funci¢n que esta siendo ejecutada
* $DESCRIPTION$
* Esta funci¢n mira al tope de la pila y obtiene el n£mero de l¡nea
* de la funci¢n actual ejecutada si no se pasaron argumentos. De otra
* manera esta retorna el n£mero de l¡nea de la funci¢n ¢ procedimiento
* en el nivel <nLevel>.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* FUNCTION Test()
* ? ProcLine( 0 )
* ? ProcName( 2 )
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* PROCLINE() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* PROCNAME(),PROCFILE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PROCFILE()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Esta funci¢n siempre retorna una cadena vac¡a.
* $SYNTAX$
* PROCFILE( <xExp> ) --> <cEmptyString>
* $ARGUMENTS$
* <xExp> es cualquier tipo v lido
* $RETURNS$
* Retorna la cadena vac¡a <cEmptyString>.
* $DESCRIPTION$
* Esta funci¢n es agregada a la RTL por total compatibilidad.
* Esta siempre retorna una cadena vac¡a.
* $EXAMPLES$
* ? ProcFile()
* </fixed>
* $TESTS$
* FUNCTION Test()
* ? ProcFile()
* ? ProcFile( NIL )
* ? ProcFile( 2 )
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* PROCFILE() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* PROCNAME(),PROCLINE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_PVALUE()
* $CATEGORY$
* Chequeo Parametros
* $ONELINER$
* Obtiene el valor de un argumento.
* $SYNTAX$
* HB_PVALUE( <nArg> ) --> <xExp>
* $ARGUMENTS$
* Un n£mero que indica el argumento a chequear.
* $RETURNS$
* <xExp> Retorna el valor almacenado en el argumento.
* $DESCRIPTION$
* Esta funci¢n es £til para chequear el valor almacenado en un
* argumento.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* FUNCTION Test( nValue, cString )
* IF PCount() == 2
* ? hb_PValue( 1 ), nValue
* ? hb_PValue( 2 ), cString
* ENDIF
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* HB_PVALUE() es una nueva funci¢n y por tanto no es compatible con
* CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* PCOUNT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PCOUNT()
* $CATEGORY$
* Chequeo Parametros
* $ONELINER$
* Obtiene el n£mero de argumentos pasados a la funci¢n.
* $SYNTAX$
* PCOUNT() --> <nArgs>
* $ARGUMENTS$
* Ninguno.
* $RETURNS$
* <nArgs> Un n£mero que indica la cantidad de par metros pasados a
* la funci¢n ¢ procedimiento,
* $DESCRIPTION$
* Esta funci¢n es £til para chequear si una funci¢n ¢ procedimiento a
* recibido el n£mero de argumentos necesario.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* FUNCTION Test( xExp )
* IF PCount() == 0
* ? "Esta funci¢n necesita un par metro"
* ELSE
* ? xExp
* ENDIF
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* PCOUNT() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* HB_PVALUE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __QUIT()
* $CATEGORY$
* Eventos
* $ONELINER$
* Termina una aplicaci¢n.
* $SYNTAX$
* __QUIT() --> NIL
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* NIL
* $DESCRIPTION$
* Esta funci¢n termina la aplicaci¢n actual y retorna al sistema.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* FUNCTION EndApp( lYesNo )
* IF lYesNo
* __Quit()
* ENDIF
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __QUIT() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* QUIT
* $END$
*/
/* $DOC$
* $FUNCNAME$
* CLIPINIT()
* $CATEGORY$
* Internal
* $ONELINER$
* Initializa varios subsistemas de Harbour
* $SYNTAX$
* CLIPINIT() --> NIL
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* CLIPINIT() siempre devuelve NIL.
* $DESCRIPTION$
* CLIPINIT() es uno de los INIT PROCEDURE predefinidos y es ejecutado
* cuando el programa arranca. Este declara un array MEMVAR PUBLIC vac¡o
* llamado GetList que va a ser usado por el sistema Get.
* Este activa el manejador de error por defecto, y (al menos por el
* momento) llama a la funci¢n que establece la tecla de Ayuda por
* defecto (F1).
* $STATUS$
* R
* $COMPLIANCE$
* Se dice que CLIPINIT() no deber¡a llamar a la funci¢n que establece
* la tecla de Ayuda por defecto (F1) dado que CA-Clipper lo hace en
* otro lugar.
* $PLATFORMS$
* Todas.
* $SEEALSO$
* INIT PROCEDURE
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __SetHelpK()
* $CATEGORY$
* Internal
* $ONELINER$
* Establece a <F1> como la tecla de Ayuda por defecto
* $SYNTAX$
* __SetHelpK() --> NIL
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* __SetHelpK() siempre devuelve NIL
* $DESCRIPTION$
* Establece que al pulsar la tecla <F1>, se ejecute una funci¢n llamada
* HELP si tal funci¢n es enlazada dentro del programa.
* $STATUS$
* R
* $COMPLIANCE$
* __SetHelpK() trabaja exactamente como la funci¢n de CA-Clipper
* llamada __SetHelpK()
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __XHelp(),SET KEY,SETKEY()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* BREAK()
* $CATEGORY$
* Error recovery
* $ONELINER$
* Sale de un bloque BEGIN SEQUENCE
* $SYNTAX$
* BREAK( <xExp> ) --> NIL
* $ARGUMENTS$
* <xExp> es cualquier expresi¢n v lida. Esta es requerida siempre
* Si Ud. no desea pasarle ning£n argumento, s¢lo use NIL.
* $RETURNS$
* NIL
* $DESCRIPTION$
* Esta funci¢n le pasa el control a la sentencia RECOVER en un bloque
* BEGIN SEQUENCE.
* $EXAMPLES$
* Break( NIL )
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* BREAK() es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* BEGIN SEQUENCE
* $END$
*/
/* $DOC$
* $FUNCNAME$
* DO()
* $CATEGORY$
* Utility
* $ONELINER$
* Llama a un procedimiento ¢ a una funci¢n
* $SYNTAX$
* DO( <xFuncProc> [, <xArguments...>] )
* $ARGUMENTS$
* <xFuncProc> es tanto una cadena con un nombre de funci¢n ¢
* procedimiento a ser llamado, ¢ un codeblock a evaluar.
* <xArguments> argumentos pasados a la funci¢n ¢ procedimiento
* llamado ¢ a un codeblock.
* $RETURNS$
* A value that was returned from called function.
* $DESCRIPTION$
* Esta funci¢n puede ser llamada ¢ bien por el compilador Harbour ¢
* por el usuario.
* El compilador siempre siempre pasa el item de tipo IT_SYMBOL que
* almacena el nombre del procedimiento especificado en la sentencia
* DO <proc> WITH .
* Si el procedimiento/funci¢n no existe, entonces un error de tiempo
* de ejecuci¢n es generado.
* Esta funci¢n puede ser usada como reemplazo del operador macro.
* Esta es tambin usada internamente para implementar:
* DO <proc> WITH <args...>
* En este caso <xFuncProc> es del tipo HB_SYMB.
* $EXAMPLES$
* cbCode ={|x| MyFunc( x )}
* DO( cbCode, 1 )
*
* cFunction := "MyFunc"
* xRetVal :=DO( cFunction, 2 )
*
* Old style (slower):
* DO &cFunction WITH 3
* </fixed>
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
*
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __VMVARLGET()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Obtiene una variable LOCAL de un nivel de procedimiento
* $SYNTAX$
* __VMVARLGET( <nProcLevel>, <nLocal> )
* $ARGUMENTS$
* <nProcLevel> Es el nivel de procedimiento, el mismo que el usado
* en PROCNAME() y PROCLINE(), desde el cual una variable
* local va a ser obtenida.
* <nLocal> Es la posici¢n ¢ ¡ndice de la variable local a recuperar
* $RETURNS$
* El contenido de la variable local especificada.
* $DESCRIPTION$
* Esta funci¢n es usada desde el depurador.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* PROCNAME()
* $END$
*/

484
harbour/doc/es/input.txt Normal file
View File

@@ -0,0 +1,484 @@
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* INKEY(), __KEYBOARD(), HB_KEYPUT(), NEXTKEY()
* LASTKEY(), KEYBOARD, READKEY(), MROW(), MCOL()
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentation for: READKEY()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* INKEY()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Extrae el pr¢ximo c¢digo de tecla desde el buffer de teclado.
* $SYNTAX$
* INKEY( [<nTiempoEspera>] [,<nEventos>] ) --> nTecla
* $ARGUMENTS$
* <nTiempoEspera> es un valor opcional de tiempo de espera en segundos,
* con una resoluci¢n de 1/10th de segundo.
* Si es omitido, INKEY() retorna inmediatamente.
* Si es cero, INKEY() espera hasta que un evento de entrada suceda.
* Si es establecido en cualquier otro valor INKEY() retornara tanto
* cuando un evento de entrada ocurra como cuando el per¡odo de espera
* haya transcurrido.
* Si s¢lo este par metro es especificado y este no es numrico, ste
* ser  tratado como si fuera cero. Pero si ambos par metros son
* especificados y este par metro no es numrico, este ser  tratado
* como si no estuviese presente.
*
* <nEventos> es una m scara opcional de los eventos de entrada que son
* habilitados.
* Si es omitida por defecto es hb_set.HB_SET_EVENTMASK.
* M scaras v lidas de entrada se ecuentran en inkey.ch y son explicadas
* m s abajo. Se recomienda usar los nombres de estas m scaras, antes
* que sus valores numricos, en el caso que estos valores numricos
* cambien en futuras versiones de Harbour.
* Para permitir m s de un tipo de evento de entrada, simplemente sume
* varios nombres de m scara todos juntos.
*
* <table>
* inkey.ch Significado de los eventos
*
* INKEY_MOVE permitidos los eventos de movimiento del mouse
* INKEY_LDOWN permitido apretar el bot¢n izq. del mouse
* INKEY_LUP permitido soltar el bot¢n izquierdo del mouse
* INKEY_RDOWN permitido apretar el bot¢n derecho del mouse
* INKEY_RUP permitido soltar el bot¢n derecho del mouse
* INKEY_KEYBOARD Todos los eventos de teclado estan permitidos
* INKEY_ALL Todos los eventos de mouse y teclado estan
* permitidos
* HB_INKEY_EXTENDED Codigos Extendidos de teclado son usados
* </table>
* Si el par metro no es numrico, este ser  tratado como si hubiese
* sido establecido a hb_set.HB_SET_EVENTMASK.
* $RETURNS$
* INKEY() retorna cero en caso de transcurrido el tiempo de espera sin
* ning£n evento de entrada, de otro modo retorna un valor en el rango
* -39 a 386 para eventos de teclado ¢ en le rango de 1001 a 1007 para
* eventos de mouse.
* Los eventos de mouse y los eventos de teclado que no se pueden
* imprimir son representados por los valores K_<evento> listados en
* el archivo inkey.ch
* Los c¢digo de teclas de los eventos de teclado en el rango de 32 a
* 127 son los equivalentes al set de caracteres ASCII. Los c¢digos de
* retorno de eventos de teclado en el rango de 128 a 255 son asumidos
* como imprimibles, pero los resultados pueden variar basados en el
* hardware del teclado y la nacionalidad de su seteo.
*
* Los codigos de tecla Extendidos para un teclado de PC consisten de
* scancode y uno o mas valores de desplazamiento (offset).
* Si ningun modificador de teclado fue usado entonces HB_INKEY_NONE
* es agregado. Las teclas <Alt> agregan HB_INKEY_ALT, las teclas
* <Ctrl> agregan HB_INKEY_CTRL, las teclas de desplazamiento (Shift),
* (que se simbolizan con una flecha hacia arriba) agregan
* HB_INKEY_SHIFT, y las teclas adicionales del teclado numerico
* ubicadas a la derecha
* del teclado (teclas KeyPad y CursorPad ) agregan HB_INKEY_ENHANCED.
*
* Por ejemplo la tecla <F1> tiene un scancode de 59, asi que si solo
* se pulsa <F1> se obtiene el codigo 315, <Alt+F1> da 443, <Ctrl+F1>
* da 571, <Shift+F1> da 699. <>
*
* ?????? And NumPad+/ gives 1077, 1205, 1333, and 1461. At
* this time, the only value that can combine with other values is
* HB_INKEY_ENHANCED (i.e., there are no Alt+Ctl combinations, etc.)
*
* Nota: El conjunto de codigos de teclas extendido es mayor que el
* conjunto de codigo de tecla normal. Como resultante de esto, si
* Ud. cambia entre los modos normal y extendido, Ud. debe saber que
* algunos codigos son trasladados como cero en el modo normal (esto
* es debido a que existe el correspondiente codigo para esa tecla en
* modo normal) y que esos codigos seran removidos del buffer de
* entrada del teclado en el modo normal y que Ud. no podr  volver
* atras y obtenerlos luego en modo extendido.
* $DESCRIPTION$
* INKEY() puede ser usada para detectar eventos de entrada, como la
* pulsaci¢n de una tecla, ¢ un click del mouse (arriba y/o abajo).
* $EXAMPLES$
* // Espera a que el usuario presione la tecla Esc
* ? "Por favor, presione la tecla ESC."
* WHILE INKEY( 0.1 ) != K_ESC
* END
* </fixed>
* $TESTS$
* KEYBOARD "AB"; ? INKEY(), INKEY() ==> 65 66
* </fixed>
* $STATUS$
* S
* $COMPLIANCE$
* INKEY() es compatible con la funci¢n INKEY() de Clipper 5.3 con una
* excepci¢n: La funci¢n INKEY() de Harbour dar  un error de argumento
* si el primer par metro es menor ¢ igual a cero y el segundo par metro
* ( ¢ la m scara por defecto ) no es v lida, porque de otra manera
* INKEY() podr¡a no retornar nunca, porque en efecto espera por
* siempre por un un evento que no se va a producir (Nota: En Clipper,
* esto tambin bloquea los eventos SET KEY).
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* inkey.ch
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __KEYBOARD()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* NO LLAMAR A ESTA FUNCION DIRECTAMENTE !
* $SYNTAX$
* KEYBOARD <cString>
* CLEAR TYPEAHEAD
* $ARGUMENTS$
* <cString> es una cadena opcional para ser colocada en el buffer
* de teclado de Harbour despus de borrarlo.
* Nota: El car cter ";" es convertido a CHR(13) (esta es
* una caracter¡stica no documentada de CA-Clipper).
* $RETURNS$
* No hay valor de retorno.
* $DESCRIPTION$
* Borra el buffer de teclado de Harbour y luego inserta una cadena
* opcional en ste.
* $EXAMPLES$
* // Pone la tecla <enter> en el buffer de teclado
* KEYBOARD CHR(13)
*
* // Borra el buffer de teclado
* CLEAR TYPEAHEAD
* </fixed>
* $TESTS$
* KEYBOARD CHR(13); ? INKEY() ==> 13
* KEYBOARD ";" ? INKEY() ==> 13
* KEYBOARD "HOLA"; CLEAR TYPEAHEAD; ? INKEY() ==> 0
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __KEYBOARD() es compatible con CA-Clipper 5.3
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* CLEAR TYPEAHEAD,KEYBOARD
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_KEYPUT()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Pone un c¢digo de tecla en el buffer de teclado.
* $SYNTAX$
* HB_KEYPUT( <nInkeyCode> )
* $ARGUMENTS$
* <nInkeyCode> es el c¢digo de tecla. que deber¡a ser insertado en
* el buffer de teclado.
* $RETURNS$
* No hay valor de retorno.
* $DESCRIPTION$
* Inserta un c¢digo de tecla en el buffer de teclado.
* El buffer *NO* es borrado en esta operaci¢n. Esta funci¢n permite
* insertar c¢digos de teclas que no estan en el rango de 0 a 255.
* Para insertar m s de un c¢digo, llame a la funci¢n repetidamente.
* El c¢digo cero no puede ser insertado.
* $EXAMPLES$
* // Coloca la tecla de Alt+PgDn key en el buffer de teclado.
* HB_KEYPUT( K_ALT_PGDN )
* </fixed>
* $TESTS$
* HB_KEYPUT( K_ALT_PGDN ) ; ? INKEY() ==> 417
* HB_KEYPUT( K_F11 ) ; ? INKEY() ==> -40
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* HB_KEYPUT() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* KEYBOARD,CLEAR TYPEAHEAD,INKEY()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* NEXTKEY()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Lee la pr¢xima tecla del buffer de teclado sin extraerla
* $SYNTAX$
* NEXTKEY( [<nInputMask>] ) --> nTecla
* $ARGUMENTS$
* <nInputMask> es un valor entero opcional compuesto por una o mas
* constantes INKEY_ or HB_INKEY_
* El solo proposito de este argumento es permitir cambiar
* entre los codigos de tecla HB_INKEY_EXTENDED y usar
* los codigos de tecla normales compatibles con Clipper.
* $RETURNS$
* <nTecla> el valor del pr¢ximo c¢digo de tecla del buffer de teclado.
* $DESCRIPTION$
* Retorna el valor del pr¢ximo c¢digo de tecla del buffer de teclado
* sin extraerlo.
* $EXAMPLES$
* // Uso de NEXTKEY() con INKEY() para cambiar los caracteres a mostrar
* // ¢ para poder salir del bucle, as¡ el llamador puede detectar
* // la tecla ESC.
* LOCAL nTecla, cChar := "+"
*
* WHILE TRUE
* ?? cChar
* nTecla := NEXTKEY()
*
* IF nTecla == K_ESC
* EXIT
* ELSE
* IF nTecla != 0
* cChar := CHR( nTecla )
* END IF
* ENDIF
*
* END WHILE
* </fixed>
* $TESTS$
* KEYBOARD "AB"; ? NEXTKEY(), NEXTKEY() ==> 65 65
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* NEXTKEY() es compatible con CA-Clipper 5.3
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* INKEY(),LASTKEY()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* LASTKEY()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Obtiene el £ltima tecla extraida desde el buffer de teclado.
* $SYNTAX$
* LASTKEY( [<nInputMask>] ) --> nTecla
* $ARGUMENTS$
* <nInputMask> es un valor entero opcional compuesto por una o mas
* constantes INKEY_ o HB_INKEY_
* El solo proposito de este argumento es permitir cambiar
* entre los codigos de tecla HB_INKEY_EXTENDED y usar
* los codigos de tecla normales compatibles con Clipper.
* $RETURNS$
* <nTecla> la £ltima tecla extraida desde el buffer de teclado.
* $DESCRIPTION$
* LASTKEY() retorna el valor de la £ltima tecla extraida del buffer
* de teclado.
* $EXAMPLES$
* // Continua el bucle a menos que la tecla ESC haya sido presionada
* // en MainFunc()
* WHILE TRUE
*
* MainFunc()
* IF LASTKEY() == K_ESC
* EXIT
* ENDIF
*
* END WHILE
* </fixed>
* $TESTS$
* KEYBOARD "AB"; ? INKEY(), LASTKEY() ==> 65 65
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* LASTKEY() es compatible con CA-Clipper 5.3
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* INKEY(),LASTKEY()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* KEYBOARD
* $CATEGORY$
* Comando
* $ONELINER$
* Rellena el buffer de teclado con una cadena.
* $SYNTAX$
* KEYBOARD <cString>
* $ARGUMENTS$
* <cString> es la cadena a ser procesada, un caracter a la vez, por
* el procesador de teclado de Harbour.
* $DESCRIPTION$
* Este comando llena el buffer de entrada con <cString>.
* El n£mero de caracteres que pueden ser puestos en el buffer de
* teclado es controlado por el comando SET TYPEAHEAD y puede estar en
* el rango de 0 a 32622, donde cada caracter corresponde al rango ASCII
* de 0 a 255. Ninguna de las teclas extendidas puede ser puestas en
* el buffer de teclado.
* Haciendo KEYBOARD " " limpiar  el buffer de teclado.
* $EXAMPLES$
* // Coloca la tecla <Enter> en el buffer de teclado.
* KEYBOARD CHR(13)
*
* // Borra el buffer de teclado.
* CLEAR TYPEAHEAD
* </fixed>
* $TESTS$
* KEYBOARD CHR(13); ? INKEY() ==> 13
* KEYBOARD "HOLA"; CLEAR TYPEAHEAD; ? INKEY() ==> 0
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __KEYBOARD() es compatible con CA-Clipper 5.3
* $SEEALSO$
* CLEAR TYPEAHEAD,__KEYBOARD()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* READKEY()*
* $CATEGORY$
* Entrada y Salida de datos
* $ONELINER$
* Encuentra cual tecla caus¢ la salida del READ
* $SYNTAX$
* READKEY() --> nCodigoTecla
* $ARGUMENTS$
* Ninguno.
* $RETURNS$
* READKEY() retorna un c¢digo numrico representando la tecla que
* caus¢ la terminaci¢n del READ.
* $DESCRIPTION$
* READKEY() es usado despus que un READ ha terminado para determinar
* la tecla de salida.
* Si el buffer del GET fu actualizado durante el READ, el valor 256
* es agregado al c¢digo de retorno.
*
* <table>
* Tecla de C¢digo de Retorno C¢digo de Retorno
* Salida (no actualizado) (actualizado)
*
* Up 4 260
* Down 5 261
* Page-Up 6 262
* Page-Down 7 263
* Ctrl Page-Up 34 290
* Ctrl Page-Down 35 291
* Esc 12 268
* Ctrl End 14 270
* Enter 15 271
* Key >= 32 15 271
* de otro modo 0 0
* </table>
* READKEY() es una funci¢n de compatibilidad, as¡ que trate de no
* usarla. READKEY() es superada por LASTKEY() la que retorna el c¢digo
* de INKEY() para esa tecla. UPDATED() podr¡a ser usado para encontrar
* si el buffer GET hab¡a cambiado durante el READ.
* $STATUS$
* R
* $COMPLIANCE$
* READKEY() es compatible con CA-Clipper 5.3
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* @...GET,INKEY(),LASTKEY(),READ,READEXIT(),UPDATED()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* MROW()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Retorna la fila de posici¢n del cursor del mouse.
* $SYNTAX$
* MROW() --> nFilaMouse
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* <nFilaMouse> la fila de posici¢n del cursor del mouse.
* $DESCRIPTION$
* Esta funci¢n retorna el fila de posicion actual del cursor del mouse
* En sistemas gr ficos el valor representa filas de pixels.
* En sistemas basados en caracteres el valor representa filas de
* caracteres como en Clipper.
* $EXAMPLES$
* IF MROW() < 1
* ? "El Mouse esta en la fila superior!"
* ENDIF
*
* $STATUS$
* R
* $COMPLIANCE$
* MROW() es compatible con CA-Clipper 5.3, pero ha sido extendido para
* trabajar sobre sistemas gr ficos tan bien como en sistemas basados
* en caracteres.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* MCOL()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* MCOL()
* $CATEGORY$
* Entrada de Consola
* $ONELINER$
* Retorna la columna de posici¢n del cursor del mouse.
* $SYNTAX$
* MCOL() --> nColumnaMouse
* $ARGUMENTS$
* Ninguno.
* $RETURNS$
* <nColumnaMouse> la columna de posici¢n del cursor del mouse.
* $DESCRIPTION$
* Esta funci¢n retorna la columna de posici¢n actual del cursor del
* mouse.
* En sistemas gr ficos el valor representa filas de pixels.
* En sistemas basados en caracteres el valor representa filas de
* caracteres como en Clipper.
* $EXAMPLES$
* IF MCOL() < 1
* ? "El Mouse esta sobre el margen izquierdo!"
* ENDIF
* $STATUS$
* R
* $COMPLIANCE$
* MCOL() es compatible con CA-Clipper 5.3, pero ha sido extendido para
* trabajar sobre sistemas gr ficos tan bien como en sistemas basados
* en caracteres.
* $PLATFORMS$
* Todas.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* MROW()
* $END$
*/

99
harbour/doc/es/macro.txt Normal file
View File

@@ -0,0 +1,99 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* Compilador Macro, HB_SETMACRO()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* Compilador Macro
* $CATEGORY$
* Documento
* $ONELINER$
* Compilador Macro
* $DESCRIPTION$
*
* <b>Invocando al compilador de Macros: </b>
* =================================
*
* &variable
* ¢
* &( expresi¢n )
* ¢
* &variable.text
*
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_SETMACRO()
* $CATEGORY$
* Compilador Macro
* $ONELINER$
* Habilita/Inhabilita las caracter¡sticas del Compilador Macro
* $SYNTAX$
* HB_SETMACRO( <nOpcion>, [<lOnOff>] ) --> <lSeteoAnterior>
* $ARGUMENTS$
* <nOpcion> Una de las constantes HB_SM_* definidas en set.ch.
*
* <lOnOff> Usar .T. para habilitar ¢ .F. para Inhabilitar una
* caracter¡stica.
* $RETURNS$
* HB_SETMACRO() retorna el estado anterior de la caracter¡stica
* solicitada.
* $DESCRIPTION$
* Esta funci¢n Habilita / Inhabilita algunas de las caracter¡sticas
* del Compilador de Macros. Harbour extiende las caracter¡sticas para
* macros comparadas con el conjunto original en Clipper.
* Habilitando / Inhabilitando algunas de ellas permite mantener una
* estricta compatibilidad con Clipper.
*
* Las caracter¡sticas disponibles son:
*
* <b>HB_SM_HARBOUR</b> - Habilita las extensiones de Harbour:
* operadores: ++, --, +=, -=, *=, /=, ^=
* objetos: asignaciones a una variable de instancia
*
* <b>HB_SM_XBASE</b> - Habilita extensiones de otros dialectos xbase:
* Expansi¢n de listas de expresiones
*
* <b>HB_SM_SHORTCUTS</b> - Habilita la evaluaci¢n optimizada de los
* operadores l¢gicos (.AND., .OR.)
*
* <b>HB_SM_PREPROC</b> - Habilita el preprocesamiento de comandos
* Esto es significativo si Harbour es compilado con la bandera
* HB_MACRO_STATEMENTS establecida.
*
* $EXAMPLES$
* INIT PROCEDURE IWANTCLIPPER()
* HB_SETMACRO( HB_SM_HARBOUR, .F. )
* HB_SETMACRO( HB_SM_XBASE, .F. )
* RETURN
*
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $PLATFORMS$
* Todas
* $FILES$
* El archivo de cabecera es ..\include\set.ch
* La Librer¡a es macro
* $SEEALSO$
* Compilador Macro
* $END$
*/

197
harbour/doc/es/memvar2.txt Normal file
View File

@@ -0,0 +1,197 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* FIELD, LOCAL, MEMVAR
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $COMMANDNAME$
* FIELD
* $CATEGORY$
* Comando
* $ONELINER$
* Declara una lista de nombres de campo de una base de datos
* $SYNTAX$
* FIELD <xField> [,<xFieldn...> [in <cDatabase>]
* $ARGUMENTS$
* <xField> Un nombre de campo válido
*
* <xFieldn> Nombres de campo adicionales
*
* <cDatabase> Un nombre de alias válido
* $RETURNS$
* Nada
* $DESCRIPTION$
* Este comando declara los nombres de los campos <xField> y siguientes
* <xFieldn> con una identificador opcional de alias <cDatabase> para
* cada uno.
* Este comando le permite a Harbour resolver cualquier referencia a un
* campo especificado en la lista de campos, viéndolo como un campo
* cuando no es referenciado por un alias.
* Si un campo no está mencionado en la lista y no está explicitamente
* marcado con el identificador de alias, éste puede ser visto como una
* variable de memoria, lo cual puede causar errores de ejecución.
*
* Este comando no tiene efecto sobre variables de memoria ó sobre
* referencias a campos metidos dentro de una macro-expresión.
* $EXAMPLES$
* FUNCTION MAIN
* FIELD iD
* FIELD Name
* USE TESTS NEW
* name := "Sales"
* Id := 5
* USE
* RETURN NIL
* $TESTS$
* Ver ../tests/testwarn.prg
* $STATUS$
* R
* $COMPLIANCE$
* Este comando trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* Ninguno
* $SEEALSO$
* MEMVAR,PRIVATE,PUBLIC,STATIC
* $END$
*/
/* $DOC$
* $COMMANDNAME$
* LOCAL
* $CATEGORY$
* Comando
* $ONELINER$
* Crea e inicializa una variable de memoria ó un array LOCAL
* $SYNTAX$
* LOCAL <xVar> [:= <xInit> ]
* LOCAL <xVar1>[:= <xInit1>], ..., <xVarN>[:= <xInitN>]
* $ARGUMENTS$
* <xVar> Nombre de variable de Memoria ó array.
*
* <xInit> Valor a ser asignado a la variable ó array
* $RETURNS$
* Nada
* $DESCRIPTION$
* Este comando Crea una variable de memoria ó un array LOCAL
* El nombre de cualquiera es especificado en <xVar>.
* Si más de una variable está siendo inicializada con la sentencia
* LOCAL, separe cada una de ellas con una coma.
* Si una variable ó un array le va a ser asignado un valor de inicio
* esa expresión puede ser especificada en <xInit>, usando el operador
* de asignación en línea <:=>
*
* Nota:
* Si el modo de compilación "Fuertemente Tipeado" (Strong type) es
* usado, el compilador chequeará si el valor recibido coincide con el
* tipo especificado en <xType>.
*
* Las Variables LOCALes son símbolos generados en tiempo de ejecución
* y son resueltos en tiempo de compilación (???).
* La visibilidad y tiempo de vida de una variable ó array LOCAL está
* limitada a la función ó procedimiento en la cual ésta es definida.
*
* Ninguna macro-expansión es permitida de una sentencia de declaración
* LOCAL.
*
* Ningún comando de Harbour distinto a FUNCTION, PROCEDURE, PUBLIC,
* PRIVATE, PARAMETERS, MEMVAR, STATIC y FIELD, pueden preceder a la
* sentencia LOCAL (esto esta mal)
*
* Las referencias a un array LOCAL pueden no ser inicializadas (por
* ej. asignarle un valor) en la misma línea de comando junto con la
* sentencia LOCAL. Esto puede ser hecho luego en el programa.
*
* Variables y arrays de tipo LOCAL no son afectadas por el comando
* RELEASE.
* $EXAMPLES$
* Function Main2()
* Local n , lVar
*
* n := IIF( lVar, 'A', 3 )
* n := 2
* n := 'a'
* n := seconds() + 2
* n := int( seconds() + 2 )
* Return( NIL )
* $TESTS$
* Ver ../tests/testwarn.prg por más ejemplos
* $STATUS$
* R
* $COMPLIANCE$
* Este comando trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* Ninguno
* $SEEALSO$
* FIELD,PRIVATE,PUBLIC,STATIC,MEMVAR
* $END$
*/
/* $DOC$
* $COMMANDNAME$
* MEMVAR
* $CATEGORY$
* Comando
* $ONELINER$
* Declara variables PRIVATE, PUBLIC y arrays.
* $SYNTAX$
* MEMVAR <xVar>
* $ARGUMENTS$
* <xVar> Nombre de variable de Memoria
* $RETURNS$
* Nada
* $DESCRIPTION$
* Este comando le dice al compilador como resolver alguna referencia
* a una variable de memoria designada dentro de esta lista ó si posee
* un alias explícito con el prefijo "M->" ó bien "MEMVAR->"
* Solamente aquellas variables de memoria que no contengan ese prefijo
* son afectadas por este comando. Aquellas variables de memoria dentro
* de expansiones macro, no son afectadas por este comando.
*
* La declaración MEMVAR debe aparecer antes que cualquier comando
* ejecutable; esta es similar a las sentencias LOCAL, STATIC, FIELD,
* PARAMETERS, FUNCTION y PROCEDURE
* $EXAMPLES$
* MEMVAR y As Numeric
* Function Main2()
* LOCAL n , lVar
*
* n := IIF( lVar, 'A', 3 )
* n := 2
* n := 'a'
* n := seconds() + 2
* n := int( seconds() + 2 )
* y := n
* ? y
* Return( NIL )
* $TESTS$
* Ver ../tests/testwarn.prg por más ejemplos
* $STATUS$
* R
* $COMPLIANCE$
* Este comando trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* Ninguno
* $SEEALSO$
* LOCAL,STATIC,FIELD,PRIVATE,PUBLIC
* $END$
*/

257
harbour/doc/es/misc.txt Normal file
View File

@@ -0,0 +1,257 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci½n en Espa¤ol de:
* OS(), VERSION(), GETENV(), __RUN(), TONE(), RUN
*
* Copyright 2000 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: TONE()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* OS()
* $ONELINER$
* Retorna el sistema operativo subyacente.
* $SYNTAX$
* OS() --> <cSistemaOperativo>
* $CATEGORY$
* DOS
* $RETURNS$
* <cSistemaOperativo> el actual sistema operativo
* $DESCRIPTION$
* Esta funci¢n devuelve el actual sistema operativo como una cadena
* de caracteres.
* $EXAMPLES$
* ? OS()
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* Esta es una funci¢n compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* El c¢digo fuente esta en ../source/rtl/version.c
* La librer¡a es rtl
* $END$
*/
/* $DOC$
* $FUNCNAME$
* VERSION()
* $CATEGORY$
* Entorno
* $ONELINER$
* Retorna la Versi¢n de HARBOUR
* $SYNTAX$
* VERSION() --> <HbVersion>
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* <HbVersion> Cadena conteniendo la versi¢n de Harbour
* $DESCRIPTION$
* Esta funci¢n devuelve la actual versi¢n de Harbour.
* $EXAMPLES$
* // Visualiza algo similar a: Harbour Alpha build 40.0 Intl. (Flex)
* ? QOUT( VERSION() )
* $TESTS$
* $STATUS$
* S
* $COMPLIANCE$
* Esta es una funci¢n compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* El c¢digo fuente esta en ../source/rtl/version.c
* La librer¡a es rtl
* $SEEALSO$
* OS()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* GETENV()
* $CATEGORY$
* Entorno
* $ONELINER$
* Obtiene datos de las Variables de Entorno del Sistema Operativo
* $SYNTAX$
* GETENV(<cEntorno>, <cValorxDefecto> ) --> <cResultado>
* $ARGUMENTS$
* <cEntorno> Variable de Entorno a obtener
*
* <cValorxDefecto> Valor opcional a retornar si la variable <cEntorno>
* no es encontrada.
* $RETURNS$
* <cResultado> Valor de la variable de Entorno
* $DESCRIPTION$
* Esta funci¢n produce una cadena que es el valor de la variable de
* Entorno <cEntorno>, la cual es almacenada a nivel del sistema
* operativo con el comando SET del mismo.
* Si ninguna variable de Entorno puede ser encontrada, el valor que
* retorne la funci¢n ser  <cValorxDefecto> si ste es pasado, ¢ de lo
* contrario una cadena vac¡a.
* $EXAMPLES$
* QOUT( GETENV('PATH'))
* QOUT( GETENV('CONFIG'))
* QOUT( GETENV('HARBOURCMD', '-n -l -es2'))
* </fixed>
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* Esta es una funci¢n compatible con CA-Clipper.
* El par metro <cValorxDefecto> es una extensi¢n de Harbour.
* $PLATFORMS$
* Todas
* $FILES$
* El c¢digo fuente esta en ../source/rtl/gete.c
* La librer¡a es rtl
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __RUN()
* $CATEGORY$
* DOS
* $ONELINER$
* Corre/Ejecuta un programa externo.
* $SYNTAX$
* __RUN( <cComando> )
* $ARGUMENTS$
* <cComando> Comando a ejecutar
* $DESCRIPTION$
* Este Comando ejecuta un programa externo. Por favor aseg£rese que
* Ud. tiene sufuciente memoria libre para poder ejecutar el programa
* externo.
* No lo use para correr programas que permanecen residentes (en el
* caso del sistema operativo DOS) porque puede causar muchos problemas
*
* Nota: El comando RUN es preprocesado en esta funci¢n.
* Se considera una mala pr ctica usar esta funci¢n directamente
* Use el comando RUN en su lugar.
* $EXAMPLES$
* __Run( "edit " + cMyTextFile ) // Corre un Editor externo
* __Run( "command" ) // Da el prompt del DOS (s¢lo DOS)
* </fixed>
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* Esta es una funci¢n compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* El c¢digo fuente esta en ../source/rtl/run.c
* La librer¡a es rtl
* $SEEALSO$
* RUN
* $END$
*/
/* $DOC$
* $FUNCNAME$
* TONE()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Suena un tono con una frecuencia y duraci¢n especificada.
* $SYNTAX$
* TONE( <nFrecuencia>, <nDuracion> ) --> NIL
* $ARGUMENTS$
* <nFrecuencia> Un valor numrico no negativo que especifica la
* frecuencia del tono en Hertzios (ciclos por segundo)
*
* <nDuracion> Un valor numrico positivo que especifica la duraci¢n
* del tono en unidades de 1/18 avo de segundo.
* $RETURNS$
* TONE() siempre devuelve NIL.
* $DESCRIPTION$
* TONE() es una funci¢n de sonido que podr¡a ser usada para irritar
* al usuario final, a su perro y al vecindario que lo rodea.
* La frecuencia est  limitada al rango 0 to 32767 Hz. Las frecuencias
* por debajo de 20 Hz son inaudibles.
* Si hay decimales en los argumentos estos se truncan.
* $EXAMPLES$
* IF lOk // Suena bien
* TONE( 500, 1 )
* TONE( 4000, 1 )
* TONE( 2500, 1 )
* ELSE // Suena mal
* TONE( 300, 1 )
* TONE( 499, 5 )
* TONE( 700, 5 )
* ENDIF
* </fixed>
* $TESTS$
* TONE( 800, 1 ) // igual que ? CHR(7)
* TONE( 32000, 200 ) // algun perro alrededor ?
* TONE( 261, 1 ) // nota musical - C (DO medio)
* TONE( 400, 0 ) // pitido corto
* TONE( 700 ) //
* TONE( 10, 18.2 ) // demora de 1 segundo
* TONE( -1 ) // demora de 1/18.2 segundo
* TONE( ) // demora de 1/18.2 segundo
* </fixed>
* $TESTS$
* $STATUS$
* S
* $COMPLIANCE$
* Esta es una funci¢n compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* CHR(),SET BELL
* $END$
*/
/* $DOC$
* $FUNCNAME$
* RUN
* $CATEGORY$
* Comando
* $ONELINER$
* Corre/Ejecuta un programa externo.
* $SYNTAX$
* RUN <cComando>
* $ARGUMENTS$
* <cComando> Comando a ejecutar
* $DESCRIPTION$
* Este Comando ejecuta un programa externo. Por favor aseg£rese que
* Ud. tiene sufuciente memoria libre para poder ejecutar el programa
* externo.
* No lo use para correr programas que permanecen residentes (en el
* caso del sistema operativo DOS) porque puede causar muchos problemas.
* $EXAMPLES$
* RUN "edit " + cMyTextFile // Corre un Editor externo
* RUN "command" // Da el prompt del DOS (s¢lo DOS)
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* Este es un Comando compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* El c¢digo fuente esta en ../source/rtl/run.c
* La librer¡a es rtl
* $SEEALSO$
* RUN
* $END$
*/

132
harbour/doc/es/nation.txt Normal file
View File

@@ -0,0 +1,132 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de: ISAFFIRM(), ISNEGATIVE(), NATIONMSG()
*
* Copyright 1999 Jose Lalin <dezac@corevia.com>
* Documentaci¢n en Ingles de: ISAFFIRM(), ISNEGATIVE(), NATIONMSG()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* ISAFFIRM()
* $CATEGORY$
* Nacion
* $ONELINER$
* Chequea si el caracter pasado es el caracter de afirmaci¢n
* $SYNTAX$
* ISAFFIRM( <cChar> ) --> <lTrueOrFalse>
* $ARGUMENTS$
* <cChar> es un char ¢ cadena de caracteres
* $RETURNS$
* <lTrueOrFalse> Verdadero si el caracter pasado es el caracter de
* afirmaci¢n, ¢ Falso de otro modo.
* $DESCRIPTION$
* Esta funci¢n es usada para chequear si la entrada del usuario es
* verdadera ¢ no, de acuerdo al m¢dulo msgxxx usado.
* En Clipper el m¢dulo por defecto depende de la versi¢n usada, en
* Harbour el m¢dulo por defecto es el Ingls.
* En ingls la opci¢n v lida es "Y", en español "S"
* $EXAMPLES$
* // Esperar hasta que el usuario ingrese "Y"
* DO WHILE ! ISAFFIRM( cYesNo )
* ACCEPT "Esta Seguro ?: " TO cYesNo
* END DO
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es totalmente compatible con CA-Clipper.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* ISNEGATIVE(),NATIONMSG()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* ISNEGATIVE()
* $CATEGORY$
* Nacion
* $ONELINER$
* Chequea si el caracter pasado es el caracter de negaci¢n
* $SYNTAX$
* ISNEGATIVE( <cChar> ) --> <lTrueOrFalse>
* $ARGUMENTS$
* <cChar> es un char ¢ cadena de caracteres
* $RETURNS$
* <lTrueOrFalse> Verdadero si el caracter pasado es el caracter de
* negaci¢n, ¢ Falso de otro modo.
* $DESCRIPTION$
* Esta funci¢n es usada para chequear si la entrada del usuario es
* verdadera ¢ no, de acuerdo al m¢dulo msgxxx usado.
* En Clipper el m¢dulo por defecto depende de la versi¢n usada, en
* Harbour el m¢dulo por defecto es el Ingls.
* En ingls la opci¢n v lida es "N", en español "N"
* $EXAMPLES$
* // Esperar hasta que el usuario ingrese "N"
* DO WHILE ! ISNEGATIVE( cYesNo )
* ACCEPT "Esta Seguro ?: " TO cYesNo
* END DO
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es totalmente compatible con CA-Clipper.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* ISAFFIRM(),NATIONMSG()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* NATIONMSG()
* $CATEGORY$
* Nacion
* $ONELINER$
* Retorna cadenas de mensajes internacionales.
* $SYNTAX$
* NATIONMSG( <nMsg> ) --> <cMensaje>
* $ARGUMENTS$
* <nMsg> es el n£mero de Mensaje que Ud. quiere obtener.
* $RETURNS$
* <cMensaje> Si <nMsg> es un selector de mensaje v lido, entonces se
* retorna el mensaje.
* Si <nMsg> es NIL, retorna "Invalid Argument", y si <nMsg> no es de
* tipo NUMERIC esta retorna una cadena vacia.
* $DESCRIPTION$
* NATIONMSG() retorna las descripciones internacionales de mensajes.
* En Clipper el m¢dulo por defecto depende de la versi¢n usada, en
* Harbour el m¢dulo por defecto es el Ingls.
* $EXAMPLES$
* // Visualiza "Seguro Y/N: " y espera hasta que el usuario entra "Y"
* // Y/N es la cadena NATIONMSG( 12 ) con el m¢dulo natmsg por
* // defecto.
* DO WHILE ! ISAFFIRM( cYesNo )
* ACCEPT "Esta Seguro " + NATIONMSG( 12 ) + ": " TO cYesNo
* END DO
* </fixed>
* $STATUS$
* C
* $COMPLIANCE$
* Esta funci¢n es totalmente compatible con CA-Clipper.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* ISAFFIRM(),ISNEGATIVE()
* $END$
*/

815
harbour/doc/es/objfunc.txt Normal file
View File

@@ -0,0 +1,815 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* __objHasData(), __objHasMethod(), __objGetMsgList(),
* __objGetMethodList(), __objGetValueList(),
* __ObjSetValueList(), __objAddMethod(),
* __objAddInline(), __objAddData(), __objModMethod(),
* __objModInline(), __objDelMethod(), __objDelInline(),
* __objDelData(), __objDerivedFrom()
*
* Copyright 1999-2000 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingles de:
* __objHasData(), __objHasMethod(), __objGetMsgList(),
* __objGetMethodList(), __objGetValueList(),
* __ObjSetValueList(), __objAddMethod(),
* __objAddInline(), __objAddData(), __objModMethod(),
* __objModInline(), __objDelMethod(), __objDelInline(),
* __objDelData(), __objDerivedFrom()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* __objHasData()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Determina cuando un s¡mbolo existe en un objeto como DATA
* $SYNTAX$
* __objHasData( <oObjeto>, <cSimbolo> ) --> lExiste
* $ARGUMENTS$
* <oObjeto> es el objeto a inspeccionar
*
* <cSimbolo> es el nombre del s¡mbolo a buscar
* $RETURNS$
* __objHasData() retorna .T. si el <cSimbolo> dado existe como DATA
* (variable de instancia) en el objeto <oObjeto), y .F. si este no
* existe.
* $DESCRIPTION$
* __objHasData() es una funci¢n de soporte de clases de bajo nivel
* que le permite a Ud. encontrar si un s¡mbolo es una variable de
* instancia en un objeto dado.
* $EXAMPLES$
* oB := TBrowseNew( 0, 0, 24, 79 )
* ? __objHasData( oB, "nLeft" ) // esto deberia retornar .T.
* ? __objHasData( oB, "lBugFree" ) // deberia ser .F.
* ? __objHasData( oB, "Left" ) // .F. porque este es un METHOD
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objHasData() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __ObjGetMethodList(),__objGetMsgList(),__objHasMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objHasMethod()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Determina cuando un s¡mbolo existe en un objeto como METHOD
* $SYNTAX$
* __objHasMethod( <oObjeto>, <cSimbolo> ) --> lExist
* $ARGUMENTS$
* <oObjeto> es el objeto a inspeccionar
*
* <cSimbolo> es el nombre del s¡mbolo a buscar
* $RETURNS$
* __objHasMethod() retorna .T. si el <cSimbolo> dado existe como
* METHOD (funci¢n de clase) en el Objeto <oObjeto), o .F. si este
* no existe.
* $DESCRIPTION$
* __objHasMethod() es una funci¢n de soporte de clases de bajo nivel
* que le permite a Ud. encontrar si un s¡mbolo es una funci¢n de
* clase en un Objeto dado.
* $EXAMPLES$
* oB := TBrowseNew( 0, 0, 24, 79 )
* ? __objHasMethod( oB, "nLeft" ) // .F. porque esto es DATA
* ? __objHasMethod( oB, "FixBugs" ) // deberia ser .F.
* ? __objHasMethod( oB, "Left" ) // esto deberia retornar .T.
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objHasMethod() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __ObjGetMethodList(),__objGetMsgList(),__objHasData()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objGetMsgList()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Retorna los nombres de todos los DATA o METHOD para un Objeto dado
* $SYNTAX$
* __objGetMsgList( <oObjeto>, [<lData>], [nClassType] ) --> aNombres
* $ARGUMENTS$
* <oObjeto> es un Objeto a inspeccionar
*
* <lData> es un valor l¢gico opcional que especifica la informaci¢n
* a retornar. Un valor .T. instruye a la funci¢n a devolver una lista
* todos los nombres DATA, un valor de .F. instruye a la funci¢n a
* devolver una lista de todos los nombres de METHODos.
* El valor por defecto es .T.
*
* <nClassType> es un c¢digo numrico opcional para seleccionar cual
* tipo de clase se va retornar.
* El valor por defecto es HB_MSGLISTALL, retornando la lista entera.
* $RETURNS$
* __objGetMsgList() devuelve un array de cadenas <aNombres> con los
* nombres de todos los DATA o todos los METHOD para un objeto dado.
* __objGetMsgList() podr¡a retornar un array vacio, {} si el objeto
* dado no contiene la informaci¢n solicitada.
* $DESCRIPTION$
* __objGetMsgList() es una funci¢n de soporte de clases de bajo nivel
* que le permite a Ud. encontrar todas las variables de instancia o
* los nombre de los metodos para un Objeto dado.
*
* Si es es especificada, la siguiente tabla muestra los valores para
* <nClassType> que le permiten a Ud. distinguir entre DATA y
* CLASSDATA:
*
* <table>
* hboo.ch Valor Significado
*
* HB_MSGLISTALL 0 Todos los tipos
* HB_MSGLISTCLASS 1 CLASSDATA solamente
* HB_MSGLISTPURE 2 DATA solamente
* </table>
*
* DATA son variables de instancia usables dentro de cada objeto desde
* una clase, donde cada Objeto tiene sus propios DATAs.
*
* Las CLASSDATA son compartidas por todos los objetos desde una Clase,
* asi el valor cambiado dentro del Objeto1 sera reflejado cuando se
* acceda la CLASSDATA desde el Objeto2.
* $EXAMPLES$
* // Muestra informaci¢n sobre la clase TBrowse
* oB := TBrowseNew( 0, 0, 24, 79 )
* aData := __objGetMsgList( oB, .T. )
* aClassData := __objGetMsgList( oB, .T., HB_MSGLISTCLASS )
* aMethod := __objGetMsgList( oB, .F. )
*
* FOR i = 1 to len ( aData )
* ? "nombre de DATA:", aData[ i ]
* NEXT
*
* FOR i = 1 to len ( aClassData )
* ? "nombre de CLASSDATA:", aClassData[ i ]
* NEXT
*
* FOR i = 1 to len ( aMethod )
* ? "nombre de METHOD:", aMethod[ i ]
* NEXT
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objGetMsgList() es una extensi¢n de Harbour.
* $FILES$
* El archivo de cabecera es hboo.ch
* La librer¡a es rtl
* $SEEALSO$
* __ObjGetMethodList(),__ObjGetValueList(),__objHasData(),__objHasMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objGetMethodList()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Retorna un array con los nombres de todos los METHOD de un Objeto
* $SYNTAX$
* __objGetMethodList( <oObjeto> ) --> aNombreMetodos
* $ARGUMENTS$
* <oObjeto> es el objeto a inspeccionar
* $RETURNS$
* __objGetMethodList() devuelve un array de cadenas <aNombreMetodos>
* con los nombres de todos los METHOD para un objeto dado.
* __objGetMethodList() podria retornar un array vacio, {} si el
* objeto dado no contiene ningun metodo.
* $DESCRIPTION$
* __objGetMethodList() es una funci¢n de soporte de clases de bajo
* nivel que le permite a Ud. encontrar todos los nombres de las
* funciones de clase para un Objeto dado.
* Es el equivalente a __objGetMsgList( oObjeto, .F. ).
* $EXAMPLES$
* // Muestra informaci¢n sobre la clase TBrowse
* oB := TBrowseNew( 0, 0, 24, 79 )
* aMethod := __objGetMethodList( oB )
*
* FOR i = 1 to len ( aMethod )
* ? "METHOD name:", aMethod[ i ]
* NEXT
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objGetMethodList() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objGetMsgList(),__ObjGetValueList(),__objHasData(),__objHasMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objGetValueList()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Retorna un array con los nombres de DATA y valores de un Objeto
* $SYNTAX$
* __objGetValueList( <oObjeto>, [<aExcept>] ) --> aData
* $ARGUMENTS$
* <oObjeto> es el objeto a inspeccionar
*
* <aExcept> es un array opcional con los nombres de los DATA que Ud.
* desea excluir de la inspeccion.
* $RETURNS$
* __objGetValueList() retorna un array bidimensional que contiene
* pares de nombre del s¡mbolo DATA y el valor de DATA.
* __objGetValueList() podria retornar un array vacio, {} si el
* objeto dado no contiene la informaci¢n solicitada.
* $DESCRIPTION$
* __objGetValueList() es una funci¢n de soporte de clases de bajo
* nivel que retorna un array con los nombres de DATA y valores.
* Cada elemento del array es un par de:
* aData[ i, HB_OO_DATA_SYMBOL ] contiene nombre del s¡mbolo
* aData[ i, HB_OO_DATA_VALUE ] contiene el valor de DATA
* $EXAMPLES$
* // Muestra informaci¢n sobre la clase TBrowse
* oB := TBrowseNew( 0, 0, 24, 79 )
* aData := __objGetValueList( oB )
*
* FOR i = 1 to len ( aData )
* ? "Nombre de DATA:", aData[ i, HB_OO_DATA_SYMBOL ], ;
* " valor =", aData[ i, HB_OO_DATA_VALUE ]
* NEXT
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objGetValueList() es una extensi¢n de Harbour.
* $FILES$
* El archivo de cabecera es hboo.ch
* La librer¡a es rtl
* $SEEALSO$
* __objGetMethodList(),__objGetMsgList(),__objHasData(),__objHasMethod(),__ObjSetValueList()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __ObjSetValueList()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Establece un Objeto con un array de nombres de DATA y valores
* $SYNTAX$
* __ObjSetValueList( <oObjeto>, <aData> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto a establecer
*
* <aData> es un array bidimensional con un par de variables de
* instancia y valores para asignar a aquellas variables.
* $RETURNS$
* __ObjSetValueList() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __ObjSetValueList() es una funci¢n de soporte de clases de bajo
* nivel que le permite a Ud. establecer un grupo de variables de
* instancia con valores.
* Cada elemento del array en <aData> es un par de:
* aData[ i, HB_OO_DATA_SYMBOL ] contiene nombre de variable a setear
* aData[ i, HB_OO_DATA_VALUE ] contiene el nuevo valor de variable
* $EXAMPLES$
* // set some TBrowse instance variable
* oB := TBrowse():New()
* aData := array( 4, 2 )
* aData[ 1, HB_OO_DATA_SYMBOL ] = "nTop"
* aData[ 1, HB_OO_DATA_VALUE ] = 1
* aData[ 2, HB_OO_DATA_SYMBOL ] = "nLeft"
* aData[ 2, HB_OO_DATA_VALUE ] = 10
* aData[ 3, HB_OO_DATA_SYMBOL ] = "nBottom"
* aData[ 3, HB_OO_DATA_VALUE ] = 20
* aData[ 4, HB_OO_DATA_SYMBOL ] = "nRight"
* aData[ 4, HB_OO_DATA_VALUE ] = 70
* __ObjSetValueList( oB, aData )
* ? oB:nTop // 1
* ? oB:nLeft // 10
* ? oB:nBottom // 20
* ? oB:nRight // 70
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __ObjSetValueList() es una extensi¢n de Harbour.
* $FILES$
* El archivo de cabecera es hboo.ch
* La librer¡a es rtl
* $SEEALSO$
* __ObjGetValueList()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objAddMethod()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Agrega un METHOD a una clase ya existente
* $SYNTAX$
* __objAddMethod( <oObjeto>, <cMethodName>, <nFuncPtr> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cMethodName> es el nombre del s¡mbolo del nuevo METHOD a agregar
*
* <nFuncPtr> es un puntero a la funci¢n a asociar con el mtodo
* $RETURNS$
* __objAddMethod() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objAddMethod() es una funci¢n de soporte de clases de bajo
* nivel que agrega un nuevo METHOD a un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cMethodName> ya existe en <oObjeto>.
*
* Note que <nFuncPtr> es un especial puntero a una funci¢n que fue
* creado usando el operador @ , vea un ejemplo a continuacion.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo Smile
* oHappy := HBClass():New( "THappy" )
* __objAddMethod( oHappy, "Smile", @MySmile() )
* ? oHappy:Smile( 1 ) // :)
* ? oHappy:Smile( 2 ) // ;)
* ? oHappy:Smile( 3 ) // *SMILE*
*
* STATIC FUNCTION MySmile( nType )
* LOCAL cSmile
* DO CASE
* CASE nType == 1
* cSmile := ":)"
* CASE nType == 2
* cSmile := ";)"
* CASE nType == 3
* cSmile := "*SMILE*"
* ENDCASE
* RETURN cSmile
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objAddMethod() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddInline(),__objAddData(),__objDelMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objAddInline()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Agrega un INLINE a una clase ya existente
* $SYNTAX$
* __objAddInline( <oObjeto>, <cInlineName>, <bInline> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cInlineName> es el nombre del s¡mbolo del nuevo INLINE a agregar
*
* <bInline> es un codeblock a asociar con el mtodo INLINE
* $RETURNS$
* __objAddInline() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objAddInline() es una funci¢n de soporte de clases de bajo
* nivel que agrega un nuevo mtodo INLINE a un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cInlineName> ya existe en <oObjeto>.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo INLINE Smile
* oHappy := HBClass():New( "THappy" )
* bInline := { | nType | { ":)", ";)", "*SMILE*" }[ nType ] }
*
* __objAddInline( oHappy, "Smile", bInline )
*
* ? oHappy:Smile( 1 ) // :)
* ? oHappy:Smile( 2 ) // ;)
* ? oHappy:Smile( 3 ) // *SMILE*
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objAddInline() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddData(),__objAddMethod(),__objDelInline(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod() ,__objModInline()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objAddData()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Agrega un DATA a una clase ya existente
* $SYNTAX$
* __objAddData( <oObjeto>, <cDataName> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cDataName> es el nombre del s¡mbolo del nuevo DATA a agregar
* $RETURNS$
* __objAddData() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objAddData() es una funci¢n de soporte de clases de bajo
* nivel que agrega un nuevo DATA a un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cDataName> ya existe en <oObjeto>.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un DATA lHappy
* oHappy := HBClass():New( "THappy" )
*
* __objAddData( oHappy, "lHappy" )
* oHappy:lHappy := .T.
*
* IF oHappy:lHappy
* ? "Happy, Happy, Joy, Joy !!!"
* ELSE
* ? ":(..."
* ENDIF
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objAddData() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddInline(),__objAddMethod(),__objDelData(),__objGetMsgList(),__ObjGetValueList(),__objHasData(),__ObjSetValueList()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objModMethod()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Modifica (reemplaza) un METHOD en una clase ya existente
* $SYNTAX$
* __objModMethod( <oObjeto>, <cMethodName>, <nFuncPtr> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cMethodName> es el nombre del s¡mbolo del METHOD a modificar
*
* <nFuncPtr> es un puntero a una nueva funci¢n a asociar con
* el metodo.
* $RETURNS$
* __objModMethod() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objModMethod() es una funci¢n de soporte de clases de bajo
* nivel que modifica un METHOD en un Objeto y lo reemplaza con
* una nueva funci¢n.
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cMethodName> ya existe en <oObjeto>.
* __objModMethod() es usado en el mecanismo de herencia.
*
* Note que <nFuncPtr> es un especial puntero a una funci¢n que fue
* creado usando el operador @ , vea un ejemplo a continuacion.
*
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo Smile
* oHappy := HBClass():New( "THappy" )
* __objAddMethod( oHappy, "Smile", @MySmile() )
* ? oHappy:Smile( 1 ) // :)
* ? oHappy:Smile( 2 ) // ;)
*
* // reemplaza el mtodo Smile con una nueva funci¢n
* __objAddMethod( oHappy, "Smile", @YourSmile() )
* ? oHappy:Smile( 1 ) // *SMILE*
* ? oHappy:Smile( 2 ) // *WINK*
*
* STATIC FUNCTION MySmile( nType )
* LOCAL cSmile
* DO CASE
* CASE nType == 1
* cSmile := ":)"
* CASE nType == 2
* cSmile := ";)"
* ENDCASE
* RETURN cSmile
*
* STATIC FUNCTION YourSmile( nType )
* LOCAL cSmile
* DO CASE
* CASE nType == 1
* cSmile := "*SMILE*"
* CASE nType == 2
* cSmile := "*WINK*"
* ENDCASE
* RETURN cSmile
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objModMethod() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddMethod(),__objDelMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objModInline()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Modifica (reemplaza) un mtodo INLINE en una clase ya existente
* $SYNTAX$
* __objModInline( <oObjeto>, <cInlineName>, <bInline> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cInlineName> es el nombre del s¡mbolo del mtodo INLINE a
* modificar.
*
* <bInline> es un nuevo codeblock a asociar con el mtodo INLINE
* $RETURNS$
* __objModInline() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objModInline() es una funci¢n de soporte de clases de bajo
* nivel que modifica un mtodo INLINE en un Objeto y lo reemplaza con
* una nuevo bloque de codigo.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cInlineName> no existe en <oObjeto>.
*
* __objModInline() es usado en el mecanismo de herencia.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo INLINE Smile
* oHappy := HBClass():New( "THappy" )
* bMyInline := { | nType | { ":)", ";)" }[ nType ] }
* bYourInline := { | nType | { "*SMILE*", "*WINK*" }[ nType ] }
*
* __objAddInline( oHappy, "Smile", bMyInline )
* ? oHappy:Smile( 1 ) // :)
* ? oHappy:Smile( 2 ) // ;)
*
* // reemplaza el mtodo INLINE Smile con un nuevo codeblock
* __objModInline( oHappy, "Smile", bYourInline )
* ? oHappy:Smile( 1 ) // *SMILE*
* ? oHappy:Smile( 2 ) // *WINK*
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objModInline() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddInline(),__objDelInline(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objDelMethod()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Borra un METHOD de una clase
* $SYNTAX$
* __objDelMethod( <oObjeto>, <cSimbolo> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cSimbolo> es el nombre del s¡mbolo del METHOD o del mtodo
* INLINE a ser borrado (removido) del Objeto.
* $RETURNS$
* __objDelMethod() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objDelMethod() es una funci¢n de soporte de clases de bajo nivel
* que borra (remueve) un METHOD o un mtodo INLINE de un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cSimbolo> no existe en <oObjeto>.
*
* __objDelInline() es exactamente la misma que __objDelMethod().
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo Smile
* oHappy := HBClass():New( "THappy" )
*
* __objAddMethod( oHappy, "Smile", @MySmile() )
* ? __objHasMethod( oHappy, "Smile" ) // .T.
*
* // borra el mtodo Smile
* __objDelMethod( oHappy, "Smile" )
* ? __objHasMethod( oHappy, "Smile" ) // .F.
*
* STATIC FUNCTION MySmile( nType )
* LOCAL cSmile
* DO CASE
* CASE nType == 1
* cSmile := ":)"
* CASE nType == 2
* cSmile := ";)"
* ENDCASE
* RETURN cSmile
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objDelMethod() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddInline(),__objAddMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModInline(),__objModMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objDelInline()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Borra un METHOD INLINE de una clase
* $SYNTAX$
* __objDelInline( <oObjeto>, <cSimbolo> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cSimbolo> es el nombre del s¡mbolo del METHOD o del mtodo
* INLINE a ser borrado (removido) del Objeto.
* $RETURNS$
* __objDelInMethod() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objDelInMethod() es una funci¢n de soporte de clases de bajo nivel
* que borra (remueve) un METHOD o un mtodo INLINE de un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cSimbolo> no existe en <oObjeto>.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un mtodo Smile
* oHappy := HBClass():New( "THappy" )
* __objAddMethod( oHappy, "Smile", @MySmile() )
* ? __objHasMethod( oHappy, "Smile" ) // .T.
*
* // borra el mtodo Smile
* __objDelInMethod( oHappy, "Smile" )
* ? __objHasMethod( oHappy, "Smile" ) // .F.
*
* STATIC FUNCTION MySmile( nType )
* LOCAL cSmile
* DO CASE
* CASE nType == 1
* cSmile := ":)"
* CASE nType == 2
* cSmile := ";)"
* ENDCASE
* RETURN cSmile
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objDelMethod() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddInline(),__objAddMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModInline(),__objModMethod()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objDelData()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Borra un DATA (variable de instancia) de una clase
* $SYNTAX$
* __objDelMethod( <oObjeto>, <cDataName> ) --> oObjeto
* $ARGUMENTS$
* <oObjeto> es el objeto con el cual se va a trabajar
*
* <cDataName> es el nombre del s¡mbolo DATA a ser borrado
* (removido) del Objeto.
* $RETURNS$
* __objDelData() retorna una referencia a <oObjeto>.
* $DESCRIPTION$
* __objDelData() es una funci¢n de soporte de clases de bajo nivel
* que borra (remueve) un DATA de un Objeto.
*
* El <oObjeto> permanece sin cambios si el s¡mbolo con el nombre
* <cDataName> no existe en <oObjeto>.
* $EXAMPLES$
* // crea un nueva clase THappy y le agrega un DATA lHappy
* oHappy := HBClass():New( "THappy" )
*
* __objAddData( oHappy, "lHappy" )
* ? __objHasData( oHappy, "lHappy" ) // .T.
*
* // borra el DATA, lHappy
* __objDelData( oHappy, "lHappy" )
* ? __objHasData( oHappy, "lHappy" ) // .F.
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objDelData() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objAddData(),__objGetMsgList(),__ObjGetValueList(),__objHasData(),__ObjSetValueList()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __objDerivedFrom()
* $CATEGORY$
* Manejo de objetos
* $ONELINER$
* Determina cuando una clase es derivada de otra clase
* $SYNTAX$
* __objDerivedFrom( <oObjeto>, <xSuper> ) --> lIsParent
* $ARGUMENTS$
* <oObjeto> es el objeto a inspeccionar
*
* <xSuper> es el objeto que puede ser un padre. <xSuper> puede
* ser o bien un Objeto o una cadena de caracteres con el
* nombre de la clase.
* $RETURNS$
* __objDerivedFrom() retorna un valor logico TRUE (.T.) si el
* <oObjeto> es derivado de <xSuper>.
* $DESCRIPTION$
* __objDerivedFrom() es una funci¢n de soporte de clases de bajo
* nivel que chequea si una clase es una Superclase de la otra, o en
* otras palabras si la clase <oObjeto> es una clase hija o
* descendiente de <xSuper>.
* $EXAMPLES$
* // Crea tres clases y chequea sus relaciones
*
* #include "hbclass.ch"
* FUNCTION main()
* LOCAL oSuper, oObjeto, oDress
* oSuper := TMood():New()
* oObjeto := THappy():New()
* oDress := TShirt():New()
* ? __objDerivedFrom( oObjeto, oSuper ) // .T.
* ? __objDerivedFrom( oSuper, oObjeto ) // .F.
* ? __objDerivedFrom( oObjeto, oDress ) // .F.
* RETURN NIL
*
* CLASS TMood
* METHOD New() INLINE Self
* ENDCLASS
*
* CLASS THappy FROM TMood
* METHOD Smile() INLINE qout( "*smile*" )
* ENDCLASS
*
* CLASS TShirt
* DATA Color
* DATA Size
* METHOD New() INLINE Self
* ENDCLASS
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* __objDerivedFrom() es una extensi¢n de Harbour.
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objHasData(),__ObjHasMethod()
* $END$
*/

234
harbour/doc/es/rdd.txt Normal file
View File

@@ -0,0 +1,234 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* DB*(), ORD*(), RDD*()
*
* Copyright 1999 Luiz Rafael Culik <culik@sl.conex.net>
* Documentaci¢n en Ingls de:
* DB*(), ORD*(), RDD*()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* RDDLIST()
* $CATEGORY$
* Base de Datos
* $ONELINER$
* Retorna un array con los Manejadores de Bases de Datos disponibles
* $SYNTAX$
* RDDLIST([<nTipoRDD>]) --> aRDDLista
* $ARGUMENTS$
* <nTipoRDD> es un entero que representa el tipo de RDD que Ud. desea
* listar. Las constantes RDT_FULL y RDT_TRANSFER
* representan los dos tipos de RDDs actualmente disponibles
*
* Resumen de Tipo de RDDs
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
* Constante Valor Significado
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
* RDT_FULL 1 Implementaci¢n Completa de RDD
* RDT_TRANSFER 2 Solamente driver Importar/Exportar
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
*
* RDT_FULL identifica a los RDDs que tienen todas las capacidades que
* se asocian con un RDD.
*
* RDT_TRANSFER identifica a RDDs de capcidad limitada. Estos solamente
* pueden transferir registros entre archivos. Ud. no puede usar estos
* limitados drivers para abrir un archivo en un  rea de trabajo.
* Los manejadores SDF y DELIM son ejemplos de este tipo de RDD.
* Ellos solamente son usados en la implementaci¢n de APPEND FROM y
* COPY TO con archivos SDF ¢ DELIMITED.
* $RETURNS$
* RDDLIST() retorna un array unidimensional de los nombres de RDD
* registrados con la aplicaci¢n como <nTipoRDD>.
* $DESCRIPTION$
* RDDLIST() es una funci¢n que devuelve una array de una dimensi¢n
* que contiene los nombres de todos los RDD disponibles.
*
* Si Ud. no especifica <nTipoRDD>, ser n devueltos todos los RDD
* disponibles sin importar el tipo.
* $EXAMPLES$
* En este ejemplo RDDLIST() retorna un array conteniendo las cadenas
* de caracteres: "DBF", "SDF", "DELIM", "DBFCDX", and "DBFNTX":
*
* REQUEST DBFCDX
* .
* . < sentencias >
* .
* aRDDs := RDDLIST() // Retorna
* // {"DBF", SDF", "DELIM", "DBFCDX", "DBFNTX" }
*
*
* En este ejemplo RDDLIST() retorna un array conteniendo las
* cadenas de caracteres: "SDF" and "DELIM":
*
* #include "rddsys.ch"
* .
* . < sentencias >
* .
* aImpExp := RDDLIST( RDT_TRANSFER )
*
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
*
* $SEEALSO$
* RDDNAME()
* $INCLUDE$
* El archivo de cabecera es RDDSYS.CH
* $END$
*/
/* $DOC$
* $FUNCNAME$
* RDDNAME()
* $CATEGORY$
* Base de Datos
* $ONELINER$
* Retorna el nombre del RDD actualmente activo
* $SYNTAX$
* RDDNAME() --> cNombreRDD
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* Retorna una cadena de caracteres, el nombre registrado del RDD activo
* en el  rea de trabajo actual ¢ en el  rea especificada.
* $DESCRIPTION$
* RDDNAME() es una funci¢n que devuelve una cadena de caracteres con el
* nombre registrado del RDD activo en el  rea de trabajo actual ¢ en el
*  rea especificada.
*
* Ud. puede especificar un  rea de trabajo distinta de la actual usando
* un alias con la funci¢n.
* $EXAMPLES$
* USE Customer VIA "DBFNTX" NEW
* USE Sales VIA "DBFCDX" NEW
*
* ? RDDNAME() // Retorna: DBFCDX (area actual)
* ? Customer->( RDDNAME() ) // Retorna: DBFNTX (area especificada)
* ? Sales->( RDDNAME() ) // Retorna: DBFCDX (area especificada)
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
*
* $SEEALSO$
* RDDLIST()
* $INCLUDE$
*
* $END$
*/
/* $DOC$
* $FUNCNAME$
* RDDSETDEFAULT()
* $CATEGORY$
* Base de Datos
* $ONELINER$
* Establece ¢ retorna el RDD por defecto para la aplicaci¢n.
* $SYNTAX$
* RDDSETDEFAULT( [<cNewDefaultRDD>] ) --> cPreviousDefaultRDD
*
* $ARGUMENTS$
* <cNewDefaultRDD> es una cadena de caracteres, el nombre del RDD que
* va a ser hecho el nuevo RDD por defecto para la
* aplicaci¢n.
* $RETURNS$
* RDDSETDEFAULT() retorna una cadena de caracteres conteniendo el
* nombre del manejador por defecto anterior <cPreviousDefaultRDD>.
* $DESCRIPTION$
* RDDSETDEFAULT() es una funci¢n que devuelve el nombre del manejador
* (driver) por defecto anterior <cPreviousDefaultRDD> y opcionalmente
* establece el manejador actual, especificado por <cNewDefaultRDD>.
*
* Si <cNewDefaultRDD> no es especificado, el nombre del manejador por
* defecto actual es devuelto y ste contin£a siendo el manejador por
* defecto. El manejador por defecto es el driver que Harbour usa si Ud.
* no especifica expl¡citamente un RDD con la cl usula VIA en el comando
* USE.
*
* Esta funci¢n reemplaza a la funci¢n DBSETDRIVER()
* $EXAMPLES$
* // Si el manejador por defecto no es DBFNTX, ponerlo por defecto
*
* IF ( RDDSETDEFAULT() != "DBFNTX" )
* cOldRdd := RDDSETDEFAULT( "DBFNTX" )
* ENDIF
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
*
* $SEEALSO$
* DBSETDRIVER()
* $INCLUDE$
*
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __RDDSETDEFAULT()
* $CATEGORY$
* Base de Datos
* $ONELINER$
* Establece ¢ retorna el RDD por defecto para la aplicaci¢n.
* $SYNTAX$
* __RDDSETDEFAULT( [<cNewDefaultRDD>] ) --> cPreviousDefaultRDD
* $ARGUMENTS$
* <cNewDefaultRDD> es una cadena de caracteres, el nombre del RDD que
* va a ser hecho el nuevo RDD por defecto para la
* aplicaci¢n.
* $RETURNS$
* __RDDSETDEFAULT() retorna una cadena de caracteres conteniendo el
* nombre del manejador por defecto anterior <cPreviousDefaultRDD>.
* $DESCRIPTION$
* __RDDSETDEFAULT() es una funci¢n que devuelve el nombre del manejador
* (driver) por defecto anterior <cPreviousDefaultRDD> y opcionalmente
* establece el manejador actual, especificado por <cNewDefaultRDD>.
*
* Si <cNewDefaultRDD> no es especificado, el nombre del manejador por
* defecto actual es devuelto y ste contin£a siendo el manejador por
* defecto. El manejador por defecto es el driver que Harbour usa si Ud.
* no especifica expl¡citamente un RDD con la cl usula VIA en el comando
* USE.
* Esta es una funci¢n de bajo nivel y debe usarse RDDSETDEFAULT() en su
* lugar.
* Esta funci¢n reemplaza a la funci¢n DBSETDRIVER()
* $EXAMPLES$
* // Si el manejador por defecto no es DBFNTX, ponerlo por defecto
*
* IF ( __RDDSETDEFAULT() != "DBFNTX" )
* cOldRdd := __RDDSETDEFAULT( "DBFNTX" )
* ENDIF
* $TESTS$
*
* $STATUS$
* R
* $COMPLIANCE$
*
* $SEEALSO$
* DBSETDRIVER()
* $INCLUDE$
*
* $END$
*/

230
harbour/doc/es/sayget.txt Normal file
View File

@@ -0,0 +1,230 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* @...GET, @...SAY
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $COMMANDNAME$
* @...GET
* $CATEGORY$
* Comando
* $ONELINER$
* Crea un objeto GET y lo visualiza en pantalla
* $SYNTAX$
* @ <nFila>,<nCol> [SAY <cSay> [PICTURE <cSayPict>] COLOR <cSayColor> ]
* GET <xVar> [PICTURE <cGetPict>] [COLOR <cGetColor>]
* [WHEN <lWhen>] [VALID <lValid> / RANGE <xInicio>,<xFin>]
* $ARGUMENTS$
* <nFila> La fila donde se visualiza el SAY/GET
*
* <nCol> La columna donde se visualiza el SAY/GET
*
* <cSay> Mensaje a visualizar
*
* <cSayPict> Expresi¢n de Caracteres para el PICTURE del SAY
*
* <cSayColor> Color a ser Usado por la expresi¢n SAY.
*
* <xVar> El nombre de la variable/campo
*
* <cGetPict> Expresi¢n de Caracteres para el PICTURE del GET
*
* <lWhen> Expresi¢n l¢gica para permitir el GET.
*
* <lValida> Expresi¢n l¢gica para validar la entrada del GET
*
* <xInicio> Valor inferior de RANGE
*
* <xFin> Valor superior de RANGE.
*
* <cGetColor> Cadena de Color a ser usada por la expresi¢n GET
* $RETURNS$
* Ninguno
* $DESCRIPTION$
* Este comando agrega un objeto GET al array p£blico reservado llamado
* GETLIST[] y lo muestra en pantalla. El campo ¢ variable a ser
* agregada al objeto GET es especificada en <xVar> y es visualizada
* en las coordenadas fila, columna <nFila>, <nCol>.
*
* Si la cl usula SAY es usada el mensaje <cSay> ser  visualizado
* comenzando en <nFila>,<nCol>, mientras que la variable de campo
* <xVar> ser  visualizada en ROW(), COL()+ 1.
*
* Si la cl usula PICTURE es usada para la expresi¢n SAY, el molde
* <cSayPicr> es usado, todas las reglas de formato contenidas en l se
* aplicar n. Vea la funci¢n TRANSFORM I, para mayor informaci¢n.
*
* Si <cGetPict> es especificado, la cl usula PICTURE de <xVar> ser 
* usada para el objeto GET y todas las reglas de formato ser n
* aplicadas. Vea las reglas de formato para GET en la tabla m s abajo.
*
* Si la cl usula WHEN es especificada, entonces <lWhen> se eval£a por
* una condici¢n l¢gica (.T.) y en ese caso el objeto GET ser  activado
* De otro modo el objeto GET ser  saltado y ninguna informaci¢n ser 
* obtenida a travs de la pantalla. El nombre de una funci¢n definida
* por el usuario que retorne true (.T.) ¢ false ( F.) ¢ un codeblock
* puede ser especificado en <lWhen>. Esta cl usula no ser  activada
* hasta que un comando READ ¢ una funci¢n READMODAL() sea ejecutada.
*
* Si la cl usula VALID es especificada, <lValida> se eval£a por una
* condici¢n l¢gica (.T.), si se cumple, el GET actual se considera
* v lido y la operatoria del GET continuar  hasta encontrar el pr¢ximo
* objeto GET activo. De lo contrario el cursor permanecer  en este
* objeto GET hasta que la operaci¢n se aborte ¢ la condici¢n en
* <lValid> se cumpla (.T.). El nombre de una funci¢n definida por
* el usuario que retorne true (.T.) ¢ false ( F.) ¢ un codeblock
* puede ser especificado en <lValida>. Esta cl usula no ser  activada
* hasta que un comando READ ¢ una funci¢n READMODAL() sea ejecutada.
*
* Si la cl usula RANGE (rango) es especificada, en lugar de la cl usula
* VALID, los dos valores que limitan el rango deben ser especificados
* en <xInicio> y <xFin>. La variable que se eval£a debe ser del mismo
* tipo que las que constituyen el rango. Si la variable <xVar> es del
* tipo de fecha (DATE), <xInicio> y <xFin> deben ser tambin del tipo
* DATE. Si la variable <xVar> es del tipo NUMERICo <xInicio> y <xFin>
* deben ser tambin del tipo numrico. Si un valor falla el test RANGE,
* un mensaje de "OUT OF RANGE" (fuera de rango) aparecer  en el area
* SCOREBOARD (fila = 0, col. = 60). El mensaje de RANGE puede ser
* desactivado si el comando SET SCOREBOARD ¢ la funcion SET() apropiada
* es puesta a .F.
*
* <fixed>
* <table>
* Funci¢n Reglas de Formateo del GET
* @A Permite solamente caracteres alfabticos
* @B Los n£meros ser n justificados a la izquierda
* @C Todos los n£meros positivos ser n seguidos por CR
* @D Todas las fechas usar n el formato SET DATE
* @E Las fechas estar n en formato Brit nico y los n£meros
* en formato Europeo.
* @K Permite que un valor sugerido sea visto dentro del GET
* pero borrado si se presiona alguna tecla que no sea la
* de cursores cuando el cursor esta en la primera posici¢n
* en el  rea del GET.
* @R Los caracteres que se indican ser n insertados
* @S<nSize> Permite el desplazamiento horizontal de un campo ¢
* variable que es de <nSize> caracteres de ancho.
* @X Todos los n£meros negativos ser n seguidos por DB
* @Z Visualiza los valores numricos cero como blancos
* @! Fuerza la conversi¢n a may£sculas de los caracteres
* @( Visualiza los n£meros negativos en parentesis con
* espacios adelante
* @) Visualiza los n£meros negativos en parentesis sin
* espacios adelante
* </table>
* </fixed>
*
* <fixed>
* <table>
* Molde Reglas de Formateo del GET
* A S¢lo caracteres alfabticos son permitidos
* N S¢lo caracteres alfabticos y numricos son permitidos
* X Cualquier caracter es permitido
* L S¢lo T ¢ F son permitidos para datos l¢gicos
* Y S¢lo Y ¢ N son permitidos para datos l¢gicos
* 9 S¢lo digitos, incluyendo signos ser n permitidos
* # S¢lo digitos, signos y espacios ser n permitidos
* ! Caracteres alfabticos son convertidos a May£sculas
* S El signo Pesos ser  visualizado en lugar de espacios, delante
* del tipo de dato numrico (aqui visto cmo una "S")
* * El signo Asterisco ser  visualizado en lugar de espacios
* delante del tipo de dato numrico
* . Punto, define la posici¢n del punto decimal
* , Coma, define la posici¢n del separado de miles.
* </table>
* </fixed>
* Nota:
* Las funciones de formateo para PICTURE pueden ser agrupadas juntas
* cuando sean usandas conjuntamente con los moldes para PICTURE.
* Sin embargo un espacio en blanco debe ser insertado en la cadena de
* PICTURE si existen ambas: funciones y moldes.
* $EXAMPLES$
* FUNCTION Main()
* LOCAL cVar := Space(50)
* LOCAL nId := 0
* CLS
* @ 3,1 SAY "Nombre" GET cVar PICTURE "@!S 30"
* @ 4,1 SAY "Ident." GET nId PICTURE "999.999"
* READ
* ? "El nombre que Ud. ingres¢ es:", cVar
* ? "La Ident. que Ud. ingres¢ es:", nId
* RETURN NIL
* $TESTS$
* Ver ejemplos
* $STATUS$
* R
* $COMPLIANCE$
* Este comando es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La librer¡a asociada es rtl
* $SEEALSO$
* @...SAY,READ,TRANSFORM()
* $END$
*/
/* $DOC$
* $COMMANDNAME$
* @...SAY
* $CATEGORY$
* Comando
* $ONELINER$
* Visualiza datos en las coordenadas dadas en el dispositivo actual
* $SYNTAX$
* @ <nFila>,<nCol> SAY <xValor> [ PICTURE <cPict> ] [COLOR <cColor>]
* $ARGUMENTS$
* <nFila> La fila donde se visualiza el SAY
*
* <nCol> La columna donde se visualiza el SAY
*
* <xValor> Valor a visualizar
*
* <cPict> Formato para el PICTURE
*
* <cColor> Cadena de Color
* $RETURNS$
* Ninguno
* $DESCRIPTION$
* Este comando visualiza el contenido de <xValor> en las coordenadas
* <nFila>, <nCol>. Una cl usula PICTURE puede ser especificada en
* <cPict>. Si el dispositivo actual es establecido a la impresora, la
* salida ir  a la impresora; Por defecto todas las salidas son
* dirigidas a la pantalla.
*
* Para una lista completa de los Moldes y Funciones para PICTURES, vea
* el comando @...GET
* $EXAMPLES$
* FUNCTION Main
* CLS
* @ 2,1 SAY "Harbour"
* @ 3,1 SAY "is" COLOR "b/r+"
* @ 4,1 SAY "Power" PICTURE "@!"
* RETURN NIL
* $TESTS$
* Ver ejemplos
* $STATUS$
* R
* $COMPLIANCE$
* Este comando es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La librer¡a asociada es rtl
* $SEEALSO$
* @...GET,SET DEVICE,TRANSFORM()
* $END$
*/

1385
harbour/doc/es/subcodes.txt Normal file

File diff suppressed because it is too large Load Diff

374
harbour/doc/es/tbrowse.txt Normal file
View File

@@ -0,0 +1,374 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* TBrowseNew()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $CLASSDOC$
* $FUNCNAME$
* TBrowseNew()
* $CATEGORY$
* Clase TBrowse
* $ONELINER$
* Crea un Objeto Browse
* $CONSTRUCTOR$
* TBrowseNew( <nArriba>,<nIzq>,<nAbajo>,<nDerecha> ) --> <oBrowse>
* $ARGUMENTS$
* <nArriba> Fila Superior
*
* <nIzq> Columna Superior Izquierda
*
* <nAbajo> Fila Inferior
*
* <nDerecha> Columna Inferior Derecha
* $RETURNS$
* <oBrowse> Un nuevo Objeto Browse
* $DESCRIPTION$
* Esta función establece una ventana de desplazamiento en las
* coordenadas establecidas por <nArriba>, <nIzq>, <nAbajo>, <nDerecha>
* Para visualizar una base de datos use la función TBrowseDB() en
* su lugar.
* $DATANOLINK$
* :aColumns Array para guardar todas las columnas del browse
*
* :autoLite Valor Lógico para controlar el color brillante
*
* :cargo Variable definida por el usuario
*
* :colorSpec Tabla de Color para la visualización del TBrowse
*
* :colPos Columna de posición actual del cursor
*
* :colSep Caracter separador de Columnas
*
* :footSep Caracter separador de Notas al pie
*
* :freeze Número de columnas a Congelar
*
* :goBottomBlock Codeblock ejecutado por TBrowse:goBottom()
*
* :goTopBlock Codeblock ejecutado por TBrowse:goTop()
*
* :headSep Caracter separador de Encabezados
*
* :hitBottom Indica el fin de los datos disponibles
*
* :hitTop Indica el comienzo de los datos disponibles
*
* :leftVisible Indica la posición de la columna no congelada
* más a la izquierda en la pantalla
*
* :nBottom Número de la Fila Inferior para la visualización
* del objeto TBrowse
*
* :nLeft Columna más a la Izquierda para la visualización
* del objeto TBrowse
*
* :nRight Columna más a la Derecha para la visualización
* del objeto TBrowse
*
* :nTop Número de la Fila Superior para la visualización
* del objeto TBrowse
*
* :rightVisible Indica la posición de la columna no congelada
* más a la Derecha en la pantalla
*
* :rowCount Número de filas de datos visibles en el TBrowse
*
* :rowPos Fila de posición actual del cursor
*
* :skipBlock Codeblock usado para la reposicion de datos
*
* :stable Indica si el objeto TBrowse es estable
*
* :aRedraw Array de items lógicos indicando si es apropiado
* cuales filas necesitan ser redibujadas
*
* :RelativePos Indica la posición del registro relativa a la
* posición del primer registro en la pantalla
*
* :lHeaders Variable interna que indica cuando hay cabeceras
* de columnas para dibujar
*
* :lFooters Variable interna que indica cuando hay pie de
* columnas para dibujar
*
* :aRect El rectangulo especificado con ColorRect()
*
* :aRectColor Los colores para usar en el rectangulo especificado
* con ColorRect()
*
* :aKeys Mantiene las teclas de movimiento por defecto
*
* $METHODSLINK$
* AddColumn() Agrega un nuevo objeto TBColumn al Browse actual
*
* Applykey() Ejecuta el movimiento de teclas del Browse
*
* SetKey() Agrega una nueva tecla al diccionario de teclado
* $METHODSNOLINK$
* New(nTop, nLeft, nBottom, nRight)
* Crea una nueva clase Browse y establece los
* valores por defecto
*
* Down() Mueve el cursor una fila hacia abajo
*
* End() Mueve el cursor a la columna de datos más hacia
* la derecha que esté visible.
*
* GoBottom() Reposiciona los datos fuentes al final del archivo
*
* GoTop() Reposiciona los datos fuentes al inicio del
* archivo
*
* Home() Mueve el cursor a la columna visible más hacia la
* izquierda
*
* Left() Mueve el cursor una columna hacia la izquierda
*
* PageDown() Reposiciona los datos fuentes hacia abajo
*
* PageUp() Reposiciona los datos fuentes hacia arriba
*
* PanEnd() Mueve el cursor a la columna de datos más a la
* derecha
*
* PanHome() Mueve el cursor a la columna de datos más a la
* izquierda
*
* PanLeft() Se desplaza hacia la izquierda sin cambiar la
* posición del cursor
*
* PanRight() Se desplaza hacia la derecha sin cambiar la
* posición del cursor
*
* Right() Mueve el cursor una columna hacia la derecha
*
* Up() Mueve el cursor una fila hacia arriba
*
* ColCount() Retorna el número actual de columnas
*
* ColorRect() Altera el color de un grupo rectangular de celdas
*
* ColWidth(nCol) Retorna el ancho de visualización de una columna
* particular
*
* Configure( nMode) Reconfigura los seteos internos del objeto
* TBrowse. <nMode> es un parámetro no
* documentado en CA-Cl*pper
*
* LeftDetermine() Determina la columna no congelada más a la
* izquierda en la pantalla
*
* DeHilite() Saca el color brillante a la celda actual
*
* DelColumn( nPos ) Borra un objeto Column de un Browse
*
* ForceStable() Ejecuta una estabilización total
*
* GetColumn( nColumn ) Obtiene un objeto TBColumn específico
*
* Hilite() Resalta la celda actual
*
* InsColumn( nPos, oCol) Inserta un objeto TBColumn de un Browse
*
* Invalidate() Fuerza un redibujo completo durante la
* próxima estabilización
*
* RefreshAll() Causa que todos los datos sean recalculados
* durante la próxima estabilización
*
* RefreshCurrent() Causa que la fila actual sea rellenada y
* redibujada en la próxima estabilización
*
* SetColumn( nColumn, oCol) Reemplaza un objeto TBColumn con otro
*
* Stabilize() Ejecuta una estabilización incremental
*
* DispCell( nCol, cColor) Visualiza una sola celda en el color dado
*
* $EXAMPLES$
* Vea el archivo ../tests/testbrw.prg
* $TESTS$
* Vea el archivo ../tests/testbrw.prg
* $STATUS$
* S
* $COMPLIANCE$
* Estas funciones son compatibles con CA-Clipper 5.2
* Los métodos Applykey() y Setkey() solamente son visibles si la
* compatibilidad con Clipper 5.3 ( HB_COMPAT_C53 ) está definida.
* $PLATFORMS$
* Todas
* $FILES$
* La librería asociada es rtl
* $SEEALSO$
* TBROWSENEW(),TBCOLUMNNEW()
* $END$
*/
/* $CLASSDOC$
* $METHOD$
* SetKey()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Obtiene y/o Establece un bloque de código asociado a una tecla
* $SYNTAX$
* SetKey( <nTecla> [,<bBlock>] ) --> bOldBlock
* $ARGUMENTS$
* <nTecla> Un código de tecla (inkey) válido
*
* <bBlock> Una ación opcional a asociar con el valor de la tecla
* $RETURNS$
* <bOldBlock> Si al presionar una tecla, se cambia el codeblock
* se devolverá el bloque previo, de otro modo este
* método devolverá el codeblock actual.
* $DESCRIPTION$
* Este método Obtiene y opcionalmente Establece un bloque de código
* que es asociado con el valor de una tecla.
* La tabla inferior muestra las definiciones de teclas/codeblocks
*
* <table>
* Valor Tecla Bloque de Código
*
* K_DOWN {|Ob, nKey| Ob:Down(), 0}
* K_END {|Ob, nKey| Ob:End(), 0}
* K_CTRL_PGDN {|Ob, nKey| Ob:GoBottom(), 0}
* K_CTRL_PGUP {|Ob, nKey| Ob:GoTop(), 0}
* K_HOME {|Ob, nKey| Ob:Home(), 0}
* K_LEFT {|Ob, nKey| Ob:Left(), 0}
* K_PGDN {|Ob, nKey| Ob:PageDown(), 0}
* K_PGUP {|Ob, nKey| Ob:PageUp(), 0}
* K_CTRL_END {|Ob, nKey| Ob:PanEnd(), 0}
* K_CTRL_HOME {|Ob, nKey| Ob:PanHome(), 0}
* K_CTRL_LEFT {|Ob, nKey| Ob:PanLeft(), 0}
* K_CTRL_RIGHT {|Ob, nKey| Ob:PanRight(),0}
* K_RIGHT {|Ob, nKey| Ob:Right(), 0}
* K_UP {|Ob, nKey| Ob:Up(), 0}
* K_ESC {|Ob, nKey| -1 }
* </table>
*
* Los manejadores de tecla pueden ser consultados, agregados,
* reemplazados y removidos del dicccionario interno de teclado.
* Por ejemplo
*
* oTb:SETKEY( K_TAB, {|oTb, nKey| -1} )
*
* Un manejador de teclas por defecto, puede ser declarado al
* especificar un valor de cero para <nKey>. esto asocia el codeblock
* que será evaluado cada vez que TBrowse:Applykey() sea llamado con
* un valor de tecla que no este contenida en el diccionario.
* Por ejemplo
*
* oTb:SetKey( 0, {|oTb, nKey| DefKeyHandler( otb, nkey) })
* Esto llama a una función llamada DefKeyHandler() cuando nKey no
* está contenida en el diccionario.
*
* Para remover una definición presion de tecla/codeblock, especifique
* NIl para <bBlock>
* oTb:SetKey( K_ESC, NIL )
* $EXAMPLES$
* oTb:SeyKey( K_F10, {|otb,nkey| ShowListByname(otb) }
* $STATUS$
* S
* $COMPLIANCE$
* El método Setkey() solamente es visible si la compatibilidad con
* Clipper 5.3 ( HB_COMPAT_C53 ) está definida.
* $PLATFORMS$
* Todas
* $FILES$
* La librería asociada es rtl
* $SEEALSO$
* Applykey()
* $END$
*/
/* $CLASSDOC$
* $METHOD$
* Applykey()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Evalúa un codeblock asociado con una tecla especifica
* $SYNTAX$
* ApplyKey( <nTecla> ) --> nResultado
* $ARGUMENTS$
* <nTecla> Un código de tecla (inkey) válido
* $RETURNS$
* <nResultado> Valor devuelto para el codeblock evaluado
* Ver Tabla abajo
*
* <table>
* Valor Significado
* -1 El usuario solicita que el browse pierda foco de entrada
* 0 El codeblock asociado con <nTecla> fue evaluado
* 1 Imposible de localizar <nTecla> en el diccionario, la tecla
* no fué procesada
* </table>
* $DESCRIPTION$
* Este método evalúa un bloque de código asociado con <nTecla> que
* está contenida en el diccionario TBrowse:setkey()
* $EXAMPLES$
* WHILE .T.
* oTb:forceStable()
*
* IF( oTb:applykey( inkey(0) ) == -1 )
* EXIT
* ENDIF
*
* ENDDO
* $STATUS$
* S
* $COMPLIANCE$
* El método Applykey() solamente es visible si la compatibilidad con
* Clipper 5.3 ( HB_COMPAT_C53 ) está definida.
* $PLATFORMS$
* Todas
* $FILES$
* La librería asociada es rtl
* $SEEALSO$
* SetKey()
* $END$
*/
/* $CLASSDOC$
* $METHOD$
* AddColumn()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Agrega una nueva Column a un Objeto TBrowse
* $SYNTAX$
* AddColumn( oCol ) --> Self
* $ARGUMENTS$
* <oCol> Es un Objeto TBColumn
* $RETURNS$
* <Self> El Objeto actual
* $DESCRIPTION$
* Este método agrega un nuevo Objeto TBColumn especificado como <oCol>
* al objeto de browsing asignado.
* $STATUS$
* R
* $COMPLIANCE$
* Esta función es compatible con CA-Clipper 5.2
* $PLATFORMS$
* Todas
* $FILES$
* La librería asociada es rtl
* $SEEALSO$
* TBColumnNew()
* $END$
*/

76
harbour/doc/es/tclass.txt Normal file
View File

@@ -0,0 +1,76 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2000 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
*
* Copyright 2000 Brian Hays <bhays@abacuslaw.com>
* Documentaci¢n en Ingles
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* HBClass()
* $CATEGORY$
* Clases
* $ONELINER$
* HBClass() es usada en la creaci¢n de todas las clases
* $SYNTAX$
* oClass := HBClass():New("TMyClass")
*
* HBClass() es usualmente utilizada para definir una clase con los
* comandos definidos en hbclass.h:
* CLASS HBGetList // Llama a HBClass() para crear la clase
* ... // HBGetList
* ENDCLASS
* $ARGUMENTS$
*
* $RETURNS$
* Una instancia de la Clase HBClass. Un objeto especial, el mtodo
* :New() puede entonces crear las clases que Ud. define.
* $DESCRIPTION$
* HBClass es una clase que ...
* Los mtodos de clase son los siguientes:
*
* New() Crea una nueva instancia de la clase
*
* $EXAMPLES$
* FUNCTION TestObject()
* LOCAL oObject
*
* oObject := HBClass():New("TMyClass")
* oObject:End()
*
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* La sintaxis Orientada a Objetos en Harbour es compatible con
* CA-CLIPPER.
* Pero Clipper solamente permite la creaci¢n de objetos a partir
* de unas pocas clases estandares, y NO le permite al programador
* crear nuevas clases.
* En Harbour, Ud. puede crear sus propias clases completamente con
* Mtodos, Variables de Instancia, Variables de Clase y Herencia.
* Aplicaciones enteras pueden ser designadas y codificadas en el
* estilo Orientado a Objetos.
* $PLATFORMS$
* Todas
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* __objHasData(),Programacion Orientada a Objeto,CLASS
* $END$
*/

View File

@@ -0,0 +1,74 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
*
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: READVAR()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* READVAR()
* $CATEGORY$
* Data input and output
* $ONELINER$
* Retorna el nombre de la variable del actual GET ¢ MENU
* $SYNTAX$
* READVAR( [<cNombreVar>] ) --> cViejoNombreVar
* $ARGUMENTS$
* <cNombreVar> es el nuevo nombre de la variable a establecer
* $RETURNS$
* READVAR() retorna el viejo nombre de la variable <cViejoNombreVar>.
* Si ninguna variable fue establecida anteriormente, READVAR() retorna
* una cadena vac¡a.
* $DESCRIPTION$
* READVAR() es establecida dentro del comando READ ¢ MENU TO para
* mantener el nombre en may£sculas de la variable del GET / MENU TO
* actual y volverla de nuevo al viejo valor cuando aquellos comandos
* finalizan.
* Ud. no deber¡a normalmente establecer un nombre de variable, sino
* usarlo para obtener el nombre de la variable de un GET cuando se
* ejecuta una clausula VALID ¢ WHEN. ¢ durante la ejecuci¢n de un
* SET KEY y Ud. esta dentro de un READ ¢ MENU TO.
* $EXAMPLES$
* // Visualiza un menu, presione <F1> para ver el nombre de la
* // variable de MENU TO
* CLS
* @ 1, 10 PROMPT "insecto chupador de sangre que infecta camas"
* @ 2, 10 PROMPT "germen; infeccion viral "
* @ 3, 10 PROMPT "defecto; snag; (fuente de) malfuncionamiento"
* @ 4, 10 PROMPT "peque¤o microfono oculto "
* @ 6, 10 SAY "(Presione F1 por una pista)"
* SET KEY 28 TO ShowVar
* MENU TO What_Is_Bug
*
* PROCEDURE ShowVar
* ALERT( READVAR() ) // WHAT_IS_BUG in red ALERT() box
* RETURN
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* READVAR() trabaja exactamente como la funci¢n READKEY() de Clipper.
* Note sin embargo que el par metro <cVarName> no est  documentado
* y es usado internamente por CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* @...GET,@...PROMPT,MENU TO,READ,SET KEY,__AtPrompt(),__MenuTo()
* $END$
*/

100
harbour/doc/es/tlabel.txt Normal file
View File

@@ -0,0 +1,100 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de: LABEL FORM
*
* Copyright 1999 Luiz Rafael Culik <culik@sl.conex.net>
* Documentacion en Ingls
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* LABEL FORM
* $CATEGORY$
* Comando
* $ONELINER$
* Visualiza etiquetas en la pantalla ¢ en alg£n dispositivo alterno
* $SYNTAX$
* LABEL FORM <cNombreEtiqueta> [TO PRINTER] [TO FILE <cArchivo>]
* [<cAlcance>] [WHILE <bWhile> ] [FOR <bFor> ]
* [SAMPLE] [NOCONSOLE]
* $ARGUMENTS$
* <cNombreEtiqueta> Nombre del archivo de etiquetas
*
* <cArchivo> Nombre de un archivo alterno
*
* <cAlcance> Expresi¢n de una condici¢n de ambito ¢ alcance
*
* <bWhile> Expresi¢n l¢gica de una Condici¢n WHILE
*
* <bFor> Expresi¢n l¢gica de una Condici¢n FOR
* $DESCRIPTION$
* Este comando permite imprimir etiquetas basadas en el formato
* establecido en el archivo LBL, a un archivo especificado en
* <cNombreEtiqueta>.
* Por defecto la salida ir  a la pantalla, sin embargo esta salida
* puede ser redirigida ¢ bien a la impresora usando la cl usula
* TO PRINTER, ¢ bien a un archivo usando la cl usula TO FILE.
*
* Si la cl usula TO FILE es especificada, el nombre del archivo de
* texto ASCII conteniendo las etiquetas generadas ser  <cArchivo>.
*
* Si ninguna extensi¢n de archivo es especificada, la extensi¢n .TXT
* es agregada.
*
* <cAlcance> es la condici¢n de alcance para este comando. Alcances
* v lidos incluyen:
* NEXT <expN> (n£mero de registros a ser visualizados donde <expN>
* es el n£mero de registros)
* RECORD <expN> (un registro espec¡fico a ser impreso)
* REST (todos los registros comenzando desde la posici¢n del registro
* actual.
* ALL (todos los registros)
* Por defecto es ALL (todo).
*
* Ambas expresiones l¢gicas pueden trabajar en conjunci¢n con la otra
* Donde <bFor> es la expresi¢n l¢gica para la condici¢n FOR (para los
* registros a ser visualizados dentro de un rango dado).
* <bWhile> es la expresi¢n l¢gica para la condici¢n WHILE (para los
* registros a ser visualizados hasta que se deje de cumplir la
* condici¢n.
*
* Si la cl usula SAMPLE es especificada, etiquetas de prueba ser n
* generadas.
*
* Si la cl usula NOCONSOLE es especificada, la salida a la consola ser 
* desactivada mientras este comando este siendo ejecutado.
*
* Este comando sigue el criterio de ambito establecido en el comando
* SET PATH TO. El camino puede ser especifficado junto con la letra
* del disco en <cNombreEtiqueta>.
* $EXAMPLES$
* FUNCTION MAIN()
* USE Test New
* LABEL FORM EE
* USE
* RETURN NIL
*
* $STATUS$
* R
* $COMPLIANCE$
* Este comando es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La librer¡a es rtl
* $SEEALSO$
* REPORT FORM
* $END$
*/

126
harbour/doc/es/treport.txt Normal file
View File

@@ -0,0 +1,126 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* REPORT FORM
*
* Copyright 1999 Luiz Rafael Culik <culik@sl.conex.net>
* Documentacion
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* REPORT FORM
* $CATEGORY$
* Comando
* $ONELINER$
* Visualiza un reporte
* $SYNTAX$
* REPORT FORM <cNombreReporte> [TO PRINTER] [TO FILE <cArchivo>]
* [<cAlcance>] [WHILE <bWhile> ] [FOR <bFor> ]
* [PLAIN |HEADING <cEncabezado>] [NOEJECT] [SUMMARY]
* [NOCONSOLE]
* $ARGUMENTS$
* <cNombreReporte> Nombre del archivo de reporte
*
* <cArchivo> Nombre de un archivo alterno
*
* <cAlcance> Ambito ¢ alcance
*
* <bWhile> Expresi¢n l¢gica de una Condici¢n WHILE
*
* <bFor> Expresi¢n l¢gica de una Condici¢n FOR
*
* <cEncabezado> Encabezado del Reporte
* $RETURNS$
* NIL
* $DESCRIPTION$
* Este comando imprime un informe ¢ reporte llamado <cNombreReporte>,
* el cual es un archivo estandar FRM. La extensi¢n del archivo no es
* necesaria porque la extensi¢n .FRM es asumida por defecto.
* Los comandos SET PATH TO y SET DEFAULT TO afectan la b£squeda del
* archivo <cNombreReporte>; a menos que la unidad de disco y el path
* sean especificados en <cNombreReporte>, REPORT buscar  dentro del
* path especificado en el comando SET PATH y si no puede encontrar
* el modelo de reporte en el directorio actual.
*
* La salida del reporte ser  desplazada basada en el valor de
* SET MARGIN TO.
*
* Por defecto la salida ir  a la pantalla, sin embargo esta salida
* puede ser redirigida ¢ bien a la impresora usando la cl usula
* TO PRINTER, ¢ bien a un archivo usando la cl usula TO FILE.
*
* Si la cl usula TO FILE es especificada, el nombre de un archivo
* alterno es especificado en <cArchivo>.
* Si ninguna extensi¢n de archivo es especificada, la extensi¢n .TXT
* es agregada.
*
* <cAlcance> es la condici¢n de alcance para este comando. Alcances
* v lidos incluyen:
* NEXT <expN> (n£mero de registros a ser visualizados donde <expN>
* es el n£mero de registros)
* RECORD <expN> (un registro espec¡fico a ser impreso)
* REST (todos los registros comenzando desde la posici¢n del registro
* actual.
* ALL (todos los registros)
* Por defecto es ALL (todo).
*
* Ambas expresiones l¢gicas pueden trabajar en conjunci¢n con la otra
* Donde <bFor> es la expresi¢n l¢gica para la condici¢n FOR (para
* registros a ser visualizados dentro de un rango dado).
* <bWhile> es la expresi¢n l¢gica para la condici¢n WHILE (para los
* registros a ser visualizados hasta que se deje de cumplir la
* condici¢n.
*
* Si la cl usula PLAIN es especificada, la fecha y los n£meros de
* pagina son suprimidos. En adicion no hay salto autom tico de p gina
* y el t¡tulo del reporte y los encabezados de columna aparecen una
* sola vez al principio del reporte.
*
* Si la cl usula HEADING es usada, <cEncabezado> es visualizado en el
* t¡tulo de cada p gina del reporte. El valor de <cEncabezado> es
* evaluado solamente una vez antes de la ejecuci¢n del reporte; variar
* los valores de <cEncabezado> no est  permitido. La cl usula PLAIN
* tiene precedencia sobre la cl usula HEADING si ambas son incluidas.
*
* Si la cl usula NOEJECT es usada, la eyecci¢n de la p gina inicial
* en el reporte no ser  realizado cuando la cl usula TO PRINTER sea
* especificada.
* De otro modo esta cl usula no tendr  efecto.
*
* Si la cl usula SUMMARY es especificada, el reporte contendr 
* solamente grupos, subgrupos e informaci¢n de totales. La informaci¢n
* detallada del elemento t¡tulo ser  ignorada.
*
* Si la cl usula NOCONSOLE es especificada, la salida a la consola serÿ
* desactivada mientras este comando este siendo ejecutado.
* $EXAMPLES$
* FUNCTION() MAIN
* USE Test New
* Report FORM EE
* USE
* RETURN NIL
* $STATUS$
* R
* $COMPLIANCE$
* Este comando es totalmente compatible con CA-Clipper.
* $PLATFORMS$
* Todas
* $FILES$
* La librer­a es rtl
* $SEEALSO$
* LABEL FORM
* $END$
*/

920
harbour/doc/es/var.txt Normal file
View File

@@ -0,0 +1,920 @@
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* __MVPUBLIC(), __MVPRIVATE(), __MVXRELEASE(),
* __MVRELEASE(), __MVSCOPE(), __MVCLEAR(),
* __MVDBGINFO(), __MVEXIST(), __MVGET(), __MVPUT(), MEMVARBLOCK(),
* FIELDBLOCK(), FIELDWBLOCK(), TYPE(), VALTYPE(), HB_ISBYREF()
*
* Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
* Documentaci¢n en Ingls de:
* __MVPUBLIC(), __MVPRIVATE(), __MVXRELEASE(),
* __MVRELEASE(), __MVSCOPE(), __MVCLEAR(),
* __MVDBGINFO(), __MVGET(), __MVPUT(), MEMVARBLOCK(),
* TYPE()
*
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: FIELDBLOCK(), FIELDWBLOCK()
*
* Copyright 2001 Chen Kedem <niki@actcom.co.il>
* Documentaci¢n en Ingls de: __MVEXIST()
*
* Copyright 2002 Walter Negro <anegro@overnet.com.ar>
* Documentaci¢n en Ingls de: HB_ISBYREF()
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* __MVPUBLIC()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Esta funci¢n crea una variable PUBLIC
* $SYNTAX$
* __MVPUBLIC( <xNombrevariable> )
* $ARGUMENTS$
* <xNombrevariable> Es ¢ bien una cadena que contiene el nombre de la
* variable ¢ un array unidimensional de cadenas con
* nombres de variables.
* Los esqueletos ¢ comodines no estan permitidos.
* $RETURNS$
* Nada
* $DESCRIPTION$
* Esta funci¢n puede ser llamada por el compilador Harbour ¢ bien por
* el usuario.
* El compilador siempre pasa un item de tipo IT_SYMBOL que almacena el
* nombre de la variable.
* Si una variable con el mismo nombre ya existe, entonces la nueva
* variable no es creada, el valor previo permanece sin cambios.
* Si esta es la primera variable con ese nombre, entonces la variable
* es inicializada con el valor .T.
* $EXAMPLES$
* Ninguno disponible
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPRIVATE(),__MVXRELEASE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVPRIVATE()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Esta funci¢n crea una variable PRIVATE
* $SYNTAX$
* __MVPRIVATE( <xNombrevariable> )
* $ARGUMENTS$
* <xNombrevariable> Es ¢ bien una cadena que contiene el nombre de la
* variable ¢ un array unidimensional de cadenas con
* nombres de variables.
* Los esqueletos ¢ comodines no estan permitidos.
* $RETURNS$
* Nada
* $DESCRIPTION$
* Esta funci¢n puede ser llamada por el compilador Harbour ¢ bien por
* el usuario.
* El compilador siempre pasa un item de tipo IT_SYMBOL que almacena el
* nombre de la variable.
* Si una variable con el mismo nombre ya existe, entonces el valor de
* la vieja variable es ocultado hasta que la nueva variable sea
* liberada.
* La nueva variable es siempre inicializada con el valor NIL.
* $EXAMPLES$
* Ninguno disponible
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPUBLIC(),__MVRELEASE(),__MVXRELEASE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVXRELEASE()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Libera un valor almacenado en una variable PRIVATE or PUBLIC
* $SYNTAX$
* __MVXRELEASE( <xNombrevariable> )
* $ARGUMENTS$
* <xNombrevariable> Es ¢ bien una cadena que contiene el nombre de la
* variable ¢ un array unidimensional de cadenas con
* nombres de variables.
* Los esqueletos ¢ comodines no estan permitidos.
* $RETURNS$
* Nada
* $DESCRIPTION$
* Esta funci¢n libera valores almacenados en variable de memoria. Esta
* NO DEBE ser llamada directamente, sino que debe ser puesta dentro
* del comando RELEASE.
* Si la variable liberada es una variable PRIVATE entonces la variable
* previamente ocultada con el mismo nombre se vuelve visible despus
* de salir del procedimiento donde la variable liberada fu creada.
* Si Ud. accede la variable liberada en el mismo procedimiento/funci¢n
* donde esta fu creada el valor NIL es devuelto. Ud. puede sin embargo
* asignar un nuevo valor a la variable liberada sin ning£n efecto
* colateral.
*
* Esto libera la variable, a£n si esta variable fue creada en un
* procedimiento diferente.
* $EXAMPLES$
*
* PROCEDURE MAIN()
* PRIVATE mPrivate
* mPrivate :="PRIVATE from MAIN()"
* ? mPrivate //PRIVATE from MAIN()
* Test()
* ? mPrivate //PRIVATE from MAIN()
* RETURN
*
*
* PROCEDURE Test()
* PRIVATE mPrivate
* mPrivate :="PRIVATE from Test()"
* ? mPrivate //PRIVATE from TEST()
* RELEASE mPrivate
* ? mPrivate //NIL
* mPrivate :="Again in Test()"
* RETURN
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPRIVATE(),__MVPUBLIC()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVRELEASE()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Esta funci¢n libera variables PRIVATE
* $SYNTAX$
* __MVRELEASE( <cMascara>, <lIncludeExclude_flag> )
* $ARGUMENTS$
* <cMascara> Cadena que contiene la m scara comod¡n para los nombres
* de variables que ser n liberadas. Los comodines
* soportados son: '*' y '?'
*
* <lIncludeExclude_flag> Valor l¢gico que esecifica si las variables
* que coinciden con la m scara debieran ser borradas (.T.)
* ¢ excluidas del borrado si es .F.
* $RETURNS$
* Nada
* $DESCRIPTION$
* Esta funci¢n libera valores almacenados en variable de memoria. Esta
* NO DEBE ser llamada directamente, sino que debe ser puesta dentro
* del comando RELEASE ALL.
* Si la variable liberada es una variable PRIVATE entonces la variable
* previamente ocultada con el mismo nombre se vuelve visible despus
* de salir del procedimiento donde la variable liberada fu creada.
* Si Ud. accede la variable liberada en el mismo procedimiento/funci¢n
* donde esta fu creada el valor NIL es devuelto. Ud. puede sin embargo
* asignar un nuevo valor a la variable liberada sin ning£n efecto
* colateral.
* Variables PUBLIC no son cambiadas por esta funci¢n.
* $EXAMPLES$
* Ninguno
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPRIVATE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVSCOPE()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Si la variable existe, entonces retorna su alcance
* $SYNTAX$
* __MVSCOPE( <cNombreVar> )
* $ARGUMENTS$
* <cNombreVar> Una cadena con el nombre de una variable a chequear
* $RETURNS$
* Los valores simb¢licos son definidos en ../include/hbmemvar.ch
*
* <table>
* Macro Significado
*
* HB_MV_NOT_FOUND La variable no est  declarada (no fu encontrada
* en la tabla de s¡mbolos)
* HB_MV_UNKNOWN Si la variable No existe (pero fu encontrada
* en la tabla de s¡mbolos)
* HB_MV_ERROR Si la informaci¢n No puede ser obtenida (error
* de memoria ¢ error de argumento).
* HB_MV_PUBLIC para variables p£blicas
* HB_MV_PRIVATE_GLOBAL para variables private declaradas fuera del
* actual FUNCTION/PROCEDURE
* HB_MV_PRIVATE_LOCAL para variables private declaradas dentro del
* actual FUNCTION/PROCEDURE
* </table>
* </fixed>
* $EXAMPLES$
*
* PROCEDURE MAIN()
* PUBLIC mPublic
* PRIVATE mPrivateGlobal
*
* CallProc()
* ? __mvScope( "mPrivateLocal" ) // HB_MV_UNKNOWN
* RETURN
*
*
* PROCEDURE CallProc()
* PRIVATE mPrivateLocal
*
* ? __mvScope( "mPublic" ) // HB_MV_PUBLIC
* ? __mvScope( "mPrivateGlobal" ) // HB_MV_PRIVATE_GLOBAL
* ? __mvScope( "mPrivateLocal" ) // HB_MV_PRIVATE_LOCAL
* ? __mvScope( "mFindMe" ) // HB_MV_NOT_FOUND
*
* IF( __mvScope( "mPublic" ) > HB_MV_ERROR )
* ? "la Variable existe"
* ELSE
* ? "la Variable no fu creada a£n"
* ENDIF
*
* RETURN
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* El archivo de cabecera es ../include/hbmemvar.ch
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPRIVATE(),__MVPUBLIC()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVCLEAR()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Borra todas las variables PRIVATE y PUBLIC
* $SYNTAX$
* __MVCLEAR()
* $ARGUMENTS$
* Ninguno
* $RETURNS$
* Nada
* $DESCRIPTION$
* Esta funci¢n borra todas las variables PRIVATE y PUBLIC.
* Esta es usada para implementar la sentencia CLEAR MEMORY.
* La memoria ocupada por todas las variables es liberada.
* Cualquier intento de acceder a la variable resultar  en un error
* de ejecuci¢n.
* Ud tiene que reusar la sentencia PRIVATE ¢ PUBLIC para crear de nuevo
* la variable que fue borrada por esta funci¢n.
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPRIVATE(),__MVPUBLIC()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVDBGINFO()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Retorna informaci¢n sobre las variables para el debugger
* $SYNTAX$
* __MVDBGINFO( <nAlcance> [, <nPosicion> [, @<cNombreVar>] ] )
* $ARGUMENTS$
* <nAlcance> El alcance de las variables sobre las que la informaci¢n
* es solicitada.
* Valores Soportados (definidos en hbmemvar.ch):
* HB_MV_PUBLIC
* HB_MV_PRIVATE (or any other value)
*
* <nPosicion> La posici¢n de la variable solicitada en la lista de
* variables con el alcance especificado. Esta deberia
* comenzar desde la posici¢n 1
*
* <cNombreVar> El valor es llenado con un nombre de variable si es
* pasada por referencia y <nPosicion> es especificada
* $RETURNS$
* El valor retornado depende del n£mero de par metros pasados
* $DESCRIPTION$
* Esta funci¢n obtiene informaci¢n acerca de las variables memvar.
* Esta devuelve ¢ bien el n£merode variables con un alcance dado
* (Cuando el primer argumento es pasado solamente) ¢ un valor de
* variable identificada por su posici¢n en la la lista de variables
* (Cuando el segundo argumento es pasado).
* Esta tambin devuelve el nombre de la variable si el tercer argumento
* opcional es pasado por referencia.
*
* Si la variable solicitada no existe (la posici¢n solicitada es mayor
* que el n£mero de variables definidas), entonces el valor NIL es
* devuelto y el nombre de la variable es puesto a "?"
*
* Como la tabla din mica de s¡mbolos es usada para encontrar una
* variable PUBLIC, las variables PUBLICas son siempre ordenadas
* alfabticamente. Las variables PRIVATE son ordenadas en el orden
* de su creaci¢n.
*
* Nota:
* Debido a la naturaleza din mica de las variables memvar no hay
* garant¡a que sucesivas llamadas para recuperar el valor de la
* variable PUBLIC <N> retornar  el valor de la misma variable.
* $EXAMPLES$
* #include <hbmemvar.ch>
*
* LOCAL nCount, i, xValue, cName
*
* nCount =_mvDBGINFO( HB_MV_PUBLIC )
*
* FOR i:=1 TO nCount
* xValue =__mvDBGINFO( HB_MV_PUBLIC, i, @cName )
* ? i, cName, xValue
* NEXT
* </fixed>
* $TESTS$
* #include <hbmemvar.ch>
* PROCEDURE MAIN()
*
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* PUBLIC cPublic:='cPublic in MAIN'
*
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* PRIVATE cPrivate:='cPrivate in MAIN'
*
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* CountMemvars()
*
* ? 'Back in Main'
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* RETURN
*
*
* PROCEDURE CountMemvars()
* LOCAL i, nCnt, xVal, cName
* PUBLIC ccPublic:='ccPublic'
* PRIVATE ccPrivate:='ccPrivate'
*
* ? 'In CountMemvars'
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* PRIVATE cPublic:='cPublic'
*
* ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
* ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
*
* nCnt =__mvDBGINFO( HB_MV_PRIVATE ) +1
*
* FOR i :=1 TO nCnt
* xVal =__mvDBGINFO( HB_MV_PRIVATE, i, @cName )
* ? i, '=', cName, xVal
* NEXT
*
* nCnt = __mvDBGINFO( HB_MV_PUBLIC ) + 1
*
* FOR i :=1 TO nCnt
* xVal = __mvDBGINFO( HB_MV_PUBLIC, i, @cName )
* ? i, '=', cName, xVal
* NEXT
*
* RETURN
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n deber¡a ser llamada solamente desde el depurador.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVSCOPE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVEXIST()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Determina si un nombre dado es una variable PUBLIC ¢ PRIVATE
* $SYNTAX$
* __MVEXIST( <cNombreVar> ) --> <lExisteVar>
* $ARGUMENTS$
* <cNombreVar> Cadena con el nombre de la variable a chequear
* $RETURNS$
* __MVEXIST() retorna TRUE (.T.) si una MEMVAR llamada <cNombreVar>
* existe actualmente.
* $DESCRIPTION$
* Esta funci¢n determina si una variable PUBLIC ¢ PRIVATE con el
* nombre <cNombreVar> existe ¢ no.
* $EXAMPLES$
* LOCAL TheLocal
* STATIC TheStatic
* PUBLIC ThePublic
* PRIVATE ThePrivate
* ? __MVEXIST( "NotExist" ) // .F.
* ? __MVEXIST( "TheLocal" ) // .F.
* ? __MVEXIST( "TheStatic" ) // .F.
* ? __MVEXIST( "ThePublic" ) // .T.
* ? __MVEXIST( "ThePrivate" ) // .T.
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* MEMVAR, PRIVATE, PUBLIC
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVGET()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Esta funci¢n retorna el valor de una variable de memoria (MEMVAR)
* $SYNTAX$
* __MVGET( <cNombreVar> ) --> <xVar>
* $ARGUMENTS$
* <cNombreVar> Cadena con el nombre de la variable
* $RETURNS$
* <xVar> el valor de la variable
* $DESCRIPTION$
* Esta funci¢n devuelve el valor de una variable de memoria PRIVATE ¢
* PUBLIC si la variable existe, de otro modo genera un error en tiempo
* de ejecuci¢n.
* La variable es especificada por su nombre pasado como par metro a la
* funci¢n.
* $EXAMPLES$
* FUNCTION MEMVARBLOCK( cMemvar )
* RETURN {|x| IIF( PCOUNT()==0, __MVGET( cMemvar ),;
* __MVPUT( cMemvar, x ) ) }
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPUT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __MVPUT()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Esta funci¢n establece el valor de una variable de memoria
* $SYNTAX$
* __MVGET( <cNombreVar> [, <xValor>] ) --> <xValor>
* $ARGUMENTS$
* <cNombreVar> Cadena con el nombre de la variable
*
* <xValor> Un valor de cualquier tipo que puede ser establecido
* Si no es especificado, entonces NIL es asumido.
* $RETURNS$
* <xValor> Un valor asignado a la variable dada.
* $DESCRIPTION$
* Esta funci¢n establece el valor de una variable de memoria PRIVATE ¢
* PUBLIC si la variable existe, de otro modo genera un error en tiempo
* de ejecuci¢n.
* La variable es especificada por su nombre pasado como par metro a la
* funci¢n.
* Si un valor no es especificado, entonces NIL es asumido.
* $EXAMPLES$
* FUNCTION MEMVARBLOCK( cMemvar )
* RETURN {|x| IIF( PCOUNT()==0, __MVGET( cMemvar ),;
* __MVPUT( cMemvar, x ) ) }
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La librer¡a asociada es vm
* $SEEALSO$
* __MVPUT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* MEMVARBLOCK()
* $CATEGORY$
* Variable Management
* $ONELINER$
* Retorna un codeblock que establece/obtiene el valor de variable
* $SYNTAX$
* MEMVARBLOCK( <cNombreMemvar> ) --> <bBloque>
* $ARGUMENTS$
* <cNombreMemvar> Cadena con el nombre de la variable
* $RETURNS$
* <bBloque> un codeblock que establece/obtiene el valor de variable
* $DESCRIPTION$
* Esta funci¢n devuelve un codeblock que establece/obtiene el valor de
* una variable PRIVATE ¢ PUBLIC. Cuando este codeblock es evaluado
* sin ning£n par metro pasado, entonces este devuelve el valor actual
* de la variable dada.
* Si el segundo par metro es pasado para la evaluaci¢n del codeblock
* entonces este valor es usado para establecer el nuevo valor de la
* variable dada, el valor pasado es tambin retornado como un valor
* la evaluaci¢n del codeblock.
* $EXAMPLES$
* PROCEDURE MAIN()
* LOCAL cbSetGet
* PUBLIC xPublic
*
* cbSetGet = MEMVARBLOCK( "xPublic" )
* EVAL( cbSetGet, "nuevo valor" )
* ? "Valor de la variable xPublic:", EVAL( cbSetGet )
*
* RETURN
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Esta funci¢n es compatible con CA-Clipper
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* __MVGET(),__MVPUT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* FIELDBLOCK()
* $CATEGORY$
* Code Block
* $ONELINER$
* Retorna un codeblock que establece/obtiene el valor de un campo
* $SYNTAX$
* FIELDBLOCK( <cFieldName> ) --> bFieldBlock
* $ARGUMENTS$
* <cFieldName> Es una cadena que contiene el nombre de un campo.
* $RETURNS$
* FIELDBLOCK() retorna un codeblock que cuando es evaluado puede
* obtener el valor del campo ¢ asignar un nuevo valor al campo.
* Si <cFieldName> no es especificado ¢ es de otro tipo distinto a
* CHARACTER, FIELDBLOCK() retorna NIL.
* $DESCRIPTION$
* FIELDBLOCK() retorna un codeblock que establece/obtiene el valor de
* un campo.
* Cuando este campo es evaluado sin ning£n par metro pasado entonces
* este devuelve el valor actual del campo dado.
* Si el codeblock es evaluado con un par metro, entonces su valor es
* usado para establecer un nuevo valor para el campo, este valor es
* tambin retornado por el bloque.
* Si el bloque es evaluado y no hay ning£n campo con el nombre
* <cFieldName> en el  rea actual de trabajo el codeblock devuelve NIL.
*
* Note que FIELDBLOCK() trabaja en el  rea actual de trabajo, si Ud.
* necesita usar un  rea de trabajo distinta a la actual, use
* FIELDWBLOCK() en su lugar.
* $EXAMPLES$
* // Abre un archivo llamado Test que tiene un campo llamado "name"
* LOCAL bField
* bFiled := FIELDBLOCK( "name" )
* USE Test
*
* ? 'Valor Original del campo "name" :', EVAL( bField )
* EVAL( bField, "Mr X new name" )
* ? 'Nuevo valor para el campo "name" :', EVAL( bField )
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Si el bloque es evaluado y no hay ning£n campo con el nombre
* <cFieldName> en el  rea actual de trabajo, el codeblock devuelve NIL.
*
* CA-Clipper produce un error BASE/1003 si el campo no existe.
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* EVAL(),FIELDWBLOCK(),MEMVARBLOCK()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* FIELDWBLOCK()
* $CATEGORY$
* Code Block
* $ONELINER$
* Retorna un codeblock que setea/obtiene un campo en una  rea dada
* $SYNTAX$
* FIELDWBLOCK( <cFieldName>, <nWorkArea> ) --> bFieldBlock
* $ARGUMENTS$
* <cFieldName> Es una cadena que contiene el nombre de un campo.
*
* <nWorkArea> N£mero de  rea de trabajo en la cual <cFieldName> existe
*
* $RETURNS$
* FIELDWBLOCK() retorna un codeblock que cuando es evaluado puede
* obtener el valor del campo ¢ asignar un nuevo valor al campo en un
*  rea de trabajo dada.
* Si <cFieldName> no es especificado ¢ es de otro tipo distinto a
* CHARACTER, ¢ si <nWorkArea> no es especificada ¢ no es NUMERICa
* FIELDWBLOCK() retorna NIL.
* $DESCRIPTION$
* FIELDWBLOCK() retorna un codeblock que establece/obtiene el valor de
* un campo para un  rea de trabajo dada.
* Cuando este campo es evaluado sin ning£n par metro pasado entonces
* este devuelve el valor actual del campo dado.
* Si el codeblock es evaluado con un par metro, entonces su valor es
* usado para establecer un nuevo valor para el campo, este valor es
* tambin retornado por el bloque.
* Si el bloque es evaluado y no hay ning£n campo con el nombre
* <cFieldName> en el  rea de trabajo especificada, el codeblock
* devuelve NIL.
* $EXAMPLES$
* LOCAL bField
* // Este bloque trabaja sobre campo "name" que existe en el area 2
* bFiled := FIELDBLOCK( "name", 2 )
*
* // Abre el archivo llamado One en el area 1,
* // que tiene un campo llamado "name"
* SELECT 1
* USE One
*
* // Abre el archivo llamado Two en el area 2,
* // que tambien tiene un campo llamado "name"
* SELECT 2
* USE Two
* SELECT 1
* ? "Nombres Originales: ", One->name, Two->name
* ? "Nombre para el archivo dos:", EVAL( bField )
* EVAL( bField, "Two tiene un nuevo nombre" )
* ? "y ahora: ", One->name, Two->name
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* Si el bloque es evaluado y no hay ning£n campo con el nombre
* <cFieldName> en el  rea de trabajo dada, el codeblock devuelve NIL.
*
* CA-Clipper produce un error BASE/1003 si el campo no existe.
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* EVAL(),FIELDBLOCK(),MEMVARBLOCK()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* TYPE()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Obtiene el tipo de una expresi¢n
* $SYNTAX$
* TYPE( <cExp> ) --> <cRetType>
* $ARGUMENTS$
* <cExp> debe ser una expresi¢n de caracteres
* $RETURNS$
* Una cadena <cRetType> indicando el tipo de la expresi¢n pasada.
*
* <table>
* cRetType Significado
*
* "A" Array
* "B" Block
* "C" Cadena de Caracteres
* "D" Fecha (Date)
* "L" L¢gico
* "M" Memo
* "N" Numerico
* "O" Objeto
* "U" Variable NIL, local, static, ¢ no enlazada en la funci¢n
* "UE" Error sintaxis en expression ¢ argumentos invalidos
* "UI" Funcion con nombre no-reservado fue solicitada
* </table>
*
* $DESCRIPTION$
* Esta funci¢n devuelve una cadena que representa el tipo de datos del
* argumento. Esta puede ser cualquier expresi¢n v lida de Harbour.
*
* Si hay un <b>error de sintaxis</b> en la expresi¢n pasada entonces
* "UE" es devuelto.
*
* Si hay una llamada a alguna funci¢n de Harbour no-reservada entonces
* "UI" es devuelto (en otras palabras, no hay llamada a la funci¢n UDF
* durante la determinaci¢n de tipo - este es un comportamiento
* compatible con Clipper). Adicionalmente si la funci¢n de usuario
* solicitada no es enlazada dentro del ejecutable final, entonces "U"
* es devuelto.
*
* El tipo de dato de esta expresi¢n es chequeado al invocar al
* compilador de macros y por la evaluaci¢n del c¢digo generado (si es
* que no hay errores de sintaxis).
* Esto causa que TYPE() no pueda determinar un tipo de variable LOCAL
* ¢ STATIC, solamente s¡mbolos visibles en tiempo de ejecuci¢n pueden
* ser chequeados.
*
* N¢tese la sutil diferencia entre las funciones TYPE y VALTYPE.
* La funci¢n VALTYPE() no llama al compilador de macros, esta
* simplemente chequea el tipo del argumento pasado, que puede ser de
* cualquier tipo.
* La funci¢n TYPE() requiere un argumento de cadena de caracteres con
* una expresi¢n v lida de Harbour. El tipo de dato de esta expresi¢n
* es retornado.
* $EXAMPLES$
* ? TYPE( "{ 1, 2 }" ) // prints "A"
* ? TYPE( "IIF(.T., SUBSTR('TYPE',2,1), .F.)" ) // prints "C"
* ? TYPE( "AT( 'OK', MyUDF())>0" ) // prints "UI"
* ? TYPE( "{ 1, 2 }[ 5 ]" ) // prints "UE"
*
* //--------------------------------------------------------
*
* LOCAL c
* PRIVATE a:="A", b:="B"
* ? TYPE( "a + b + c" ) //prints: "U" (variable 'C' es local)
*
* //--------------------------------------------------------
*
* LOCAL cFilter := SPACE( 60 )
* ACCEPT "Ingrese la expresi¢n de filtro:" TO cFilter
*
* IF( TYPE( cFilter ) $ "CDLMN" ) )
* // Esta es una expresi¢n v lida
* SET FILTER TO &cFilter
* ENDIF
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
*
* - Incompatibilidad con Clipper:
* En el c¢digo siguiente:
*
* PRIVATE lCond := 0
* ? TYPE( "IIF( lCond, 'true', MyUDF() )" )
*
* Clipper imprimir  "UE" - en Harbour la salida ser  "UI"
*
* - Si "UI" es retornada entonces la sintaxis de la expresi¢n es
* correcta. Sin embargo argumentos inv lidos pueden ser pasados
* a una function/procedure que cause errores de ejecuci¢n durante
* la evaluaci¢n de la expresi¢n.
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* VALTYPE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* VALTYPE()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Obtiene el tipo de dato de una expresi¢n
* $SYNTAX$
* VALTYPE( <xExp> ) --> <cReturnType>
* $ARGUMENTS$
* <xExp> es cualquier expresi¢n v lida
* $RETURNS$
* <cReturnType> una caracter indicando el tipo de la expresi¢n pasada
* $DESCRIPTION$
* Esta funci¢n devuelve un s¢lo car cter el cual representa el tipo de
* dato del argumento recibido.
* $EXAMPLES$
* Ver Test
* </fixed>
* $TESTS$
* FUNCTION Test()
* ? ValType( Array( 1 ) ) --> "A"
* ? ValType( {|| 1 + 1 } ) --> "B"
* ? ValType( "HARBOUR" ) --> "C"
* ? ValType( Date() ) --> "D"
* ? ValType( .T. ) --> "L"
* ? ValType( 1 ) --> "N"
* ? ValType( TBrowse() ) --> "O"
* ? ValType( NIL ) --> "U"
* RETURN NIL
* </fixed>
* $STATUS$
* R
* $COMPLIANCE$
* VALTYPE() es totalmente compatible con CA-Clipper.
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* TYPE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_ISBYREF()
* $CATEGORY$
* Miscelanea
* $ONELINER$
* Informa si la variable es pasada por referencia.
* $SYNTAX$
* HB_ISBYREF( @<Var> ) --> <lVarIsByRef>
* $ARGUMENTS$
* @<Var> es la variable a testear pasada por referencia.
* $RETURNS$
* Un valor l¢gico <lVarIsByRef> indicando si la variable es pasada por
* referencia a la funci¢n ¢ procedimiento actual.
* $DESCRIPTION$
* Esta funci¢n devuelve un valor l¢gico indicando si la variable es
* pasada por referencia a la funci¢n ¢ procedimiento actual.
*
* ATENCION:
* La variable a testear debe ser pasada por referencia. Si no lo es
* la funci¢n retorna NIL.
* Esta funci¢n esta basada en la forma que Harbour maneja las variables
* por referencia. Cuando una variable es pasada de este modo, la
* funci¢n ¢ procedimiento que la recibe, recibe un puntero a la
* variable previa, sea esta la variable contenedora de los datos, ¢ un
* puntero a otra variable. La funci¢n observa si la variable pasada
* apunta a una variable com£n ¢ a la variable pasada por referencia.
* $EXAMPLES$
* Ver Test
* $TESTS$
* FUNCTION Main()
* local cVar := "Test local"
* private nVar := 0
*
* Test( @cVar, @nVar, cVar, nVar )
* RETURN NIL
*
* PROCEDURE Test( Arg1, Arg2, Arg3, Arg4 )
* ? hb_isbyref( @Arg1 ) // .T.
* ? hb_isbyref( @Arg2 ) // .T.
* ? hb_isbyref( @Arg3 ) // .F.
* ? hb_isbyref( @Arg4 ) // .F.
* RETURN
* </fixed>
* $STATUS$
* S
* $COMPLIANCE$
* Esta funci¢n es una extensi¢n de Harbour.
* $FILES$
* La Librer¡a es rtl
* $SEEALSO$
* VALTYPE()
* $END$
*/