Clipper On Line • Ver Tópico - GTWVG - ninguém entende o que tem

GTWVG - ninguém entende o que tem

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:15

Vou pegar um resumo do tutorial do Giovanni pra começar.
http://www.elektrosoft.it/tutorials/gtwvg/gtwvg.asp


PROCEDURE Main()

   Wvt_SetGui( .T. )

   SetMode( 25, 80 )
   SetColor( "N/W" )
   CLS

   Wvt_SetTitle( "Giovanni's Window" )

   WAIT

   RETURN


Imagem

FUNCTION Main()

   LOCAL aPaint
   LOCAL cF1, cF2, cF3
   LOCAL GETLIST := {}

   Wvt_SetGui( .T. )

   SetMode( 25, 80 )
   SetColor( "N/W" )
   CLS

   Wvt_SetTitle( "Giovanni's Window" )

   SetColor( "N/W,N/GR*,,,N/W*" )

   cF1 = Space( 30 )
   cF2 = Space( 30 )
   cF3 = Space( 30 )

   aPaint := {}
   AAdd( aPaint, { NIL , { || Wvt_DrawBoxRaised( 6, 8, 14, 57 ) }   , NIL } )
   WvtSetPaint( aPaint )

   @ 08, 10 SAY "Enter field 1  " GET cF1
   @ 10, 10 SAY "Enter field 2  " GET cF2
   @ 12, 10 SAY "Enter field 3  " GET cF3

   READ

   RETURN NIL

FUNCTION Wvt_Paint()

   WvtPaintObjects()

   RETURN NIL


Imagem

PROCEDURE Main()

   LOCAL aPaint

   Wvt_SetGui( .T. )

   SetMode( 25, 80 )
   SetColor( "N/W" )
   CLS

   Wvt_SetTitle( "Giovanni's Window" )

   aPaint := {}
   AAdd( aPaint, { NIL , { || Wvt_DrawImage( 2, 12, 10, 23, "giovanni.jpg" ) }   , NIL } )
   AAdd( aPaint, { NIL , { || Wvt_DrawImage( 2, 45, 18, 67, "giovanni.jpg" ) }   , NIL } )
   WvtSetPaint( aPaint )

   @ 23, 0
   WAIT

   RETURN

FUNCTION Wvt_Paint()

   WvtPaintObjects()

   RETURN NIL


Imagem

PROCEDURE Main()

   LOCAL aPaint

   Wvt_SetGui( .T. )

   SetMode( 25, 80 )
   SetColor( "N/W" )
   CLS

   Wvt_SetTitle( "Giovanni's Window" )

   @ 02, 35 SAY "Hello World" COLOR "G/W"

   aPaint := {}
   
   AAdd( aPaint, { NIL , { || Wvt_SetBrush( 0, rgb( 32,255,100 ) ) }   , NIL } )
   AAdd( aPaint, { NIL , { || Wvt_DrawEllipse( 6, 10, 10, 18 ) }   , NIL } )
   AAdd( aPaint, { NIL , { || Wvt_SetBrush( 0, rgb( 255,255,100 ) ) }   , NIL } )
   AAdd( aPaint, { NIL , { || Wvt_DrawEllipse( 6, 30, 10, 70 ) }   , NIL } )
   WvtSetPaint( aPaint )

   @ 23, 10
   WAIT

   RETURN

FUNCTION rgb( r, g, b )

   RETURN r + ( g * 256 ) + ( b * 256 * 256 )

FUNCTION Wvt_Paint()

   WvtPaintObjects()

   RETURN NIL


Imagem

Gostaram?
Mas tenho uma má notícia... isso faz parte, mas NÃO É GTWVG, trata-se da GTWVT.

Se entrar na pasta da GTWVG, apagar todos os PRGs da GTWVG, o que sobra é isso.
Pra mim isso não tem nada a ver com GTWVG.
Mas os exemplos usam isso.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:20

Lá na pasta de testes, tem o demowvg.

gtwvg.png


