Harbour and Android - via - Qt Creator

779 views
Skip to first unread message

Pritpal Bedi

unread,
Mar 26, 2014, 11:05:00 PM3/26/14
to harbou...@googlegroups.com
Hello Przemek

//                          Snippet                          //


   #include "hbapi.h" 
   #include "hbapigt.h" 
   #include "hbvm.h" 
   #include "hbgtcore.h" 

   HB_GT_REQUEST( QTC ) 
   HB_FUNC_TRANSLATE( request_MAIN, MAIN ) 

   int main(int argc, char *argv[]) 
   { 
      hb_cmdargInit( argc, argv ); 
      hb_gtSetDefault( "GTQTC" ); 
      hb_vmInit( HB_TRUE ); 
      return hb_vmQuit(); 
   } 

and updated in project file (.pro) INCLUDEPATH and LIBS variables. 

   INCLUDEPATH += <harbour_inc_dir> 
   LIBS += -L<harbour_lib_dir> -L<usr_applib_dif> -lmyapp -Wl,--start-group <harbourlibs,...> -lgtqtc -Wl,--end-group 


This is general form which can be used to any application. 

Then you only have to create myapp library with user code. 
It's enough to take existing .hbp file and recompile it 
using hbmk2a with -hblib -o<usr_applib_dif>/myapp switches. 

Then you create final application (.apk) from QtCreator. 
(QtCreator should be configured to use your Android SDK/NDK env.) 

// ---------------------------------------------------------//


I did some experiments.

main.cpp
=======

#include "mainwindow.h"
#include <QApplication>
#include <QFile>

#include "hbapi.h"
#include "hbapigt.h"
#include "hbvm.h"
#include "hbgtcore.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w;
    w.show();

    QFile f( ":/androidstyle_1.css" );
    if( f.open( QFile::ReadOnly ) )
    {
        a.setStyleSheet( f.readAll() );
        f.close();
    }

    QNetworkProxyFactory::setUseSystemConfiguration( true );

    hb_vmInit( HB_TRUE );
    a.exec();
    return hb_vmQuit();
}


vouch.pro
=========

#-------------------------------------------------
#
# Project created by QtCreator 2013-09-28T15:30:42
#
#-------------------------------------------------

QT        += core gui network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET    =  Vouch
TEMPLATE  =  app

SOURCES   += main.cpp\
             mainwindow.cpp\
             simplecrypto.cpp \
             keypresseater.cpp \
             flickcharm.cpp \
             generics.cpp \
             harbour.cpp

HEADERS   += mainwindow.h\
             simplecrypto.h \
             keypresseater.h \
             mylabel.h \
             flickcharm.h \
             generics.h \
             harbour.h

FORMS     += mainwindow.ui
RESOURCES += vouch.qrc
CONFIG    += mobility
MOBILITY  = 

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/../android

OTHER_FILES += ../android/AndroidManifest.xml

INCLUDEPATH += C:/hb.android/include/
LIBS += -LC:\hb.android\lib -Wl,--start-group  -lharbour -lhbhpdf  -Wl,--end-group
ANDROID_EXTRA_LIBS = ../../hb.android/lib/libharbour.so


