FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index Off Topic / Otros temas xBasePHP.com, .prg to web in a few seconds.....
Posts: 883
Joined: Thu Dec 24, 2009 12:46 AM
Re: xBasePHP.com, .prg to web in a few seconds.....
Posted: Fri Oct 24, 2025 01:10 PM

So you got seriously addicted, this is advancing very fast, just about a bit over 2 months I actually investigated what AI was, I literally did not knew what it was, or what it did.... now I honestly believe we cant survive without it....

If you were ahead of your time when you started The Harbour Project, and then even further with FiveWin, I just wonder what will you come out with, after all this learnings....

=====>

Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala

FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10

FiveWin, One line of code and it's done...

Posts: 883
Joined: Thu Dec 24, 2009 12:46 AM
Re: xBasePHP.com, .prg to web in a few seconds.....
Posted: Wed Oct 29, 2025 09:32 PM
Milestone achievement, we finally got to rendering true codebase to PHP..., talking about creating PHP, JavaScript, CSS, Bootstrap, Html, automatically on real time...
After extracting everything from .RES files, and processing .RC files, either or...
We had to translate xBase code from .prg files, and c and c++ from .c and .cpp files...,
Work with api calls conversions, etc...
The necessary code is only a couple gigabytes, but we have a couple terabytes that we need to depure.... i tried to upload to a webserver, but between addresses, dependencies, and other factors, it will take a little while to have an online deployable working version... but already works in my development environment.


functions and class methods are done, just need to implement and make sure they render what its suppossed to be rendered...
We have a long way to go,,,, but proof of concept is already achieved.. it is possible....
<?php

/**
 * fivedbu - Production Library File
 * Platform: Production
 * xBasePHP
 * 
function main($cdbfname = null) {
    global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;

    $obmptiled = null;

    $obmptiled = null;
    fwnumformat("A", true);
    setautohelp(true);
    $hado = ["DBASE" => [], "FOXPRO" => [], "EXCEL" => [], "MSACCESS" => [], "MSSQL" => [], "MYSQL" => [], "SQLITE" => [], "ORACLE" => [], "POSTGRE" => []];
    TPreview::$bSaveAsPDF = function($o, $c, $l) { return fwsavepreviewtopdf($o, $c, $l); };
    setresdebug(true);
    $cconnection = hb_space(100);
    // Unknown statement type: FunctionCall
    // Unknown statement type: FunctionCall
    loadpreferences();
    if ($lpijama) {
        setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), ((237 + (242 * 256)) + (248 * 65536))]]);
    } else {
        setdlggradient([[1, ((199 + (216 * 256)) + (237 * 65536)), 16777215]]);
    }
    $ofontx = new TFont("Calibri", 0, -(14), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
    $obmptiled = (new TBitmap())->define("background", null, null);
    $owndmain = new TMdiFrame(null, null, null, null, "FiveDBU", null, buildmenu(), null, null, null, null, true, true, null, null, null, null, "oWndMain", null, null, null, null);
    $owndmain->SetFont($ofontx);
    buildmainbar();
    new TMsgBar($owndmain, "FiveDBU 32/64 bits, (c) FiveTech Software 2014-2020", false, false, true, true, null, null, null, null, false, (false ? false : true), null, false);
    if (!(hb_empty($cdbfname))) {
        open($cdbfname);
    }
    $owndmain->bRClicked = function($nrow, $ncol, $nkeyflags) { return buildpopupmenu($nrow, $ncol, $owndmain); };
    $owndmain->bPainted = function($hdc, $cps) use ($owndmain, $obmptiled) { return drawtiled($hdc, $owndmain, $obmptiled); };
    $owndmain->ACTIVATE(hb_upper("MAXIMIZED"), $owndmain->bLClicked, $owndmain->bRClicked, $owndmain->bMoved, $owndmain->bResized, $owndmain->bPainted, $owndmain->bKeyDown, $owndmain->bInit, null, null, null, null, null, null, null, null, function() { return (function() { fwmissingstrings(); return msgyesno(fwstring("Want to end ?"), fwstring("Select an option")); })(); }, null, $owndmain->bLButtonUp, false, null);
    $obmptiled->END();
    if ($ofontx && hb_isobject($ofontx) && $ofontx->END()) {
        $ofontx = null;
        hb_aeval($amariacn, function($a) { return $a[3]->Close(); });
        heval($hado, function($k, $v) { return hb_aeval($v, function($a) { return $a[3]->Close(); }); });
        ferase("checkres.txt");
        checkres();
        return null;
    }
}

function buildpopupmenu($nrow = null, $ncol = null, $ownd = null) {
    global $afwstack, $_fwhtmp_, $owndmain, $omrudbfs, $omruodbcconnections, $omruadoconnections, $asearches, $crdd, $cdefrdd, $lshared, $cconnection, $ocon, $nlanguage, $ofontx, $nclrtxtbrw, $nclrbackbrw, $lpijama, $amariacn, $hado;

    $opopup = null;
    $oitem = null;

    static $lserver = null;
    static $hserver = null;

    $opopup = null;
    $oitem = null;
    $lserver = false;
    $hserver = null;
    $opopup = menubegin(true, null, null, false, false, null, null, null, null, null, null, null, null, null, false, null, false, false, false, false, null, null, null, null, null, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, null, null, null, null, null, null, null);
    if ($lserver) {
        menuadditem("WebApp", null, true, null, function($omenuitem) { return (function() { $lserver = false; return hb_threadquitrequest($hserver); })(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
    } else {
        menuadditem("WebApp", null, false, null, function($omenuitem) { return (!($lserver) ? (function() { $lserver = true; return $hserver = hb_threadstart(webserver()); })() : null); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
    }
    menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
    menuadditem("Controller", null, false, null, function($omenuitem) { return wa_controller(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
    menuadditem(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
    menuadditem("Dialogs", null, false, null, function($omenuitem) { return wa_showcodedialogs(); }, null, null, null, null, null, null, false, null, null, false, null, false, false, null, null, null, null, null, null, null, null, null, false, false, null, null, null, null, null, null, null, null, false, false, false, null, null, null, null, false, false, false);
    menuend();
    $opopup->ACTIVATE($nrow, $ncol, $ownd, !(false), null);
    return null;
}

=====>

Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala

FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10

FiveWin, One line of code and it's done...

Continue the discussion