Página 2 de 2

Como iniciar o conteúdo de HCEDIT

Enviado: 23 Jan 2023 18:55
por Itamar M. Lins Jr.
Olá!
Algum detalhe no código que não percebo.
Esse ultimo exemplo rodou sem problema.

Saudações,
Itamar M. Lins Jr.

Como iniciar o conteúdo de HCEDIT

Enviado: 23 Jan 2023 19:16
por JoséQuintas
É... altera aqui... altera lá... chega uma hora que confunde tudo.
Por isso, mesmo depois que funciona, dou uma geral, pra ter certeza do que realmente funcionou.
Por exemplo, funcionou com tudo por referência, mas depois retirei a referência e continuou funcionando.

Até hoje fico na dúvida se classe é melhor passar por referência ou não.
Teoricamente, ao invés de passar um conjunto de tranqueiras, passa somente o pointer.
Pensei até que meu bug poderia ter a ver com passar o recordset normal, mas por referência não mudou nada, pelo menos sobre o bug.
Mas não fiz testes a fundo sobre isso.

Como iniciar o conteúdo de HCEDIT

Enviado: 23 Jan 2023 20:51
por JoséQuintas
testhwgui.png
Não contava com isso, ainda cedo pra dizer se é problema.
A configuração de cores para o foco é GLOBAL, então rodar o teste de cores antes do text view acabou mudando a cor do GET.

Como iniciar o conteúdo de HCEDIT

Enviado: 24 Jan 2023 01:46
por JoséQuintas
test.png
Mais recheado.
estilo console ou wvg, sei lá...

Código: Selecionar todos

#include "hwgui.ch"
#include "directry.ch"

FUNCTION DlgTextView()

   LOCAL aFileList, nIndex, cFileSpec := hb_cwd() + "*.prg"
   LOCAL oDlg, oEdit, cEdit, oFont := HFont():Add( "MS Sans Serif", 0, -13 )
   LOCAL aButtonList := { "Pg.First", "Pg.Previous", "Pg.Next", "Pg.Last", "Exit" }
   LOCAL cCaption

   aFileList := Directory( cFileSpec )
   nIndex := 1

   INIT DIALOG oDlg CLIPPER TITLE "Text view"  ;
      AT 0,0  SIZE 800, 600 ;
      FONT oFont ON INIT { || Dlg_SetText( oEdit, aFileList, nIndex ) }

   FOR EACH cCaption IN aButtonList
      CreateButton( cCaption, { || Button_Click( cCaption, @aFileList, @nIndex, oDlg, oEdit ) } )
   NEXT
   @ 10, 60 GET oEdit VAR cEdit SIZE oDlg:nWidth - 40, oDlg:nHeight - 100 FONT oFont ;
       STYLE ES_MULTILINE + ES_AUTOVSCROLL + WS_VSCROLL + WS_HSCROLL

   ACTIVATE DIALOG oDlg

RETURN Nil

STATIC FUNCTION Dlg_SetText( oEdit, aFileList, nIndex )

   LOCAL cTxt

   IF Len( aFileList ) == 0
      cTxt := ""
   ELSE
      cTxt := MemoRead( aFileList[ nIndex, F_NAME ] )
   ENDIF
   oEdit:Value := cTxt
   oEdit:Refresh()

RETURN Nil

STATIC FUNCTION CreateButton( cCaption, bCode )

   STATIC nCol

   IF cCaption == "Pg.First"
      nCol := 20
   ELSE
      nCol += 100
   ENDIF
   @  nCol, 20 BUTTON cCaption SIZE 90, 32 ON CLICK bCode

RETURN Nil

STATIC FUNCTION Button_Click( cCaption, aFileList, nIndex, oDlg, oEdit )

   DO CASE
   CASE cCaption == "Pg.First"
      nIndex := 1
      Dlg_SetText( oEdit, aFileList, nIndex )
   CASE cCaption == "Pg.Previous"
      IF nIndex > 1
         nIndex -= 1
      ENDIF
      Dlg_SetText( oEdit, aFileList, nIndex )
   CASE cCaption == "Pg.Next"
      IF nIndex < Len( aFileList )
         nIndex += 1
      ENDIF
      Dlg_SetText( oEdit, aFileList, nIndex )
   CASE cCaption == "Pg.Last"
      nIndex := Len( aFileList )
      Dlg_SetText( oEdit, aFileList, nIndex )
   CASE cCaption == "Exit"
      oDlg:Close()
   ENDCASE

   RETURN Nil

Como iniciar o conteúdo de HCEDIT

Enviado: 24 Jan 2023 07:53
por Itamar M. Lins Jr.
Olá!
Button pega foco mas não tem imagem.
ButtonEx pega foco e tem imagem.
OwnerButton tem imagem mas não pega foco. Eu trabalho mais com OwnerButton.
E tem um tal de ShadeButton.

Esses exemplos podem rodar sem problema pelo tutor.

Saudações,
Itamar M. Lins Jr.