Clipper On Line • Ver Tópico - Inserir imagem no programa.
Página 1 de 1

Inserir imagem no programa.

MensagemEnviado: 18 Jan 2012 15:22
por vmolina
Boa tarde pessoal,

Como faço para inserir uma imagem dentro de uma Janela no meu programa?

Att

Vitor

Inserir imagem no programa.

MensagemEnviado: 19 Jan 2012 20:44
por rochinha
Amiguinho,

Explique melhor como voce deseja inserir uma imagem, ou seja, qual a intenção da imagem que será inclusa?

Mesmo porque dependendo de qual a sua necessidade poderemos incluir uma imagem em uma janela, em uma janela filha(Child), em um diálogo, etc.

TestBMP.prg
Neste primeiro exemplo uma janela pai ativa, através de um menu, um diálogo, que tem seu desenho posicionado por arquivos de recursos( .RC ).

Um comando redefine o objeto bitmap contido no recurso posicionando-o e através de um método(comando interno de uma classe) da classe bitmap, chamado SetBMP(), executa a ação de fixar o nome da imagem para ser exibida.

O botões posicionados no diálogo fazem as ações de re-fixar o nome de imagem e apresentá-la.

// Images DataBase sample in FiveWin from resources
// This code is fully compatible with FiveWin, FiveWin++ and FiveWin for Harbour

#include "FiveWin.ch"

static oWnd

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

function Main()

   #ifndef __CLIPPER__
       SET RESOURCES TO "Fishes32.dll"    // 32 bits DLL version
   #else
       SET RESOURCES TO "Fishes16.dll"    // 16 bits DLL version for Clipper users
   #endif

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
      TITLE "Bitmap Test" MENU BuildMenu()

   SET MESSAGE OF oWnd TO "FiveWin - Fishes Database!"

   ACTIVATE WINDOW oWnd

return nil

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

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "Dialog Box"
      MENU
         MENUITEM "&Activate..." ACTION DlgFish() ;
            MESSAGE "Show the images"
         SEPARATOR
         MENUITEM "&End..."    ACTION oWnd:End() ;
            MESSAGE "Thats all folks!"
      ENDMENU
      oMenu:AddHelp( "FiveWin", "FiveTech" )
   ENDMENU

return oMenu

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

function DlgFish()

   local oDlg
   local n := 1
   local bmpFish

   DEFINE DIALOG oDlg RESOURCE "Fish"

   REDEFINE BITMAP bmpFish ID 110 OF oDlg NAME "Fish1"

   bmpFish:bLDblClick = { | nRow, nCol, nFlags | ;
                          MsgInfo( "DblClick on the bitmap" ) }

   REDEFINE BUTTON ID 120 OF oDlg ;
      ACTION If( n > 1, bmpFish:SetBMP( "Fish" + AllTrim( Str( --n ) ) ), ;
                        Tone( 956, 2 ) )

   REDEFINE BUTTON ID 130 OF oDlg ;
      ACTION If( n < 6, bmpFish:SetBMP( "Fish" + AllTrim( Str( ++n ) ) ), ;
                        Tone( 956, 2 ) )

   ACTIVATE DIALOG oDlg CENTERED

return nil


TestBMP3
Neste exemplo, em uma janela pai um comando posiciona diretamente em sua área uma imagem.

Os métodos ON PAINT e ON RESIZE refazem os ajustes de posicionamento e apresentação caso a janela seja movida(on paint) ou redimensionada(on resize).

#include "FiveWin.ch"

STATIC oWnd, oBmp

FUNCTION Main()

   DEFINE WINDOW oWnd FROM 0,0 TO 10,20 TITLE "Test Class TBitmap"

      @ 0,0 BITMAP oBmp FILENAME "..\bitmaps\Tutanka1.bmp" OF oWnd ;
         SIZE 0,0 PIXEL SCROLL

      WndCenter(oWnd:hWnd)

   ACTIVATE WINDOW oWnd ;
      ON PAINT ( oBmp:aDjClient(), oBmp:ScrollAdjust() ) ;
      ON RESIZE ( oBmp:aDjClient(), oBmp:ScrollAdjust() )

RETURN ( nil )


TestBMP4
Neste exemplo, em uma janela pai, um comando define na posição 1,1(pixel) de sua área interna, a posição de uma imagem.

A propriedade bPainted da classe bitmap recebe um valor, que neste caso é um bloco de código( codeblock ) que será executado, produzindo os efeitos de ir para trás na imagem, definindo a cor do texto e imprimindo o texto.

Veja que existem 3 ações sendo executadas, SetBkMode(), SetTextColor() e TextOut() dentro do codeblock. Já que qualquer conteúdo entre {|| e } será considerado comando a ser executado.


#include "FiveWin.ch"

FUNC main()

   local oWnd, oBmp

   DEFINE WINDOW oWnd TITLE "Text on a bitmap"

   @ 1, 1 BITMAP oBmp FILENAME "..\bitmaps\magic.bmp" OF oWnd

   oBmp:bPainted = { || SetBkMode( oBmp:hDC, 1 ),;
                        SetTextColor( oBmp:hDC, CLR_YELLOW ),;
                        TextOut( oBmp:hDC, 5, 5, "Hello" ) }

   ACTIVATE WINDOW oWnd

RETURN NIL


Este exemplos estão na pasta SAMPLES e as classes estão na pasta CLASSES.

Inserir imagem no programa.

MensagemEnviado: 20 Jan 2012 08:52
por vmolina
Valeu Rochinha, obrigado pela dica.