É sério.... ISSO NÃO É GTWVG.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:23

Outra tela do demowvg.
É sério... ISSO NÃO É GTWVG

gtwvg2.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:25

Outra tela do demowvg.
É sério... ISSO NÃO É GTWVG.

gtwvg3.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:36

E cadê os exemplos de GTWVG?

Pois é... não tem.

É só olhar os fontes do demo: WVT_isto, WVT_aquilo, WVT_outro.... ISSO É WVT.

Vamos ver as funcões que começam com WVG:

hbmk2 -find wvg
gtwvg.hbc (installed):
   HB_GT_WVG()
   TBrowseWvg()
   Wvg3State()
   WvgActiveXControl()
   WvgBitmap()
   WvgCheckBox()
   WvgComboBox()
   WvgCrt()
   WvgDataRef()
   WvgDialog()
   WvgDrawingArea()
   WvgFont()
   WvgFontDialog()
   WvgHtmlViewer()
   WvgListBox()
   WvgMenu()
   WvgMenuBar()
   WvgMLE()
   WvgPartHandler()
   WvgProgressBar()
   WvgPushButton()
   WvgRadioButton()
   WvgScrollBar()
   WvgSetAppWindow()
   WvgSLE()
   WvgStatic()
   WvgStatusBar()
   WvgStatusBarPanel()
   WvgSysWindow()
   WvgTabPage()
   WvgToolBar()
   WvgToolBarButton()
   WvgTreeView()
   WvgTreeViewItem()
   WvgWindow()
   wvg_AddToolBarButton()
   wvg_AppendMenu()
   wvg_BeginMouseTracking()
   wvg_BoxGet()
   wvg_BoxGroup()
   wvg_BoxGroupRaised()
   wvg_BoxRaised()
   wvg_BoxRecessed()
   wvg_BringWindowToTop()
   wvg_Button_GetCheck()
   wvg_CallWindowProc()
   wvg_CheckDlgButton()
   wvg_CheckMenuItem()
   wvg_CheckRadioButton()
   wvg_ChooseColor()
   wvg_ChooseFont()
   wvg_ChooseFont_GetLogFont()
   wvg_ClearGUIObjects()
   wvg_ClientToScreen()
   wvg_ColorRect()
   wvg_CreateBrush()
   wvg_CreateMenu()
   wvg_CreatePopupMenu()
   wvg_CreateToolTipWindow()
   wvg_CreateWindowEx()
   wvg_DefWindowProc()
   wvg_DeleteMenu()
   wvg_DeleteObject()
   wvg_DelPaint()
   wvg_DestroyMenu()
   wvg_DestroyWindow()
   wvg_DrawImage()
   wvg_DrawMenuBar()
   wvg_DrawText()
   wvg_Ellipse()
   wvg_EnableMenuItem()
   wvg_EnableWindow()
   wvg_FillRect()
   wvg_FindWindow()
   wvg_FontCreate()
   wvg_ForceWindowToTop()
   wvg_GetClientRect()
   wvg_GetCurrentBrush()
   wvg_GetCurrentFont()
   wvg_GetCurrentObject()
   wvg_GetDC()
   wvg_GetDesktopWindow()
   wvg_GetDialogBaseUnits()
   wvg_GetDlgItem()
   wvg_GetDlgItemText()
   wvg_GetFocus()
   wvg_GetMessageText()
   wvg_GetNMHdrInfo()
   wvg_GetNMMouseInfo()
   wvg_GetNMTreeViewInfo()
   wvg_GetPaint()
   wvg_GetStockObject()
   wvg_GetWindowRect()
   wvg_gtInfoEx()
   wvg_HeightToPointSize()
   wvg_hInstance()
   wvg_HIWORD()
   wvg_Image()
   wvg_InsertMenu()
   wvg_InsertPaint()
   wvg_InvalidateRect()
   wvg_IsDlgButtonChecked()
   wvg_IsIconic()
   wvg_IsMenuItemChecked()
   wvg_IsMenuItemEnabled()
   wvg_IsWindow()
   wvg_IsZoomed()
   wvg_Label()
   wvg_LabelEx()
   wvg_LabelEx2()
   wvg_lbGetCurSel()
   wvg_lbGetText()
   wvg_lbSetCurSel()
   wvg_Line()
   wvg_LineEx()
   wvg_LoadIcon()
   wvg_LoadImage()
   wvg_LOWORD()
   wvg_MakeLParam()
   wvg_MessageBox()
   wvg_MoveWindow()
   wvg_n2p()
   wvg_Object()
   wvg_Outline()
   wvg_OutlineEx()
   wvg_Picture()
   wvg_PictureEx()
   wvg_PointSizeToHeight()
   wvg_PostMessage()
   wvg_PrepareBitmapFromFile()
   wvg_PrepareBitmapFromResourceId()
   wvg_PrepareBitmapFromResourceName()
   wvg_PurgePaint()
   wvg_Rectangle()
   wvg_RegisterClass_ByName()
   wvg_ReleaseDC()
   wvg_ReleaseWindowProcBlock()
   wvg_RoundRect()
   wvg_ScreenToClient()
   wvg_SelectObject()
   wvg_SendCBMessage()
   wvg_SendDlgItemMessage()
   wvg_SendEditControlMessage()
   wvg_SendMessage()
   wvg_SendMessageText()
   wvg_SendToolBarMessage()
   wvg_SetBkColor()
   wvg_SetBkMode()
   wvg_SetCurrentBrush()
   wvg_SetDCBrushColor()
   wvg_SetDCPenColor()
   wvg_SetDlgItemText()
   wvg_SetFocus()
   wvg_SetForegroundWindow()
   wvg_SetGObjData()
   wvg_SetGObjState()
   wvg_SetLayeredWindowAttributes()
   wvg_SetMenu()
   wvg_SetMenuItem()
   wvg_SetPaint()
   wvg_SetParent()
   wvg_SetTextColor()
   wvg_SetTimer()
   wvg_SetToolTipText()
   wvg_SetWindowLong()
   wvg_SetWindowPosAndSize()
   wvg_SetWindowPosition()
   wvg_SetWindowPosToBack()
   wvg_SetWindowPosToTop()
   wvg_SetWindowProcBlock()
   wvg_SetWindowSize()
   wvg_SetWindowText()
   wvg_SetWndProc()
   wvg_ShadedRect()
   wvg_ShowWindow()
   wvg_Sleep()
   wvg_StatusBarCreatePanel()
   wvg_StatusBarRefresh()
   wvg_StatusBarSetText()
   wvg_TextBox()
   wvg_TrackPopupMenu()
   wvg_TreeView_AddItem()
   wvg_TreeView_Expand()
   wvg_TreeView_GetSelectionInfo()
   wvg_TreeView_SelectItem()
   wvg_TreeView_SetBkColor()
   wvg_TreeView_SetLineColor()
   wvg_TreeView_SetTextColor()
   wvg_TreeView_ShowExpanded()
   wvg_UpdateWindow()