The Error Log ( Compiles fine but throws this log when running - <<< libharbour.so.3.2 >>>
=============

Starting remote process.D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/lib/libgnustl_shared.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/lib/libgnustl_shared.so 0x416eba70

D/dalvikvm( 2174): No JNI_OnLoad found in /data/data/org.vouch.vouch/lib/libgnustl_shared.so 0x416eba70, skipping init

D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/lib/libQt5Core.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/lib/libQt5Core.so 0x416eba70

D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/lib/libQt5Gui.so 0x416eba70

D/dalvikvm( 2174): GC_CONCURRENT freed 117K, 8% free 2790K/3024K, paused 103ms+20ms, total 233ms

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/lib/libQt5Gui.so 0x416eba70

D/dalvikvm( 2174): No JNI_OnLoad found in /data/data/org.vouch.vouch/lib/libQt5Gui.so 0x416eba70, skipping init

D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/lib/libQt5Widgets.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/lib/libQt5Widgets.so 0x416eba70

D/dalvikvm( 2174): No JNI_OnLoad found in /data/data/org.vouch.vouch/lib/libQt5Widgets.so 0x416eba70, skipping init

D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/lib/libQt5Network.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/lib/libQt5Network.so 0x416eba70

I/Qt ( 2174): Network start

D/dalvikvm( 2174): Trying to load lib /data/data/org.vouch.vouch/qt-reserved-files/plugins/platforms/android/libqtforandroid.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/data/org.vouch.vouch/qt-reserved-files/plugins/platforms/android/libqtforandroid.so 0x416eba70

I/Qt ( 2174): qt start

D/dalvikvm( 2174): Trying to load lib /data/app-lib/org.vouch.vouch-1/libharbour.so 0x416eba70

D/dalvikvm( 2174): Added shared lib /data/app-lib/org.vouch.vouch-1/libharbour.so 0x416eba70

D/dalvikvm( 2174): No JNI_OnLoad found in /data/app-lib/org.vouch.vouch-1/libharbour.so 0x416eba70, skipping init

D/dalvikvm( 2174): Trying to load lib /data/app-lib/org.vouch.vouch-1/libVouch.so 0x416eba70

E/dalvikvm( 2174): dlopen("/data/app-lib/org.vouch.vouch-1/libVouch.so") failed: dlopen failed: could not load library "libharbour.so.3.2" needed by "libVouch.so"; caused by library "libharbour.so.3.2" not found

D/AndroidRuntime( 2174): Shutting down VM

W/dalvikvm( 2174): threadid=1: thread exiting with uncaught exception (group=0x41465700)

E/AndroidRuntime( 2174): FATAL EXCEPTION: main

E/AndroidRuntime( 2174): java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libharbour.so.3.2" needed by "libVouch.so"; caused by library "libharbour.so.3.2" not found

E/AndroidRuntime( 2174): at java.lang.Runtime.loadLibrary(Runtime.java:361)

E/AndroidRuntime( 2174): at java.lang.System.loadLibrary(System.java:525)

E/AndroidRuntime( 2174): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:249)

E/AndroidRuntime( 2174): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:643)

E/AndroidRuntime( 2174): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:872)

E/AndroidRuntime( 2174): at android.app.Activity.performCreate(Activity.java:5133)

E/AndroidRuntime( 2174): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

E/AndroidRuntime( 2174): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)

E/AndroidRuntime( 2174): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)

E/AndroidRuntime( 2174): at android.app.ActivityThread.access$600(ActivityThread.java:141)

E/AndroidRuntime( 2174): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)

E/AndroidRuntime( 2174): at android.os.Handler.dispatchMessage(Handler.java:99)

E/AndroidRuntime( 2174): at android.os.Looper.loop(Looper.java:137)

E/AndroidRuntime( 2174): at android.app.ActivityThread.main(ActivityThread.java:5103)

E/AndroidRuntime( 2174): at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime( 2174): at java.lang.reflect.Method.invoke(Method.java:525)

E/AndroidRuntime( 2174): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)

E/AndroidRuntime( 2174): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)

E/AndroidRuntime( 2174): at dalvik.system.NativeStart.main(Native Method)

I/Process ( 2174): Sending signal. PID: 2174 SIG: 9

"org.vouch.vouch" died.









I feel there is some small issue which I am unable to locate.
This application is in production. I just added Harbour VM without any function call.
Can you help what I am missing ?


Regards
Pritpal Bedi

Francesco Perillo

unread,
Mar 27, 2014, 4:15:18 AM3/27/14
to harbou...@googlegroups.com
don't use ANDROID_EXTRA_LIBS since there are some problems with it, 2 I'm aware of, 1 I casually discovered yesterday:
1- the naming of the files and the segments inside seems to be not compliant and don't match
2- it seems that libs in EXTRA_LIBS are loaded in inverse order and it may create problems at startup.


I was able to succesfully create a project using this .pro file, following Przemek post and after some tries (I remembered I had a copy on a pc in office)

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = T02
TEMPLATE = app

INCLUDEPATH += C:\android\hb.android\include

SOURCES += main.cpp

HEADERS  +=

FORMS    += mainwindow.ui

CONFIG += mobility
MOBILITY = 

LIBS += -LC:\android\hb.android\lib -Lc:\cvs\myapp -lmyapp -Wl,--start-group -lhbrdd -lgttrm -lhbrtl -lhbcommon -lrddntx -lrddfpt -lrddnsx -lhbsix -lhbgt -lhbmacro -lhbvm -lhbvmmt -lgtqtc -Wl,--end-group



