Inserir imagem no programa.

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

vmolina
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 13 Jan 2012 14:03
Localização: BAHIA

Inserir imagem no programa.

Mensagem por vmolina »

Boa tarde pessoal,

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

Att

Vitor
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Inserir imagem no programa.

Mensagem 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.

Código: Selecionar todos

// 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).

Código: Selecionar todos

#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.

Código: Selecionar todos


#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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
vmolina
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 13 Jan 2012 14:03
Localização: BAHIA

Inserir imagem no programa.

Mensagem por vmolina »

Valeu Rochinha, obrigado pela dica.
Responder