Quando falo sobre GTWVG é sobre isso, que não existe nos exemplos.
Tudo GUI... controles iguais aos da HMG, HWGUI, etc.

Não tem nada disso nos exemplos, ou está tão misturado com WVT, que nem dá pra ver.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 14:42

Esses controles WVG*, que não tem em exemplo nenhum, TODOS tem como base a wvgWindow()

METHOD WvgWindow:createControl()

   LOCAL hWnd, aPosSz

   ::nID := ::oParent:GetControlId()

   aPosSz := ::getPosAndSize( ::aPos, ::aSize )

   hWnd := wapi_CreateWindowEx( ;
      ::exStyle, ;
      ::className(), ;
      "", ;                              /* window name */
      ::style, ;
      aPosSz[ 1 ], aPosSz[ 2 ], ;
      aPosSz[ 3 ], aPosSz[ 4 ], ;
      ::oParent:hWnd, ;
      ::nID, ;                           /* hMenu       */
      NIL, ;                             /* hInstance   */
      NIL )                              /* lParam      */

   IF wapi_IsWindow( hWnd )
      ::hWnd := ::pWnd := hWnd
      ::sendMessage( WIN_WM_SETFONT, wapi_GetStockObject( WIN_DEFAULT_GUI_FONT ), 1 )
      ::hWndTT := wvg_CreateToolTipWindow( ::hWnd )
   ENDIF

   RETURN Self


É o mesmo esquema utilizado pela HMG, HWGUI, etc. usando API do Windows pra criar o controle/janela.

No final, parece que a GTWVG nem existe, porque nada WVG* é usado nos exemplos.

Quando digo que a GTWVG tem a resposta pra tudo, é baseado nesses fontes, e não nos exemplos.

Talvez não concordem, porque estão olhando os exemplos, e não os fontes.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 15:01

E agora o exemplo, de onde fiz, alterando/acrescentando algumas coisas nessa parte WVG.

gtwvg4.png


Apenas usei o que já existe pronto na GTWVG, usando herança.

CREATE CLASS TstBitmap INHERIT tstControl

   VAR ClassName  INIT "STATIC"
   VAR ObjType    INIT objTypeStatic
   VAR Style      INIT WIN_WS_CHILD + WIN_WS_GROUP + SS_BITMAP + SS_CENTERIMAGE + BS_NOTIFY
   VAR nIconBimap INIT WIN_IMAGE_BITMAP

   END CLASS

CREATE CLASS TstButton INHERIT tstControl

   VAR className INIT "BUTTON"
   VAR objType   INIT objTypePushButton
   VAR style     INIT WIN_WS_CHILD + BS_PUSHBUTTON + BS_NOTIFY + BS_FLAT

   END CLASS

CREATE CLASS TstCheckBox INHERIT tstControl

   VAR ClassName INIT "BUTTON"
   VAR objType   INIT objTypeCheckBox
   VAR Style     INIT WIN_WS_CHILD + WIN_WS_TABSTOP + BS_AUTOCHECKBOX
                      // BS_LEFTTEXT
   METHOD SetCheck( lCheck ) INLINE ::SendMessage( BM_SETCHECK, iif( lCheck, BST_CHECKED, BST_UNCHECKED ), 0 )

   END CLASS

CREATE CLASS TstCombobox INHERIT tstControl

   VAR ClassName             INIT   "COMBOBOX"
   VAR ObjType               INIT   objTypeComboBox
   VAR Style                 INIT   WIN_WS_CHILD + WIN_WS_BORDER + WIN_WS_TABSTOP + WIN_WS_GROUP + CBS_DROPDOWNLIST
   METHOD AddItem( cText )   INLINE ::SendMessage( CB_ADDSTRING, 0, cText )
   METHOD SetValue( nIndex ) INLINE ::SendMessage( CB_SETCURSEL, nIndex - 1, 0 )

   END CLASS

CREATE CLASS TstCommandLink INHERIT tstControl

   VAR ClassName           INIT   "BUTTON"
   VAR objType             INIT   objTypePushButton
   VAR Style               INIT   WIN_WS_CHILD + WIN_WS_BORDER + WIN_WS_TABSTOP + WIN_WS_GROUP + BS_COMMANDLINK
   METHOD SetNote( cText ) INLINE ::SendMessage( BCM_SETNOTE, 0, cText )

   END CLASS


Quem baixa o Harbour não consegue nem enxergar a GTWVG.
Só mesmo olhando os fontes, que fazem parte do Harbour.

Parece até que criaram a LIB pra ninguém usar.
Não dá pra entender....

Quem conhece ambiente GUI não melhora a GTWVG, porque pensa que ela é só o que tem nos exemplos.
E ninguém usa porque acha que é só aquilo que tem nos exemplos.
E está lá... um ambiente GUI pra Windows, aguardando interessados.... no momento acho que até de desenvolvedores interessados...
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 19 Fev 2017 15:27