As you can see, harbour app (myapp) is linked as a library. c:\android\hb.android is the home of the cross-compiled version of harbour.

main.cpp is a simple:

#include "hbapi.h"
#include "hbapigt.h"
#include "hbvm.h"
#include "hbgtcore.h"

HB_GT_REQUEST( QTC )
HB_FUNC_TRANSLATE( request_MAIN, MAIN )

int main(int argc, char *argv[])
{
   hb_cmdargInit( argc, argv );
   hb_gtSetDefault( "GTQTC" );
   hb_vmInit( HB_TRUE );
   return hb_vmQuit();
}



Hope others can share their experience.

Francesco



--
You received this message because you are subscribed to the Google Groups "Harbour Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-deve...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Pritpal Bedi

unread,
Mar 27, 2014, 6:21:41 PM3/27/14
to harbou...@googlegroups.com
Hi


LIBS += -LC:\android\hb.android\lib -Lc:\cvs\myapp -lmyapp -Wl,--start-group -lhbrdd -lgttrm -lhbrtl -lhbcommon -lrddntx -lrddfpt -lrddnsx -lhbsix -lhbgt -lhbmacro -lhbvm -lhbvmmt -lgtqtc -Wl,--end-group

Thanks for pointing to correct way of this usage. Now I can embed whole Harbour inside .apk.

Before posting further queries, how GTQTC is compiled with Android NDK  as rest of the Harbour ?
I get many errors.


Pritpal Bedi 

Pritpal Bedi

unread,
Mar 29, 2014, 1:20:56 AM3/29/14
to harbou...@googlegroups.com
Hi

GTQTC produces this error when built with  Android NDK:



hbmk2[hbcomm]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbcomm.so to C:\hb.android\lib\libhbcomm.so failed with 5.
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbcairo/hbcairo.hbp @hbpost
hbmk2[hbcairo]: Exit code: 10: dependency missing or disabled
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbbz2/hbbz2.hbp @hbpost
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc -hbdyn hbbz2/hbbz2.hbp @hbpost hbbz2/hbbz2.hbc
hbmk2[hbbz2]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbbz2.so to libhbbz2.so.3.2.0
hbmk2[hbbz2]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbbz2.so.3.2 to libhbbz2.so.3.2.0
hbmk2[hbbz2]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbbz2.so.3.2 to C:\hb.android\lib\libhbbz2.so.3.2 failed with 5.
hbmk2[hbbz2]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbbz2.so to C:\hb.android\lib\libhbbz2.so failed with 5.
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbblink/hbblink.hbp @hbpost
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc -hbdyn hbblink/hbblink.hbp @hbpost hbblink/hbblink.hbc
hbmk2[hbblink]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbblink.so to libhbblink.so.3.2.0
hbmk2[hbblink]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbblink.so.3.2 to libhbblink.so.3.2.0
hbmk2[hbblink]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbblink.so.3.2 to C:\hb.android\lib\libhbblink.so.3.2 failed with 5.
hbmk2[hbblink]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbblink.so to C:\hb.android\lib\libhbblink.so failed with 5.
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbblat/hbblat.hbp @hbpost
hbmk2[hbblat]: Exit code: 50: stop requested
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbamf/hbamf.hbp @hbpost
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc -hbdyn hbamf/hbamf.hbp @hbpost hbamf/hbamf.hbc
hbmk2[hbamf]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbamf.so to libhbamf.so.3.2.0
hbmk2[hbamf]: Error: Failed creating symbolic link ..\bin\android\gccarm\libhbamf.so.3.2 to libhbamf.so.3.2.0
hbmk2[hbamf]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbamf.so.3.2 to C:\hb.android\lib\libhbamf.so.3.2 failed with 5.
hbmk2[hbamf]: Warning: Copying symbolic link ..\bin\android\gccarm\libhbamf.so to C:\hb.android\lib\libhbamf.so failed with 5.
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc gtwvg/gtwvg.hbp @hbpost
hbmk2[gtwvg]: Exit code: 50: stop requested
C:\harbour\bin\win\mingw\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc gtqtc/gtqtc.hbp @hbpost
In file included from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qnamespace.h:45:0,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qobjectdefs.h:49,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qobject.h:48,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qthread.h:45,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/QThread:1,
                 from ..\..\..\..\..\contrib\gtqtc\gtqtc.h:55,
                 from ..\..\..\..\..\contrib\gtqtc\gtqtc1.cpp:50:
