Code: Select all
#include "hmg.ch"
REQUEST HB_GT_WIN_DEFAULT
*----------------------------------------------------------------------------------*
Function Main
*----------------------------------------------------------------------------------*
DEFINE WINDOW startCons AT 0 , 0 WIDTH 0 HEIGHT 0 TITLE "" MAIN;
ON INIT Console();
NOSHOW;
NOMINIMIZE;
NOMAXIMIZE;
NOSIZE;
NOSYSMENU;
ICON Nil;
BACKCOLOR Nil;
NOCAPTION
END WINDOW
ACTIVATE WINDOW startCons
Return Nil
**************************** MAIN *****************************
Procedure Console
Public cons_hwnd := GETCONSOLEWINDOW()
SETCONSOLETITLE ( "New console title" )
SETMODE(25,80)
@0,0 CLEA
DO WHILE .T.
@2,2 SAY 'PRESS F10 TO CALL FORM 1'
@4,2 SAY 'PRESS F11 TO HIDE CONSOLE AND CALL FORM 1'
@6,2 SAY 'PRESS ESC TO EXIT'
INKEY(0)
IF LASTKEY()=27
QUIT
ENDIF
IF LASTKEY()=-9
Form1()
SetForegroundWindow(cons_hwnd)
ENDIF
IF LASTKEY()=-40
HideConsole(cons_hwnd)
Form1()
ShowConsole(cons_hwnd)
ENDIF
KEYBOARD ""
ENDDO
RETURN
**********************************************************
FUNCTION Form1()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 800 HEIGHT 600 ;
TITLE 'FORM 1'
ON KEY Escape ACTION ThisWindow.Release
DEFINE TEXTBOX Text_1
ROW 50
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE "hello!"
END TEXTBOX
DEFINE TEXTBOX Text_2
ROW 90
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
NUMERIC .T.
VALUE 100
END TEXTBOX
DEFINE TEXTBOX Text_3
ROW 130
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
DATE .T.
VALUE ctod('01/01/01')
END TEXTBOX
DEFINE LABEL Label_1
ROW 50
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_1"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_2
ROW 90
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_2"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_3
ROW 130
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_3"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE FRAME Frame_1
ROW 10
COL 30
WIDTH 310
HEIGHT 170
FONTNAME "Arial"
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
CAPTION "Frame_1"
BACKCOLOR NIL
FONTCOLOR NIL
OPAQUE .T.
END FRAME
DEFINE FRAME Frame_2
ROW 190
COL 30
WIDTH 310
HEIGHT 170
FONTNAME "Arial"
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
CAPTION "Frame_2"
BACKCOLOR NIL
FONTCOLOR NIL
OPAQUE .T.
END FRAME
DEFINE TEXTBOX Text_4
ROW 230
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE ""
END TEXTBOX
DEFINE TEXTBOX Text_5
ROW 270
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
NUMERIC .T.
VALUE Nil
END TEXTBOX
DEFINE TEXTBOX Text_6
ROW 310
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE ""
END TEXTBOX
DEFINE LABEL Label_4
ROW 230
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_4"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_5
ROW 270
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_5"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_6
ROW 310
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_6"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
END WINDOW
SetForegroundWindow ( Form_1.Handle )
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
RETURN
#pragma BEGINDUMP
#include "hbapi.h"
#include "hbapiitm.h"
#include <windows.h>
// doesn't work with win32 function GetConsoleWindow()
HWND GetConWin()
{
HWND hwnd;
AllocConsole();
hwnd = FindWindowA("ConsoleWindowClass",NULL);
return hwnd;
}
HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl((long) GetConWin() );
}
HB_FUNC(HIDECONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
h = GetConWin();
ShowWindow(h,SW_HIDE); // SW_HIDE
}
HB_FUNC(SHOWCONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
h = GetConWin();
ShowWindow(h,SW_SHOW); // because 1'st time console stays minimized
ShowWindow(h,SW_RESTORE); //SW_SHOW
SetFocus(h);
SetForegroundWindow(h);
}
HB_FUNC(SETCONSOLETITLE)
{ char * szTitle=hb_parc(1);
SetConsoleTitle(szTitle);
}
#pragma ENDDUMP
]]>Code: Select all
#include "hmg.ch"
REQUEST HB_GT_WIN_DEFAULT
*----------------------------------------------------------------------------------*
Function Main
*----------------------------------------------------------------------------------*
DEFINE WINDOW startCons AT 0 , 0 WIDTH 0 HEIGHT 0 TITLE "" MAIN;
ON INIT Console();
NOSHOW;
NOMINIMIZE;
NOMAXIMIZE;
NOSIZE;
NOSYSMENU;
ICON Nil;
BACKCOLOR Nil;
NOCAPTION
END WINDOW
ACTIVATE WINDOW startCons
Return Nil
**************************** MAIN *****************************
Procedure Console
Public cons_hwnd := GETCONSOLEWINDOW()
SETCONSOLETITLE ( "New console title" )
SETMODE(25,80)
@0,0 CLEA
DO WHILE .T.
@2,2 SAY 'PRESS F10 TO CALL FORM 1'
@4,2 SAY 'PRESS F11 TO HIDE CONSOLE AND CALL FORM 1'
@6,2 SAY 'PRESS ESC TO EXIT'
INKEY(0)
IF LASTKEY()=27
QUIT
ENDIF
IF LASTKEY()=-9
Form1()
SetForegroundWindow(cons_hwnd)
ENDIF
IF LASTKEY()=-40
HideConsole(cons_hwnd)
Form1()
ShowConsole(cons_hwnd)
ENDIF
KEYBOARD ""
ENDDO
RETURN
**********************************************************
FUNCTION Form1()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 800 HEIGHT 600 ;
TITLE 'FORM 1'
ON KEY Escape ACTION ThisWindow.Release
DEFINE TEXTBOX Text_1
ROW 50
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE "hello!"
END TEXTBOX
DEFINE TEXTBOX Text_2
ROW 90
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
NUMERIC .T.
VALUE 100
END TEXTBOX
DEFINE TEXTBOX Text_3
ROW 130
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
DATE .T.
VALUE ctod('01/01/01')
END TEXTBOX
DEFINE LABEL Label_1
ROW 50
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_1"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_2
ROW 90
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_2"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_3
ROW 130
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_3"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE FRAME Frame_1
ROW 10
COL 30
WIDTH 310
HEIGHT 170
FONTNAME "Arial"
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
CAPTION "Frame_1"
BACKCOLOR NIL
FONTCOLOR NIL
OPAQUE .T.
END FRAME
DEFINE FRAME Frame_2
ROW 190
COL 30
WIDTH 310
HEIGHT 170
FONTNAME "Arial"
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
CAPTION "Frame_2"
BACKCOLOR NIL
FONTCOLOR NIL
OPAQUE .T.
END FRAME
DEFINE TEXTBOX Text_4
ROW 230
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE ""
END TEXTBOX
DEFINE TEXTBOX Text_5
ROW 270
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
NUMERIC .T.
VALUE Nil
END TEXTBOX
DEFINE TEXTBOX Text_6
ROW 310
COL 190
WIDTH 120
HEIGHT 24
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONENTER Nil
HELPID Nil
TABSTOP .T.
VISIBLE .T.
READONLY .F.
RIGHTALIGN .F.
BACKCOLOR NIL
FONTCOLOR NIL
INPUTMASK Nil
FORMAT Nil
VALUE ""
END TEXTBOX
DEFINE LABEL Label_4
ROW 230
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_4"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_5
ROW 270
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_5"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
DEFINE LABEL Label_6
ROW 310
COL 60
WIDTH 120
HEIGHT 24
VALUE "Label_6"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR NIL
FONTCOLOR NIL
END LABEL
END WINDOW
SetForegroundWindow ( Form_1.Handle )
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
RETURN
#pragma BEGINDUMP
#include "hbapi.h"
#include "hbapiitm.h"
#include <windows.h>
// doesn't work with win32 function GetConsoleWindow()
HWND GetConWin()
{
HWND hwnd;
AllocConsole();
hwnd = FindWindowA("ConsoleWindowClass",NULL);
return hwnd;
}
HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl((long) GetConWin() );
}
HB_FUNC(HIDECONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
h = GetConWin();
ShowWindow(h,SW_HIDE); // SW_HIDE
}
HB_FUNC(SHOWCONSOLE )
{
long h = hb_parnl(1);
if (h==NULL)
h = GetConWin();
ShowWindow(h,SW_SHOW); // because 1'st time console stays minimized
ShowWindow(h,SW_RESTORE); //SW_SHOW
SetFocus(h);
SetForegroundWindow(h);
}
HB_FUNC(SETCONSOLETITLE)
{ char * szTitle=hb_parc(1);
SetConsoleTitle(szTitle);
}
#pragma ENDDUMP
]]>Code: Select all
p_p := __pp_Init()
Command_s := "SET MARGIN TO"
Preprocessed_s := __pp_Process( p_p, Command_s )
Code: Select all
Set( _SET_MARGIN, 0 )
Code: Select all
p_p := __pp_Init()
Command_s := "SET MARGIN TO"
Preprocessed_s := __pp_Process( p_p, Command_s )
Code: Select all
Set( _SET_MARGIN, 0 )
You can look at the following working example:REQUEST __pp_StdRules
Code: Select all
REQUEST HB_GT_WIN_DEFAULT
REQUEST __pp_StdRules
PROCEDURE Main()
LOCAL cString
LOCAL pPP := __pp_Init()
CLS
? "Testing Harbour run-time preprocessing"
?
? cString := "@ 10, 10 SAY 'Hello!'"
? __pp_Process( pPP, cString )
?
? cString := "? 'Hello mom'"
? __pp_Process( pPP, cString )
?
? cString := "SET MARGIN TO Something"
? __pp_Process( pPP, cString )
?
WAIT
RETURN
Attachments
You can look at the following working example:REQUEST __pp_StdRules
Code: Select all
REQUEST HB_GT_WIN_DEFAULT
REQUEST __pp_StdRules
PROCEDURE Main()
LOCAL cString
LOCAL pPP := __pp_Init()
CLS
? "Testing Harbour run-time preprocessing"
?
? cString := "@ 10, 10 SAY 'Hello!'"
? __pp_Process( pPP, cString )
?
? cString := "? 'Hello mom'"
? __pp_Process( pPP, cString )
?
? cString := "SET MARGIN TO Something"
? __pp_Process( pPP, cString )
?
WAIT
RETURN
Attachments
Code: Select all
Function GetSystemClipboard()
Local ClipBoard_s := ""
ClipBoard_s := System.Clipboard
Return ClipBoard_s
Code: Select all
#INCLUDE "i_pseudofunc.CH"
#include "FILEIO.CH"
#INCLUDE "COMMON.CH"
#INCLUDE "directry.ch"
#Include "hbinkey.ch"
#Include "inkey.ch"
#INCLUDE "hbgtinfo.ch"
#include "inkey.ch"
#include "set.ch"
Code: Select all
Function GetSystemClipboard()
Local ClipBoard_s := ""
ClipBoard_s := System.Clipboard
Return ClipBoard_s
Code: Select all
#INCLUDE "i_pseudofunc.CH"
#include "FILEIO.CH"
#INCLUDE "COMMON.CH"
#INCLUDE "directry.ch"
#Include "hbinkey.ch"
#Include "inkey.ch"
#INCLUDE "hbgtinfo.ch"
#include "inkey.ch"
#include "set.ch"
]]>
]]>
Code: Select all
#include "hmg.ch"
REQUEST HB_MEMIO
Function Main
Local aRows [20] [4]
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 690 ;
HEIGHT 400 ;
TITLE 'Changing the height of a grid row.' ;
MAIN
aRows [1] := {113.12,date(),1,1 , .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [2] := {123.12,date(),2,2 , .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [3] := {133.12,date(),3,3, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [4] := {143.12,date(),1,4, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [5] := {153.12,date(),2,5, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [6] := {163.12,date(),3,6, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [7] := {173.12,date(),1,7, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [8] := {183.12,date(),2,8, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [9] := {193.12,date(),3,9, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [10] := {113.12,date(),1,10, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [11] := {123.12,date(),2,11, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [12] := {133.12,date(),3,12, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [13] := {143.12,date(),1,13, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [14] := {153.12,date(),2,14, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [15] := {163.12,date(),3,15, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [16] := {173.12,date(),1,16, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [17] := {183.12,date(),2,17, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [18] := {193.12,date(),3,18, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [19] := {113.12,date(),1,19, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [20] := {123.12,date(),2,20, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
@ 10,60 GRID Grid_1 ;
WIDTH 620 ;
HEIGHT 330 ;
HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5', 'Column TXT'} ;
WIDTHS {140,140,140,140,140, 100} ;
ITEMS aRows ;
EDIT ON CHANGE playbeep() ;
COLUMNCONTROLS { {'TEXTBOX','NUMERIC','$ 999,999.99'} , {'DATEPICKER','DROPDOWN'} , {'COMBOBOX',{'One','Two','Three'}} , { 'SPINNER' , 1 , 20 } , { 'CHECKBOX' , 'Yes' , 'No' }, Nil } ;
CELLNAVIGATION
@ 10,10 SLIDER Slider_1 ;
RANGE 1,10 ;
VALUE 1 ;
TOOLTIP "Grid Row Height" ;
VERTICAL ;
ON CHANGE { || ( SetGridRowHeight ( "Form_1", "Grid_1", Form_1.Slider_1.Value * 12 ), Form_1.RowHeight_label.Value := Str( Form_1.Slider_1.Value * 12, 3 ) ) }
@ 130, 10 LABEL RowHeight_label VALUE Str( Form_1.Slider_1.Value * 12, 3 ) WIDTH 45
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
****************
Function SetGridRowHeight ( cFormName, cGridName, nHeight )
Local cDummyPNG := "mem:__Dummy_" + cFormName + "_" + cGridName + ".png"
Local hBitmap := BT_BitmapCreateNew (1, nHeight, { 255, 255, 255 } )
Local Ret := BT_BitmapSaveFile (hBitmap, cDummyPNG, BT_FILEFORMAT_PNG)
BT_BitmapRelease ( hBitmap )
IF Ret
SetProperty ( cFormName, cGridName, "Image", .T., { cDummyPNG } )
ENDIF
hb_vfErase( cDummyPNG )
RETURN Ret
Code: Select all
#include "hmg.ch"
REQUEST HB_MEMIO
Function Main
Local aRows [20] [4]
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 690 ;
HEIGHT 400 ;
TITLE 'Changing the height of a grid row.' ;
MAIN
aRows [1] := {113.12,date(),1,1 , .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [2] := {123.12,date(),2,2 , .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [3] := {133.12,date(),3,3, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [4] := {143.12,date(),1,4, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [5] := {153.12,date(),2,5, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [6] := {163.12,date(),3,6, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [7] := {173.12,date(),1,7, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [8] := {183.12,date(),2,8, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [9] := {193.12,date(),3,9, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [10] := {113.12,date(),1,10, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [11] := {123.12,date(),2,11, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [12] := {133.12,date(),3,12, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [13] := {143.12,date(),1,13, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [14] := {153.12,date(),2,14, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [15] := {163.12,date(),3,15, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [16] := {173.12,date(),1,16, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [17] := {183.12,date(),2,17, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [18] := {193.12,date(),3,18, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [19] := {113.12,date(),1,19, .t., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
aRows [20] := {123.12,date(),2,20, .f., "1st line" + CRLF + "2nd line" + CRLF + "3rd line" }
@ 10,60 GRID Grid_1 ;
WIDTH 620 ;
HEIGHT 330 ;
HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5', 'Column TXT'} ;
WIDTHS {140,140,140,140,140, 100} ;
ITEMS aRows ;
EDIT ON CHANGE playbeep() ;
COLUMNCONTROLS { {'TEXTBOX','NUMERIC','$ 999,999.99'} , {'DATEPICKER','DROPDOWN'} , {'COMBOBOX',{'One','Two','Three'}} , { 'SPINNER' , 1 , 20 } , { 'CHECKBOX' , 'Yes' , 'No' }, Nil } ;
CELLNAVIGATION
@ 10,10 SLIDER Slider_1 ;
RANGE 1,10 ;
VALUE 1 ;
TOOLTIP "Grid Row Height" ;
VERTICAL ;
ON CHANGE { || ( SetGridRowHeight ( "Form_1", "Grid_1", Form_1.Slider_1.Value * 12 ), Form_1.RowHeight_label.Value := Str( Form_1.Slider_1.Value * 12, 3 ) ) }
@ 130, 10 LABEL RowHeight_label VALUE Str( Form_1.Slider_1.Value * 12, 3 ) WIDTH 45
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
****************
Function SetGridRowHeight ( cFormName, cGridName, nHeight )
Local cDummyPNG := "mem:__Dummy_" + cFormName + "_" + cGridName + ".png"
Local hBitmap := BT_BitmapCreateNew (1, nHeight, { 255, 255, 255 } )
Local Ret := BT_BitmapSaveFile (hBitmap, cDummyPNG, BT_FILEFORMAT_PNG)
BT_BitmapRelease ( hBitmap )
IF Ret
SetProperty ( cFormName, cGridName, "Image", .T., { cDummyPNG } )
ENDIF
hb_vfErase( cDummyPNG )
RETURN Ret
]]>The GCC 14 compiler code was branched from the main Git branch with release preparations for GCC 14 underway. A status report was just published outlining release plans for getting GCC 14.1 stable out around 7 May.
With the GCC 14 code now being branched, GCC 15 is in development on the mainline Git code. A GCC 14.1 release candidate should be out next week while the hope is to release GCC 14.1 stable around 7 May. In today's status report they have cleared all the highest priority "P1" regressions while now are up to 606 P2 regressions and 57 P3 regressions.
Long story short, GCC 14.1 stable should be out by mid-May.
]]>The GCC 14 compiler code was branched from the main Git branch with release preparations for GCC 14 underway. A status report was just published outlining release plans for getting GCC 14.1 stable out around 7 May.
With the GCC 14 code now being branched, GCC 15 is in development on the mainline Git code. A GCC 14.1 release candidate should be out next week while the hope is to release GCC 14.1 stable around 7 May. In today's status report they have cleared all the highest priority "P1" regressions while now are up to 606 P2 regressions and 57 P3 regressions.
Long story short, GCC 14.1 stable should be out by mid-May.
]]>May 7, 2024
The GCC developers are pleased to announce the release of GCC 14.1.
This release is a major release, containing new features (as well as many other improvements) relative to GCC 13.x.
Release History
GCC 14.1
May 7, 2024
References and Acknowledgements
GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection.
The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as well as test results to GCC. This amazing group of volunteers is what makes GCC successful.
]]>May 7, 2024
The GCC developers are pleased to announce the release of GCC 14.1.
This release is a major release, containing new features (as well as many other improvements) relative to GCC 13.x.
Release History
GCC 14.1
May 7, 2024
References and Acknowledgements
GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection.
The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as well as test results to GCC. This amazing group of volunteers is what makes GCC successful.
Code: Select all
2024-05-08 16:38:30 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) MinGW GNU C 14.1 (64-bit) x86-64
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.02
[ T004: x := S_C ]..............................................0.02
[ T005: x := S_N ]..............................................0.02
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.02
[ T008: x := M->M_N ]...........................................0.02
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.02
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.05
[ T017: x := o[ 2 ] ]...........................................0.05
[ T018: Round( i / 1000, 2 ) ]..................................0.08
[ T019: Str( i / 1000 ) ].......................................0.22
[ T020: Val( s ) ]..............................................0.08
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.11
[ T022: DToS( d - i % 10000 ) ].................................0.13
[ T023: Eval( {|| i % 16 } ) ]..................................0.14
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.08
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.11
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.08
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.13
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.09
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.09
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................0.72
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........0.91
[ T032: x := ValType( x ) + ValType( i ) ]......................0.11
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.25
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.08
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.09
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.09
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.09
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.09
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.09
[ T040: AScan( a, i % 16 ) ]....................................0.11
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................0.94
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.30
[ T043: x := a ]................................................0.02
[ T044: x := {} ]...............................................0.03
[ T045: f0() ]..................................................0.02
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.03
[ T048: f2( c[1...40000] ) ]....................................0.02
[ T049: f2( @c[1...40000] ) ]...................................0.02
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.03
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.09
[ T052: f2( a ) ]...............................................0.03
[ T053: x := f4() ].............................................0.13
[ T054: x := f5() ].............................................0.08
[ T055: x := Space( 16 ) ]......................................0.06
[ T056: f_prv( c ) ]............................................0.09
====================================================================
[ total application time: ].....................................7.09
[ total real time: ]............................................7.11
2024-05-08 16:41:12 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) (MT)+ MinGW GNU C 14.1 (64-bit) x86-64
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.84
[ T002: x := L_N ]..............................................0.28
[ T003: x := L_D ]..............................................0.34
[ T004: x := S_C ]..............................................0.78
[ T005: x := S_N ]..............................................1.27
[ T006: x := S_D ]..............................................1.05
[ T007: x := M->M_C ]...........................................1.33
[ T008: x := M->M_N ]...........................................1.22
[ T009: x := M->M_D ]...........................................1.22
[ T010: x := M->P_C ]...........................................1.27
[ T011: x := M->P_N ]...........................................1.23
[ T012: x := M->P_D ]...........................................1.52
[ T013: x := F_C ]..............................................0.55
[ T014: x := F_N ]..............................................0.70
[ T015: x := F_D ]..............................................0.64
[ T016: x := o:Args ]...........................................6.61
[ T017: x := o[ 2 ] ]...........................................2.05
[ T018: Round( i / 1000, 2 ) ]..................................8.72
[ T019: Str( i / 1000 ) ]......................................12.92
[ T020: Val( s ) ]..............................................8.77
[ T021: Val( a [ i % 16 + 1 ] ) ]..............................11.33
[ T022: DToS( d - i % 10000 ) ]................................11.42
[ T023: Eval( {|| i % 16 } ) ].................................17.70
[ T024: Eval( bc := {|| i % 16 } ) ]............................9.08
[ T025: Eval( {| x | x % 16 }, i ) ]...........................18.73
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................9.08
[ T027: Eval( {| x | f1( x ) }, i ) ]..........................18.61
[ T028: Eval( bc := {| x | f1( x ) }, i ) ]....................10.86
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ].............10.80
[ T030: x := &( "f1(" + Str( i ) + ")" ) ].....................17.77
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ].........20.66
[ T032: x := ValType( x ) + ValType( i ) ].....................11.80
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........12.14
[ T034: x := a[ i % 16 + 1 ] == s ].............................9.22
[ T035: x := a[ i % 16 + 1 ] = s ]..............................9.28
[ T036: x := a[ i % 16 + 1 ] >= s ].............................9.70
[ T037: x := a[ i % 16 + 1 ] <= s ].............................9.89
[ T038: x := a[ i % 16 + 1 ] < s ]..............................9.89
[ T039: x := a[ i % 16 + 1 ] > s ]..............................9.72
[ T040: AScan( a, i % 16 ) ]...................................10.53
[ T041: AScan( a, {| x | x == i % 16 } ) ].....................20.42
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]...17.70
[ T043: x := a ]................................................2.39
[ T044: x := {} ]...............................................8.20
[ T045: f0() ]..................................................3.50
[ T046: f1( i ) ]...............................................4.89
[ T047: f2( c[1...8] ) ]........................................4.61
[ T048: f2( c[1...40000] ) ]....................................4.61
[ T049: f2( @c[1...40000] ) ]...................................4.72
[ T050: f2( @c[1...40000] ), c2 := c ]..........................6.58
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................9.67
[ T052: f2( a ) ]...............................................4.67
[ T053: x := f4() ]............................................10.34
[ T054: x := f5() ].............................................9.50
[ T055: x := Space( 16 ) ]......................................8.02
[ T056: f_prv( c ) ]...........................................10.53
====================================================================
[ total application time: ]....................................22.50
[ total real time: ]............................................6.79
Code: Select all
2024-05-08 16:38:30 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) MinGW GNU C 14.1 (64-bit) x86-64
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.02
[ T004: x := S_C ]..............................................0.02
[ T005: x := S_N ]..............................................0.02
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.02
[ T008: x := M->M_N ]...........................................0.02
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.02
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.05
[ T017: x := o[ 2 ] ]...........................................0.05
[ T018: Round( i / 1000, 2 ) ]..................................0.08
[ T019: Str( i / 1000 ) ].......................................0.22
[ T020: Val( s ) ]..............................................0.08
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.11
[ T022: DToS( d - i % 10000 ) ].................................0.13
[ T023: Eval( {|| i % 16 } ) ]..................................0.14
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.08
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.11
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.08
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.13
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.09
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.09
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................0.72
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........0.91
[ T032: x := ValType( x ) + ValType( i ) ]......................0.11
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.25
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.08
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.09
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.09
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.09
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.09
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.09
[ T040: AScan( a, i % 16 ) ]....................................0.11
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................0.94
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.30
[ T043: x := a ]................................................0.02
[ T044: x := {} ]...............................................0.03
[ T045: f0() ]..................................................0.02
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.03
[ T048: f2( c[1...40000] ) ]....................................0.02
[ T049: f2( @c[1...40000] ) ]...................................0.02
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.03
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.09
[ T052: f2( a ) ]...............................................0.03
[ T053: x := f4() ].............................................0.13
[ T054: x := f5() ].............................................0.08
[ T055: x := Space( 16 ) ]......................................0.06
[ T056: f_prv( c ) ]............................................0.09
====================================================================
[ total application time: ].....................................7.09
[ total real time: ]............................................7.11
2024-05-08 16:41:12 Windows 10 10.0
Harbour 3.2.0dev (r2404101339) (MT)+ MinGW GNU C 14.1 (64-bit) x86-64
THREADS: all->56
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.84
[ T002: x := L_N ]..............................................0.28
[ T003: x := L_D ]..............................................0.34
[ T004: x := S_C ]..............................................0.78
[ T005: x := S_N ]..............................................1.27
[ T006: x := S_D ]..............................................1.05
[ T007: x := M->M_C ]...........................................1.33
[ T008: x := M->M_N ]...........................................1.22
[ T009: x := M->M_D ]...........................................1.22
[ T010: x := M->P_C ]...........................................1.27
[ T011: x := M->P_N ]...........................................1.23
[ T012: x := M->P_D ]...........................................1.52
[ T013: x := F_C ]..............................................0.55
[ T014: x := F_N ]..............................................0.70
[ T015: x := F_D ]..............................................0.64
[ T016: x := o:Args ]...........................................6.61
[ T017: x := o[ 2 ] ]...........................................2.05
[ T018: Round( i / 1000, 2 ) ]..................................8.72
[ T019: Str( i / 1000 ) ]......................................12.92
[ T020: Val( s ) ]..............................................8.77
[ T021: Val( a [ i % 16 + 1 ] ) ]..............................11.33
[ T022: DToS( d - i % 10000 ) ]................................11.42
[ T023: Eval( {|| i % 16 } ) ].................................17.70
[ T024: Eval( bc := {|| i % 16 } ) ]............................9.08
[ T025: Eval( {| x | x % 16 }, i ) ]...........................18.73
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................9.08
[ T027: Eval( {| x | f1( x ) }, i ) ]..........................18.61
[ T028: Eval( bc := {| x | f1( x ) }, i ) ]....................10.86
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ].............10.80
[ T030: x := &( "f1(" + Str( i ) + ")" ) ].....................17.77
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ].........20.66
[ T032: x := ValType( x ) + ValType( i ) ].....................11.80
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ].........12.14
[ T034: x := a[ i % 16 + 1 ] == s ].............................9.22
[ T035: x := a[ i % 16 + 1 ] = s ]..............................9.28
[ T036: x := a[ i % 16 + 1 ] >= s ].............................9.70
[ T037: x := a[ i % 16 + 1 ] <= s ].............................9.89
[ T038: x := a[ i % 16 + 1 ] < s ]..............................9.89
[ T039: x := a[ i % 16 + 1 ] > s ]..............................9.72
[ T040: AScan( a, i % 16 ) ]...................................10.53
[ T041: AScan( a, {| x | x == i % 16 } ) ].....................20.42
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]...17.70
[ T043: x := a ]................................................2.39
[ T044: x := {} ]...............................................8.20
[ T045: f0() ]..................................................3.50
[ T046: f1( i ) ]...............................................4.89
[ T047: f2( c[1...8] ) ]........................................4.61
[ T048: f2( c[1...40000] ) ]....................................4.61
[ T049: f2( @c[1...40000] ) ]...................................4.72
[ T050: f2( @c[1...40000] ), c2 := c ]..........................6.58
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................9.67
[ T052: f2( a ) ]...............................................4.67
[ T053: x := f4() ]............................................10.34
[ T054: x := f5() ].............................................9.50
[ T055: x := Space( 16 ) ]......................................8.02
[ T056: f_prv( c ) ]...........................................10.53
====================================================================
[ total application time: ]....................................22.50
[ total real time: ]............................................6.79
Attachments
Attachments
Attachments
HMG 3.4.4 with MinGW 14.1Attachments
HMG 3.4.4 with MinGW 14.1Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
//1
LETRA='Á'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*1,250 LABEL A VALUE 'ESTO ES LETRA -A- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//2
LETRA='É'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*2,250 LABEL E VALUE 'ESTO ES LETRA -E- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//3
LETRA='Í'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*3,250 LABEL I VALUE 'ESTO ES LETRA -I- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//4
LETRA='Ó'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*4,250 LABEL O VALUE 'ESTO ES LETRA -O- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//5
LETRA='Ú'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*5,250 LABEL U VALUE 'ESTO ES LETRA -U- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
//1
LETRA='Á'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*1,250 LABEL A VALUE 'ESTO ES LETRA -A- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//2
LETRA='É'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*2,250 LABEL E VALUE 'ESTO ES LETRA -E- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//3
LETRA='Í'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*3,250 LABEL I VALUE 'ESTO ES LETRA -I- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//4
LETRA='Ó'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*4,250 LABEL O VALUE 'ESTO ES LETRA -O- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
//5
LETRA='Ú'
IF LETRA=CHR(195) // NUMBER IS SAME, WHY ?
@ 80*5,250 LABEL U VALUE 'ESTO ES LETRA -U- CON TILDE ---> '+LETRA WIDTH 999 HEIGHT 50 FONT "TAHOMA" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE //<----
SET LANGUAGE TO SPANISH //<---
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE //<----
SET LANGUAGE TO SPANISH //<---
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE='ESA MÁSCARA ES OK'
LETRA='A' // VOCAL SIN TILDE A BUSCAR EN LA FRASE Y MOSTRARLA
LETRA2='Ñ' // comodín
LARGO=LEN(FRASE)
X=1
Y=1
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
LABE='L'+ALLTRIM(STR(X)) // LABEL
IF LETT=LETRA
@ 99,X*50 LABEL &LABE VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
IF LETT=CHR(65) // vocal sin tilde
LETRA2='Á' // forsa a buscar con tilde también
ENDIF
IF LETT=CHR(195) .AND. LETRA='A'
@ 99,X*50 LABEL &LABE VALUE LETRA2 WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
X=X+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE='ESA MÁSCARA ES OK'
LETRA='A' // VOCAL SIN TILDE A BUSCAR EN LA FRASE Y MOSTRARLA
LETRA2='Ñ' // comodín
LARGO=LEN(FRASE)
X=1
Y=1
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
LABE='L'+ALLTRIM(STR(X)) // LABEL
IF LETT=LETRA
@ 99,X*50 LABEL &LABE VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
IF LETT=CHR(65) // vocal sin tilde
LETRA2='Á' // forsa a buscar con tilde también
ENDIF
IF LETT=CHR(195) .AND. LETRA='A'
@ 99,X*50 LABEL &LABE VALUE LETRA2 WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
X=X+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE='ESA MÁSCARA CAUSA CÁNCER'
LETRA='A' // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO=LEN(FRASE)
X=1
Y=1
P=0
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
LABE1='L'+ALLTRIM(STR(X)) // LABEL1
LABE2='M'+ALLTRIM(STR(X)) // LABEL2
IF P=0
IF LETT=LETRA
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ELSE // PINTA LAS DEMÁS LETRAS
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ELSE // POSICIÓN DESPUÉS DE LA LETRA CON TILDE
IF LETT=LETRA
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ELSE
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
P=0
ENDIF
IF LETT=CHR(195) .AND. LETRA='A'
P=1
LETRA2='Á'
@ 99,X*50 LABEL &LABE2 VALUE LETRA2 WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
X=X+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE='ESA MÁSCARA CAUSA CÁNCER'
LETRA='A' // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO=LEN(FRASE)
X=1
Y=1
P=0
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
LABE1='L'+ALLTRIM(STR(X)) // LABEL1
LABE2='M'+ALLTRIM(STR(X)) // LABEL2
IF P=0
IF LETT=LETRA
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ELSE // PINTA LAS DEMÁS LETRAS
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ELSE // POSICIÓN DESPUÉS DE LA LETRA CON TILDE
IF LETT=LETRA
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ELSE
@ 99,X*50 LABEL &LABE1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
P=0
ENDIF
IF LETT=CHR(195) .AND. LETRA='A'
P=1
LETRA2='Á'
@ 99,X*50 LABEL &LABE2 VALUE LETRA2 WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
X=X+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE="ESA MÁSCARA CAUSA CÁNCER"
LETRA='A' // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO=LEN(ALLTRIM(FRASE))
X=1
Y=1
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
L1='L'+ALLTRIM(STR(X)) // LABEL PARA MOSTRAR TODAS LAS LETRAS MENOS LA Á (INCLUYE ESPACIOS)
L2='M'+ALLTRIM(STR(X)) // LABEL PARA LLEVAR NUMERACIÓN DE X
L3='N'+ALLTRIM(STR(Y)) // LABEL PARA A CON TILDE
L4='O'+ALLTRIM(STR(Y)) // LABEL PARA LLEVAR NUMERACIÓN A LA PAR CON X
NUMERO = ASC(LETT) // PARA SABER EL # CHR
IF LETT=CHR(195) .AND. LETRA='A' // PINTA LAS Á
LETRA2='Á'
@ 099,Y*50 LABEL &L3 VALUE ALLTRIM(LETRA2) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
@ 200,Y*50 LABEL &L4 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
ELSE
IF LETT='A' .AND. NUMERO<>195 // PINTA LAS A
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR YELLOW BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR YELLOW BACKCOLOR {0,125,250}
ELSE
IF NUMERO=32 // ESPACIO EN BLANCO
@ 099,X*50 LABEL &L1 VALUE '_' WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR BROWN BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR BROWN BACKCOLOR {0,125,250}
ELSE // LAS DEMÁS LETRAS
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ENDIF
ENDIF
X=X+1
Y=Y+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE="ESA MÁSCARA CAUSA CÁNCER"
LETRA='A' // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO=LEN(ALLTRIM(FRASE))
X=1
Y=1
DO WHILE LARGO>0
LETT=SUBSTR(FRASE,X,1) // CADA LETRA
L1='L'+ALLTRIM(STR(X)) // LABEL PARA MOSTRAR TODAS LAS LETRAS MENOS LA Á (INCLUYE ESPACIOS)
L2='M'+ALLTRIM(STR(X)) // LABEL PARA LLEVAR NUMERACIÓN DE X
L3='N'+ALLTRIM(STR(Y)) // LABEL PARA A CON TILDE
L4='O'+ALLTRIM(STR(Y)) // LABEL PARA LLEVAR NUMERACIÓN A LA PAR CON X
NUMERO = ASC(LETT) // PARA SABER EL # CHR
IF LETT=CHR(195) .AND. LETRA='A' // PINTA LAS Á
LETRA2='Á'
@ 099,Y*50 LABEL &L3 VALUE ALLTRIM(LETRA2) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
@ 200,Y*50 LABEL &L4 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
ELSE
IF LETT='A' .AND. NUMERO<>195 // PINTA LAS A
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR YELLOW BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR YELLOW BACKCOLOR {0,125,250}
ELSE
IF NUMERO=32 // ESPACIO EN BLANCO
@ 099,X*50 LABEL &L1 VALUE '_' WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR BROWN BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR BROWN BACKCOLOR {0,125,250}
ELSE // LAS DEMÁS LETRAS
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR WHITE BACKCOLOR {0,125,250}
ENDIF
ENDIF
ENDIF
X=X+1
Y=Y+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE := "ESA MÁSCARA CAUSA CÁNCER"
LETRA := { 'A', 'Á' } // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO := hb_ULen(ALLTRIM(FRASE))
X := 1
Y := 1
DO WHILE LARGO > 0
LETT := hb_USubStr(FRASE,X,1) // CADA LETRA
L1 := 'L'+ALLTRIM(STR(X)) // LABEL PARA MOSTRAR TODAS LAS LETRAS MENOS LA Á (INCLUYE ESPACIOS)
L2 := 'M'+ALLTRIM(STR(X)) // LABEL PARA LLEVAR NUMERACIÓN DE X
DO CASE
CASE ASCAN ( LETRA, LETT ) = 2 //LETT = "Á"
aColor := { 0 , 255 , 0 } //GREEN
CASE ASCAN ( LETRA, LETT ) = 1 //LETT = "A"
aColor := { 255 , 255 , 0 } //YELLOW
CASE LETT = " "
LETT := "_"
aColor := { 128 , 64 , 64 } //BROWN
OTHER
aColor := { 255 , 255 , 255 } //WHITE
ENDCASE
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR aColor BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR aColor BACKCOLOR {0,125,250}
X++
Y++
LARGO--
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
SET CODEPAGE TO UNICODE
SET LANGUAGE TO SPANISH
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE := "ESA MÁSCARA CAUSA CÁNCER"
LETRA := { 'A', 'Á' } // LETRA A BUSCAR EN LA FRASE Y MOSTRARLA
LARGO := hb_ULen(ALLTRIM(FRASE))
X := 1
Y := 1
DO WHILE LARGO > 0
LETT := hb_USubStr(FRASE,X,1) // CADA LETRA
L1 := 'L'+ALLTRIM(STR(X)) // LABEL PARA MOSTRAR TODAS LAS LETRAS MENOS LA Á (INCLUYE ESPACIOS)
L2 := 'M'+ALLTRIM(STR(X)) // LABEL PARA LLEVAR NUMERACIÓN DE X
DO CASE
CASE ASCAN ( LETRA, LETT ) = 2 //LETT = "Á"
aColor := { 0 , 255 , 0 } //GREEN
CASE ASCAN ( LETRA, LETT ) = 1 //LETT = "A"
aColor := { 255 , 255 , 0 } //YELLOW
CASE LETT = " "
LETT := "_"
aColor := { 128 , 64 , 64 } //BROWN
OTHER
aColor := { 255 , 255 , 255 } //WHITE
ENDCASE
@ 099,X*50 LABEL &L1 VALUE LETT WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD FONTCOLOR aColor BACKCOLOR {0,125,250}
@ 200,X*50 LABEL &L2 VALUE STR(X,2,0) WIDTH 99 HEIGHT 70 FONT "TAHOMA" SIZE 20 BOLD FONTCOLOR aColor BACKCOLOR {0,125,250}
X++
Y++
LARGO--
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN
Attachments
Attachments
Attachments
The Address column contains multiline strings.Attachments
The Address column contains multiline strings.Attachments
Attachments
Attachments
Test applicationAttachments
Test applicationCode: Select all
#include "hmg.ch"
#include "TSBrowse.ch"
REQUEST DBFCDX
*----------------------------------------
FUNCTION Main()
*----------------------------------------
LOCAL obrw
LOCAL aFilters := { { .F., "AGE>40" }, { .F., "STATE='NY'" }, { .F., "MARRIED" } }
LOCAL aCheck[ 3 ], n
LOCAL nRow := 40
LOCAL nCol := 40
USE CUSTOMER NEW SHARED VIA "DBFCDX"
DEFINE WINDOW win_1 ;
AT 0, 0 ;
WIDTH 600 HEIGHT 400 ;
MAIN ;
TITLE Alias() + ": Dynamic Filter Test" ;
ICON "lupa.ico" ;
FONT "Arial" ;
SIZE 10 ;
NOMAXIMIZE NOSIZE
FOR n := 1 TO Len( aFilters )
aCheck[ n ] := CreateChk( nRow, nCol, thiswindow.Name, aFilters, n )
this.( aCheck[ n ] ).Cargo := n
this.( aCheck[ n ] ).OnChange := {|| n := this.Cargo, aFilters[ n, 1 ] := ! aFilters[ n, 1 ], ;
SetProperty( 'win_1', "Label_1", "Value", "FILTER : " + ResetFilter( obrw, aFilters ) ) }
nCol += 150
NEXT
@ 80, 40 LABEL Label_1 VALUE "FILTER : " WIDTH 400 HEIGHT 25 CENTERALIGN
DEFINE TBROWSE obrw AT 115, 40 ;
CELLED SELECTOR "pointer.bmp" ;
COLORS CLR_BLACK, CLR_WHITE, CLR_BLACK, { RGB( 231, 242, 255 ), GetSysColor( COLOR_GRADIENTINACTIVECAPTION ) } ;
ALIAS Alias() ;
WIDTH win_1.Width - 70 - GetBorderWidth() HEIGHT 220 ;
ON INIT {| ob | TsbCreate( ob, .T. ) }
END TBROWSE ON END {| ob | TsbCreate( ob, .F. ) }
END WINDOW
ON KEY ESCAPE OF win_1 ACTION win_1.Release()
CENTER WINDOW win_1
ACTIVATE WINDOW win_1
RETURN NIL
*----------------------------------------
STATIC PROCEDURE TsbCreate( obrw, lInit )
*----------------------------------------
LOCAL aFields, oCol
IF lInit
// initial columns
aFields := { "ID", "CITY", "STATE", "MARRIED", "AGE" }
LoadFields( "oBrw", "win_1", .F., aFields )
FOR EACH oCol IN oBrw:aColumns
oCol:cHeading := oCol:cName
NEXT
WITH OBJECT oBrw
:nHeightCell += 4
:nHeightHead := oBrw:nHeightCell - 2
:SetColor( { 5 }, { CLR_WHITE } )
:SetColor( { 6 }, { RGB( 0, 0, 128 ) } )
:SetAppendMode( .F. )
:SetDeleteMode( .T., .F. )
:lNoResetPos := .T.
:lNoMoveCols := .T.
:lNoKeyChar := .T.
:lNoChangeOrd := .T.
:lNoHScroll := .T.
END OBJECT
ELSE
obrw:SetNoHoles()
obrw:SetFocus()
ENDIF
RETURN
*----------------------------------------
STATIC FUNCTION CreateChk( nRow, nCol, oDlg, aFilters, nIndex )
*----------------------------------------
LOCAL cChk := "Check_" + hb_ntos( nIndex )
@ nROW, nCol CheckBox ( cChk ) PARENT ( oDlg ) ;
CAPTION aFilters[ nIndex, 2 ] VALUE aFilters[ nIndex, 1 ] ;
WIDTH 150 HEIGHT 21
RETURN cChk
*----------------------------------------
STATIC FUNCTION ResetFilter( obrw, aFilters )
*----------------------------------------
LOCAL cFilter
LOCAL af := {}
AEval( aFilters, {| a | If( a[ 1 ], AAdd( af, a[ 2 ] ), nil ) } )
cFilter := LB_Array2String( af, " .AND. " )
IF Empty( cFilter )
oBrw:FilterData()
ELSE
oBrw:FilterData( cFilter, , .T. )
ENDIF
RETURN cFilter
Code: Select all
#include "hmg.ch"
#include "TSBrowse.ch"
REQUEST DBFCDX
*----------------------------------------
FUNCTION Main()
*----------------------------------------
LOCAL obrw
LOCAL aFilters := { { .F., "AGE>40" }, { .F., "STATE='NY'" }, { .F., "MARRIED" } }
LOCAL aCheck[ 3 ], n
LOCAL nRow := 40
LOCAL nCol := 40
USE CUSTOMER NEW SHARED VIA "DBFCDX"
DEFINE WINDOW win_1 ;
AT 0, 0 ;
WIDTH 600 HEIGHT 400 ;
MAIN ;
TITLE Alias() + ": Dynamic Filter Test" ;
ICON "lupa.ico" ;
FONT "Arial" ;
SIZE 10 ;
NOMAXIMIZE NOSIZE
FOR n := 1 TO Len( aFilters )
aCheck[ n ] := CreateChk( nRow, nCol, thiswindow.Name, aFilters, n )
this.( aCheck[ n ] ).Cargo := n
this.( aCheck[ n ] ).OnChange := {|| n := this.Cargo, aFilters[ n, 1 ] := ! aFilters[ n, 1 ], ;
SetProperty( 'win_1', "Label_1", "Value", "FILTER : " + ResetFilter( obrw, aFilters ) ) }
nCol += 150
NEXT
@ 80, 40 LABEL Label_1 VALUE "FILTER : " WIDTH 400 HEIGHT 25 CENTERALIGN
DEFINE TBROWSE obrw AT 115, 40 ;
CELLED SELECTOR "pointer.bmp" ;
COLORS CLR_BLACK, CLR_WHITE, CLR_BLACK, { RGB( 231, 242, 255 ), GetSysColor( COLOR_GRADIENTINACTIVECAPTION ) } ;
ALIAS Alias() ;
WIDTH win_1.Width - 70 - GetBorderWidth() HEIGHT 220 ;
ON INIT {| ob | TsbCreate( ob, .T. ) }
END TBROWSE ON END {| ob | TsbCreate( ob, .F. ) }
END WINDOW
ON KEY ESCAPE OF win_1 ACTION win_1.Release()
CENTER WINDOW win_1
ACTIVATE WINDOW win_1
RETURN NIL
*----------------------------------------
STATIC PROCEDURE TsbCreate( obrw, lInit )
*----------------------------------------
LOCAL aFields, oCol
IF lInit
// initial columns
aFields := { "ID", "CITY", "STATE", "MARRIED", "AGE" }
LoadFields( "oBrw", "win_1", .F., aFields )
FOR EACH oCol IN oBrw:aColumns
oCol:cHeading := oCol:cName
NEXT
WITH OBJECT oBrw
:nHeightCell += 4
:nHeightHead := oBrw:nHeightCell - 2
:SetColor( { 5 }, { CLR_WHITE } )
:SetColor( { 6 }, { RGB( 0, 0, 128 ) } )
:SetAppendMode( .F. )
:SetDeleteMode( .T., .F. )
:lNoResetPos := .T.
:lNoMoveCols := .T.
:lNoKeyChar := .T.
:lNoChangeOrd := .T.
:lNoHScroll := .T.
END OBJECT
ELSE
obrw:SetNoHoles()
obrw:SetFocus()
ENDIF
RETURN
*----------------------------------------
STATIC FUNCTION CreateChk( nRow, nCol, oDlg, aFilters, nIndex )
*----------------------------------------
LOCAL cChk := "Check_" + hb_ntos( nIndex )
@ nROW, nCol CheckBox ( cChk ) PARENT ( oDlg ) ;
CAPTION aFilters[ nIndex, 2 ] VALUE aFilters[ nIndex, 1 ] ;
WIDTH 150 HEIGHT 21
RETURN cChk
*----------------------------------------
STATIC FUNCTION ResetFilter( obrw, aFilters )
*----------------------------------------
LOCAL cFilter
LOCAL af := {}
AEval( aFilters, {| a | If( a[ 1 ], AAdd( af, a[ 2 ] ), nil ) } )
cFilter := LB_Array2String( af, " .AND. " )
IF Empty( cFilter )
oBrw:FilterData()
ELSE
oBrw:FilterData( cFilter, , .T. )
ENDIF
RETURN cFilter
Attachments
Attachments
Code: Select all
/* Test Grid Query */
Procedure Main
local aGrid, nGrid
LOCAL aMinMaxInfo := {}, i, nWidth
local aHeaders := {"Sno","Words","Numeric","Factor","Value","Y","Date"}
local aWidths := {50,70,70,50,70,50,80}
local aJustify := {2,0,1,0,0,2,2}
local cWin := "FrmMain"
Set( _SET_DEBUG, .f. )
Set Century ON
Set Date British
DEFINE FONT FontBold FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize + 1 BOLD
aGrid := { { '001', 'One', 100, 4, 400,.t.,Date() },;
{ '002', 'Two', 100, 6, 600,.t.,Date()-10 },;
{ '003', 'Three', 100, 7, 700,.t.,Date()-365 },;
{ '004', 'Four', 100, 5, 500,.f.,Date()-100 },;
{ '005', 'Five', 100, 3, 300,.t.,Date()-50 },;
{ '006', 'Six', 100, 5, 500,.t.,Date()-90 },;
{ '007', 'Seven', 100, 7, 700,.f.,Date()-200 },;
{ '008', 'Eight', 100, 9, 900,.t.,Date()-150 },;
{ '009', 'Nine', 100, 5, 500,.t.,Date()-60 },;
{ '010', 'Ten', 100, 4, 400,.f.,Date()-80 },;
{ '011', 'Eleven',100, 6, 600,.t.,Date()-70 },;
{ '012', 'Twelve',100, 7, 700,.f.,Date()-30 } }
nGrid := 0
AEval(aWidths, {|e| nGrid += e})
define window &cWin at 0,0 width 640 height 480 title "F2 - Query" main
ON KEY ESCAPE OF &cWin Action thisWindow.Release
ON KEY F2 of &cWin Action GridQuery(cWin,"Grid1")
@ 10,10 Grid Grid1 of &cWin autosizewidth nGrid height 400 Headers aHeaders Widths aWidths ;
Items aGrid Value 1 justify aJustify backcolor BROWN fontcolor YELLOW nosortheaders
for i := 1 to getproperty(cWin,"Grid1","ColumnCount")
// Dynamic Header
FrmMain.Grid1.HeaderDYNAMICFONT(i) := {|| 'FontBold' }
FrmMain.Grid1.HeaderDYNAMICBACKCOLOR(i) := {|| BROWN }
FrmMain.Grid1.HeaderDYNAMICFORECOLOR(i) := {|| YELLOW }
nWidth := FrmMain.Grid1.COLUMNWIDTH(i)
AAdd( aMinMaxInfo, { nWidth, nWidth } )
next
FrmMain.Grid1.COLUMNWIDTHLIMITS := aMinMaxInfo
end window
DoMethod(cWin,"Activate")
return
Attachments
Code: Select all
/* Test Grid Query */
Procedure Main
local aGrid, nGrid
LOCAL aMinMaxInfo := {}, i, nWidth
local aHeaders := {"Sno","Words","Numeric","Factor","Value","Y","Date"}
local aWidths := {50,70,70,50,70,50,80}
local aJustify := {2,0,1,0,0,2,2}
local cWin := "FrmMain"
Set( _SET_DEBUG, .f. )
Set Century ON
Set Date British
DEFINE FONT FontBold FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize + 1 BOLD
aGrid := { { '001', 'One', 100, 4, 400,.t.,Date() },;
{ '002', 'Two', 100, 6, 600,.t.,Date()-10 },;
{ '003', 'Three', 100, 7, 700,.t.,Date()-365 },;
{ '004', 'Four', 100, 5, 500,.f.,Date()-100 },;
{ '005', 'Five', 100, 3, 300,.t.,Date()-50 },;
{ '006', 'Six', 100, 5, 500,.t.,Date()-90 },;
{ '007', 'Seven', 100, 7, 700,.f.,Date()-200 },;
{ '008', 'Eight', 100, 9, 900,.t.,Date()-150 },;
{ '009', 'Nine', 100, 5, 500,.t.,Date()-60 },;
{ '010', 'Ten', 100, 4, 400,.f.,Date()-80 },;
{ '011', 'Eleven',100, 6, 600,.t.,Date()-70 },;
{ '012', 'Twelve',100, 7, 700,.f.,Date()-30 } }
nGrid := 0
AEval(aWidths, {|e| nGrid += e})
define window &cWin at 0,0 width 640 height 480 title "F2 - Query" main
ON KEY ESCAPE OF &cWin Action thisWindow.Release
ON KEY F2 of &cWin Action GridQuery(cWin,"Grid1")
@ 10,10 Grid Grid1 of &cWin autosizewidth nGrid height 400 Headers aHeaders Widths aWidths ;
Items aGrid Value 1 justify aJustify backcolor BROWN fontcolor YELLOW nosortheaders
for i := 1 to getproperty(cWin,"Grid1","ColumnCount")
// Dynamic Header
FrmMain.Grid1.HeaderDYNAMICFONT(i) := {|| 'FontBold' }
FrmMain.Grid1.HeaderDYNAMICBACKCOLOR(i) := {|| BROWN }
FrmMain.Grid1.HeaderDYNAMICFORECOLOR(i) := {|| YELLOW }
nWidth := FrmMain.Grid1.COLUMNWIDTH(i)
AAdd( aMinMaxInfo, { nWidth, nWidth } )
next
FrmMain.Grid1.COLUMNWIDTHLIMITS := aMinMaxInfo
end window
DoMethod(cWin,"Activate")
return
Attachments
Attachments
BrowserDb.rar (183.09 KiB)Attachments
BrowserDb.rar (183.09 KiB)Attachments
Attachments
Code: Select all
Components versions:
--------------------
Harbour MiniGUI Extended Edition 24.05 (Release)
Harbour 3.2.0dev (r2405092123)
Harbour Make (hbmk2) 3.2.0dev (r2024-05-09 21:23)
-------------------------------------------------
Code: Select all
Components versions:
--------------------
Harbour MiniGUI Extended Edition 24.05 (Release)
Harbour 3.2.0dev (r2402161723)
Harbour Make (hbmk2) 3.2.0dev (r2024-02-16 17:23)
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
Code: Select all
Components versions:
--------------------
Harbour MiniGUI Extended Edition 24.05 (Release)
Harbour 3.2.0dev (r2405092123)
Harbour Make (hbmk2) 3.2.0dev (r2024-05-09 21:23)
-------------------------------------------------
Code: Select all
Components versions:
--------------------
Harbour MiniGUI Extended Edition 24.05 (Release)
Harbour 3.2.0dev (r2402161723)
Harbour Make (hbmk2) 3.2.0dev (r2024-02-16 17:23)
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.