Esta parte, só quem mexe com API deve entender....

Como são criados os controles WVG:

   METHOD new( oParent, oOwner, aPos, aSize, aPresParams, lVisible )


será criada uma janela Windows, e será passada a Wnd da janela pai, que contém esse controle.
Isso no Windows pode ser definido no uso de SetParent()

E tem lá todo tratamento de mensagens do Windows.

METHOD WvgWindow:SetWindowProcCallback()

   ::nOldProc := wvg_SetWindowProcBlock( ::hWnd, {| h, m, w, l | ::ControlWndProc( h, m, w, l ) } )

   RETURN Self


Tem lá o combobox...

   METHOD addItem( cItem )
   METHOD clear()                               INLINE ::sendMessage( CB_RESETCONTENT, 0, 0 )
   METHOD delItem( nIndex )                     INLINE ::sendMessage( CB_DELETESTRING, nIndex - 1, 0 )
   METHOD getItem( nIndex )                     INLINE wvg_SendCBMessage( ::hWnd, CB_GETLBTEXT, nIndex - 1 )
   METHOD insItem( nIndex, cItem )              INLINE ::sendMessage( CB_INSERTSTRING, nIndex - 1, cItem )
   METHOD setItem( nIndex, cItem )              INLINE ::sendMessage( CB_SETITEMDATA, nIndex - 1, cItem )
   METHOD setIcon( nItem, cIcon )


Com tratamentos que nem a HMG tem pra isso, que seria poder usar uma variável já com o conteúdo do combobox, sem precisar funções do Windows pra fazer isso.

O estilo de programação... igual QT.
Mas talvez uns #defines poderiam deixar igual qualquer outra coisa, até HMG.

Pois é...
Temos LIBs demais, todas faltando recurso, ao mesmo tempo todas com recurso que outras não tem.
Tava na hora de juntar tudo.
A GTWVG está lá.... esperando... pode ser a porta de entrada pra qualquer LIB GUI...
Uma LIB GUI fazendo parte do Harbour... pode ser o que falta pra unir forças....
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor Claudio Soto » 19 Fev 2017 22:57

José es interesante tu planteo pero difícil que todas las lib lleguen a un consenso y menos aun que los programadores estén dispuestos a abandonar su forma tradicional de hacer las cosas como lo hacen cada uno con su lib. HMG tuvo mucho éxito porque adoptó un estilo de código tipo el xBase tradicional, entonces los clipperos se sentían como en casa.
Yo soy de los que piensa que si se programa en GUI hay que poder emplear todos los recursos del sistema y tomar de HB solo lo necesario, en el caso de HMG prácticamente solo usa la parte referida a base de datos y la sintaxis clipper por supuesto lo demás se implementa vía SO, hay que adaptar lo que uno necesita de HB al funcionamiento de Windows y no al reves. Para HMG el lenguaje HB es una herramienta más no un fin en sí mismo. Además sacando la MV y sus code byte, Harbour no es otra cosa que una gran librería de funciones en C que la MV ni se entera que se ejecutan, funciona como cualquier otra biblioteca escrita en C.

En cuanto a las GT no digo que sean ni buenas ni malas en realidad nunca les presté mucha atención, simplemente yo personalmente no me gusta la forma en que están implentadas por lo siguiente:
- es como programar en C pero a nivel prg, esto además del trabajo de implementar todas las funciones del API en HB crea el inconveniente del mantenimiento, por ej muchas constante y funciones varían dependiendo si es ANSI o Unicode, a nivel de c el compilador se ocupa de hacer las llamadas correctas.
- los eventos se implentan like a HB.
- hay clases que en vez de dejar el código más legible, oscurece. Ej constructores con listas de parámetros, algunos métodos like c otros like HB
- almacenamiento de datos internos del sistema a nivel HB, siempre es preferible obtener el dato a través del API que suponer que el programador nunca las cambio a través de alguna llamada directa al API
- falta de control sobre los handles obtenidos/creados, eso limita la implementación de funciones/eventos genéricos o globales, por ej si el programador crea 5 ventanas a nivel de la lib como desarrollador no tengo cómo saber ni como obtenerlos o validarlos porque todo se almacena en variables locales, en cambio en HMG toda la información de todo está en _HMG_SYSDATA. Por eso las GT funcionan sin problemas en MT