C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qglobal.h:82:21: fatal error: algorithm: No such file or directory
 #include <algorithm>
                     ^
compilation terminated.
In file included from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qnamespace.h:45:0,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qobjectdefs.h:49,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qobject.h:48,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qthread.h:45,
                 from C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/QThread:1,
                 from ..\..\..\..\..\lib\android\gccarm\.hbmk\gtqtc\../../../../../contrib/gtqtc/gtqtc.h:55,
                 from ..\..\..\..\..\lib\android\gccarm\.hbmk\gtqtc\moc_gtqtc.cpp:9:
C:\qt\Qt5.3.0\5.3\android_armv7\include/QtCore/qglobal.h:82:21: fatal error: algorithm: No such file or directory
 #include <algorithm>
                     ^
compilation terminated.
hbmk2[gtqtc]: Error: Running C/C++ compiler. 1
hbmk2[gtqtc]: Exit code: 6: failed in compilation (Harbour, C compiler, Resource compiler)
! Finished package build and install...
win-make[1]: *** [install] Error 6
win-make: *** [contrib.inst] Error 2





Further looking down the NDK installation, file <algorithm>  is found here :

 Volume in drive C is Windows7_OS
 Volume Serial Number is EA29-4740


 Directory of C:\qt-android\ndk\sources\cxx-stl\gnu-libstdc++\4.8\include

07/10/2013  07:52 PM             2,518 algorithm
               1 File(s)          2,518 bytes

 Directory of C:\qt-android\ndk\sources\cxx-stl\gnu-libstdc++\4.8\include\ext

07/10/2013  07:52 PM            19,290 algorithm
               1 File(s)         19,290 bytes

 Directory of C:\qt-android\ndk\sources\cxx-stl\gnu-libstdc++\4.8\include\parallel

07/10/2013  07:52 PM             1,381 algorithm
               1 File(s)          1,381 bytes



So the question is : how to specify this as include path ?
I tried this as : HB_USER_CFLAGS=-IC:\qt-android\ndk\sources\cxx-stl\gnu-libstdc++\4.8\include


but then it leads to anther round of unresolved defines. I know this is not the solution.
Anybody to help ?


Pritpal Bedi
a student of software analysis & concepts

Francesco Perillo

unread,
Mar 29, 2014, 3:41:08 AM3/29/14
to harbou...@googlegroups.com

Oh use, I remember now. There are 2 or 3 include dirs to are.

--

Maurizio la Cecilia

unread,
Mar 29, 2014, 2:38:21 PM3/29/14
to harbou...@googlegroups.com
Hi Pritpal,
I just tried with my script and all worked fine.
Ther'is:

@echo off

set QTVER=5.2.1

set QTROOT=C:\Qt\Qt%QTVER%\%QTVER%

set MINGWROOT=%QTROOT%\..\Tools\mingw48_32
set HB_WITH_QT=%QTROOT%\android_armv7\include
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no
SET HB_QTPATH=%QTROOT%\mingw48_32\bin
SET HB_QT_MAJOR_VER=5


set NDK=C:\android-ndk-r9d
set HB_INSTALL_PREFIX=C:\svn\hb\android

set LVL=9

set CPU=arm
set CCOMP=4.8

set PLATFORM=android-%LVL%
set HOST_CPU=windows

set SYSROOT=%NDK%\platforms\%PLATFORM%\arch-%CPU%

if "%CPU%" == "arm"  set TCHAIN=arm-linux-androideabi
if "%CPU%" == "mips" set TCHAIN=mipsel-linux-android
if "%CPU%" == "x86"  set TCHAIN=x86

set HB_PLATFORM=android
set HB_COMPILER=gccarm
set HB_CCPREFIX=%NDK%\toolchains\%TCHAIN%-%CCOMP%\prebuilt\%HOST_CPU%\bin\%TCHAIN%-

set HB_BUILD_3RDEXT=no
set HB_BUILD_DYN=no
set HB_BUILD_CONTRIB_DYN=no

set HB_USER_CFLAGS=%HB_USER_CFLAGS% --sysroot=%SYSROOT% -I%NDK%\sources\cxx-stl\gnu-libstdc++\4.8\include -I%NDK%\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include -I%NDK%\platforms\android-9\arch-arm\usr\include
set HB_USER_DFLAGS=--sysroot=%SYSROOT%
set HB_USER_LDFLAGS=--sysroot=%SYSROOT% -lm

set HBSOURCE=c:\hb

set path=%MINGWROOT%\bin;%HBSOURCE%\bin\win\mingw

cd %HBSOURCE%

if not "%1" == "clean" goto skip_clean
   win-make -j12 %1
   shift
:skip_clean
win-make install -j12 %1 %2 %3 %4 %5 %6 %7 %8 %9 > ..\%PLATFORM%.log 2>&1

set HBMK2A=%HB_INSTALL_PREFIX%\bin\hbmk2a.bat

echo @echo off> %HBMK2A%
echo.>> %HBMK2A%
echo set SYSROOT=%NDK%\platforms\%PLATFORM%\arch-%CPU%>> %HBMK2A%
echo.>> %HBMK2A%
echo.>> %HBMK2A%
echo set HB_PLATFORM=%HB_PLATFORM%>> %HBMK2A%
echo set HB_COMPILER=%HB_COMPILER%>> %HBMK2A%
echo set HB_CCPREFIX=%HB_CCPREFIX%>> %HBMK2A%
echo set HB_INSTALL_PREFIX=%HB_INSTALL_PREFIX%>> %HBMK2A%
echo.>> %HBMK2A%
echo set HB_USER_CFLAGS=%HB_USER_CFLAGS%>> %HBMK2A%
echo set HB_USER_DFLAGS=%HB_USER_DFLAGS%>> %HBMK2A%
echo set HB_USER_LDFLAGS=%HB_USER_LDFLAGS%>> %HBMK2A%
echo.>> %HBMK2A%
echo hbmk2 -plat=android -lang=en %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9>> %HBMK2A%

cd ..

 


--

Pritpal Bedi

unread,
Mar 29, 2014, 4:59:43 PM3/29/14
to harbou...@googlegroups.com
Thanks Maurizio

set MINGWROOT=%QTROOT%\..\Tools\mingw48_32
set HB_WITH_QT=%QTROOT%\android_armv7\include
SET HB_QTPATH=%QTROOT%\mingw48_32\bin
SET HB_QT_MAJOR_VER=5


Slight change, and works, and is logical:

SET HB_QTPATH=%QTROOT%\mingw48_32\bin  =>  SET HB_QTPATH=%QTROOT%\android_armv7 \bin


Thnaks a lot. This also compiled QtContribs.

And below is the screen shot of qtcontribs\hbqt\tests\testres.hbp visible in Android Emulator.
I am excited.


Thank you Przemek, this is another chapter in HbQtContribs.



Regards
Pritpal Bedi



Pritpal Bedi

unread,
Mar 30, 2014, 12:59:57 AM3/30/14
to harbou...@googlegroups.com
Hi Again

This time with real-time-in-production Vouch client for Android.
Originally done with pure Qt and Qt Creator.

This is the just compiled .ui implementation without any functionality, 
a bare-bone, just to show the vouchmain(window).ui
The Main() looks like this :


#include "hbqtgui.ch"

FUNCTION Main()
   LOCAL oWnd 
   LOCAL oRes

   oRes := QResource()
   oRes:registerResource_1( HBQTRES_VOUCH() )

   oWnd := hbqtui_vouchmain()

   oWnd:btnMain_1:hide()

   oWnd:connect( QEvent_Resize, {|| oWnd:setGeometry( QApplication():desktop():availableGeometry() ) } )
   oWnd:show()
   
   QApplication():exec()
   RETURN NIL 


 

Pritpal Bedi
a student of software analysis & concepts




Massimo Belgrano

unread,
Mar 30, 2014, 5:59:11 AM3/30/14
to Harbour Project Main Developer List.
Nice!
Can you post your final script?


--
You received this message because you are subscribed to the Google Groups "Harbour Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-deve...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Massimo Belgrano
Delta Informatica S.r.l. (Cliccami per scoprire 

Pritpal Bedi

unread,
Apr 1, 2014, 12:56:20 PM4/1/14
to harbou...@googlegroups.com
Hi


Can you post your final script?


Though, almost all the needed info is there in these messages,
still I will publish a detailed paper this weekend.


Pritpal Bedi 

Massimo Belgrano

unread,
Apr 1, 2014, 1:00:56 PM4/1/14
to Harbour Project Main Developer List.
Thanks and sorry for my repetead post


--
You received this message because you are subscribed to the Google Groups "Harbour Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-deve...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages