XBase++

Na Galipedia, a Wikipedia en galego.

XBase++ é unha linguaxe de programación desenvolto por Alaska Software, compatible con Clipper 5.2, soportando a programación orientada a obxectos, a herdanza múltiple e o polimorfismo. Soporta todos os tipos nativos de xBase, incluíndo os Codeblocks. Permite xerar aplicacións Windows NT / 2000 / XP (32 bits) e 95 / 98 / ME.

Historia[editar | editar a fonte]

XBase++ naceu tras a decisión de Computer Associates de abandonar Clipper para envorcarse en Visual Objects. O fracaso de V.Ou. como substituto de Clipper provoca que comecen a desenvolverse primeiro bibliotecas de terceiros para dotalo de soporte Windows, e logo de compiladores alternativos como XBase++ que soporten a síntaxis de Clipper 5.2 (a versión máis popular), expandindo o soporte a aplicacións de 32 bits.

Soporte de Clipper[editar | editar a fonte]

XBase++ soporta tanto as vellas sentenzas @\SAY/GET para definir formularios como dispón dun editor gráfico de formularios similar ao de Visual Foxpro. Conta así mesmo cunha contorna de desenvolvemento visual, soporte de ficheiros OEM (formato DOUS) e ANSI (Windows), un depurador integrado e un compilador de recursos para poder engadir iconas e gráficos á aplicación. Pode xerar ficheiros EXE ou DLL.

RDD[editar | editar a fonte]

Xbase++ soporta os Replaceable Database Drivers (RDD, que permiten o soporte de múltiples formatos de base de datos, podendo ser desenvolvidos por terceiros) de Clipper mediante os seus DatabaseEngines (DBEs). O paquete inclúe soporte para DBF, FOX, NTX, CDX, SDF e DO. Soporta CORBA 2.0, os formatos de Visual FoxPro 3.0 a 5.0, e acceso a servidores SQL.

Exemplos de Código[editar | editar a fonte]

#include "Common.ch"
#include "class.ch"

//
//  Este programa imprime:
//
//  Michifuz  Miau!
//  DonGato   Miau!
//  Rin Tin Tin  Guau!
//  Press any key to continue...
//

/////////////////////////////
//
PROCEDURE Main()
//
/////////////////////////////

  LOCAL aAnimales := Array(3)
  LOCAL i

  aAnimales[1] :=  Gato():New("Michifuz")
  aAnimales[2] :=  Gato():New("DonGato")
  aAnimales[3] :=  Can():New("Rin Tin Tin")

  FOR i:=1 TO LEN(aAnimales)
     ? aAnimales[i]:Nome + "  " + aAnimales[i]:Falar()
  NEXT i

  WAIT

RETURN

/////////////////////////////
//
CLASS Animal
//
/////////////////////////////

   EXPORTED:
      VAR Nome   READONLY

      METHOD Init
      DEFERRED CLASS METHOD Falar
ENDCLASS

METHOD Animal:Init( cNombre )
   ::Nome := cNombre
RETURN Self

/////////////////////////////
//
CLASS Can FROM Animal
//
/////////////////////////////
   EXPORTED:
   METHOD Falar
ENDCLASS

METHOD Dog:Falar()
RETURN "Guau!"

/////////////////////////////
//
CLASS Gato FROM Animal
//
/////////////////////////////
   EXPORTED:
   METHOD Falar
ENDCLASS

METHOD Gato:Falar()
RETURN "Miau!"

Véxase tamén[editar | editar a fonte]

Ligazóns externas[editar | editar a fonte]