Y por ahí sigue la cosa...

Con esto no quiero decir que las lib tradicionales no presentan algunos de estos inconvenientes y que las GT no tengan sus puntos fuertes, son simplemente visiones diferente de lo mismo, está en cada uno adoptar aquella lib que le resulte más útil o más cómoda.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 578
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 159 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 20 Fev 2017 20:18

Tudo que se trata de LIB gráfica no Harbour acaba sendo um trabalho solitário.

En cuanto a las GT


Pois é.... é isso que confunde da GTWVG.
Existe uma janela na GTWVG que é a tela GT, praticamente a mesma da GTWVT.
E existe toda parte GUI, que tem janelas.
A única coisa diferente da HMG, é que a janela "pai" geralmente é a tela GT, onde o texto tem prioridade.
Basta que a janela principal seja uma Dialog, e pronto, temos GUI.
O que venho dizendo é o seguinte: a GTWVG TEM a resposta, não que ela seja a resposta.

Deixemos ela lá quieta, e vamos ver o que pode ser feito com HMG.

Por exemplo:

Temos lá na HMG 47 usos de CreateWindowEx(), todos com tratamento pra Unicode. ( #include "SET_COMPILE_HMG_UNICODE.ch", #include "HMG_UNICODE.h" )

O que impediria de criar uma única HMG_CreateWindowEx(), com tratamento pra unicode, e todas as outras chamadas pra ela, sem precisar tratamento nenhum? Ou até usar a wapi_CreateWindowEx()

Ok, programando em C a função já está lá disponível, é só usar.
Mas criando uma única, também estará lá, disponível pra PRG, vai eliminar diversos fontes em C.
Acho que isso seria uma pequena amostra de que talvez o uso de C esteja multiplicando mais uso de C.
Esse tipo de modificação não altera em nada o funcionamento da HMG, apenas reduz fontes em C.

Não que isso sirva pra todas as necessidades, mas seria um começo.
O tempo vai dizer o que será possível fazer.

Quanto aos #defines necessários, caso seja PRG, já fazem parte do Harbour dentro de hbwin ou gtwvg.

Quem sabe a HMG não possa até fazer parte do Harbour oficial após ajustes de fontes?
Com os fontes atuais... com certeza não.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor microvolution » 10 Fev 2018 09:49

JoséQuintas escreveu:no momento acho que até de desenvolvedores interessados...
"euzinho" sou um deles...
o que me trava, é a falta de peças no "quebra-cabeças" interno de "minha caixola".
Se talvez, tivesse um tutorial ou um livro on line como é o caso de nossos livros que tínhamos do clipper, com certeza eu faria muita coisa com a GTWVG.
Aliás, estou usando a IDE/HMG.3.4.4 para compilar um aplicativo meu, mas, com uso da GTWVG. Estou tentando usar algo gráfico 100% gui da HMG num módulo separado, MAS TÁ DIFÍCIL compreensão.

Bom, se o JQuintas é o fera de HARBOUR, CLASSES, GTWVG, não consegue entender, quanto mais a mim...
mas, uma coisa me intriga:
JoséQuintas escreveu:Existe uma janela na GTWVG que é a tela GT, praticamente a mesma da GTWVT.

Afinal, GTWVG e GTWVT são a mesma coisa?
na HMG a GTWVG vem nativa na pasta CONTRIBS mas, não tem nada de GTWVW e GTWVT, pois não vi as pastas EXTRAS
Explica-me uma coisa melhor JQUIntas:
você tá querendo dizer que a GTWVG tem comandos/funções com nomes idênticos à da GTWVT?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1292
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 14 vezes

GTWVG - ninguém entende o que tem

Mensagempor JoséQuintas » 10 Fev 2018 10:19

WVG acabou sendo criada encima da WVT, e acabam praticamente sendo a mesma LIB, e se misturando.
Por isso, a maioria dos exemplos de WVG tem coisa de WVT.

GTWVW tem no XHarbour, fica numa pasta de contribs.
GTWVW no Harbour 3.2 está em EXTRAS, não faz parte do Harbour 3.2 oficial.
GTWVW no Harbour 3.4 sofreu atualizações, e passou a fazer parte do Harbour, em CONTRIBS

GTWVG tem no XHarbour, fica numa pasta de contribs, não tem NADA de GUI/Windows.
No Harbour 3.2 e 3.4, fica em CONTRIBS.

No XHarbour há uma mistura em CONTRIBS, coisas que podem ou não fazer parte do XHarbour.
No Harbour 3.2 e 3.4, CONTRIBS é considerada parte do Harbour, e é atualizada junto com o Harbour.
EXTRAS são considerados testes, até vém com os fontes do Harbour, mas não são considerados como parte do Harbour.

Então, no Harbour 3.2, GTWVW apenas existe pra se alguém precisar, mas oficialmente nele não existiria suporte.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16364
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 926 vezes

GTWVG - ninguém entende o que tem

Mensagempor microvolution » 10 Fev 2018 10:58

quero muito continuar usando a GTWVG, pois foi a primeira gráfica que você me mostrou que é em formato xBase. Mais simples de usar que HMG/HWG, etc...
Mas, ao mesmo tempo, se torna difícil, pois os exemplos são poucos e parece que não há interesse das pessoas em usá-la, mesmo sendo atualizada recentemente pelo Viktor no final de 2017.

Vamos lá a mais dúvidas:
pra que servem e como funcionam as funções abaixo:
WvgFont()
WvgFontDialog()
wvg_FontCreate()


Não consigo encontrar - nem o seu harbourdoc, manual, tutorial, exemplos, explicações... então, a gente fica perdido.
Quero muito continuar com a GTWVG - me identifico muito com ela, mas, nem no gitHub do Viktor tem DOCs, exemplos, ou tutoriais para nos explicar.

Parece que foi abandonada de vez, e, só você, eu, e o Viktor é quem gostamos de usá-la.
Agora, eu ficar incomodando o Viktor só com esses detalhes, jamé!
rsrs
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1292
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 14 vezes

GTWVG - ninguém entende o que tem

Mensagempor microvolution » 10 Fev 2018 11:26

ah!
esqueci de mencionar estas também:
wvg_ChooseFont()
wvg_ChooseFont_GetLogFont()

eis as perguntas (ONCOTÔ, DONCOVIN, PRONCOVÔ) abaixo:
- pra que servem?
- qual sintaxe?
- uso-as isoladas ou em conjunto?
- quais parâmetros?
- onde vejo mais sobre elas?
rsrs
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1292
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 14 vezes

GTWVG - ninguém entende o que tem

Mensagempor microvolution » 10 Fev 2018 11:31

quer mais pra ficar com mais dúvida e "descompreensão" ainda mais e mais (oncotô, doncovin e proncotô):
wvt_ChooseFont

a função acima, segundo o DEMOWVG pertence à CONTRIB\GTWVG presentes no HARBOUR 3.4 do Viktor e também dentro da CONTRIB\GTWVG da HMG 3.4.4
Até aí batem a informação.
- Se eu compilar via IDE/HMG a função acima de nada serve (não altera os fontes como desejo);
- se eu compilar fora da HMG usando um .BAT usando o HBMK2 as fontes são alteradas.

Mas, afinal, a wvt_ChooseFont que tem na GTWVG não tem nada?
Quando uso o puro harbour na verdade o compilador está entendendo que vai usar a wvt_ChooseFont é da LIB GTWVT?

E, agora José?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1292
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 14 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro