Clipper On Line • Ver Tópico - Inserir imagem no programa.

Inserir imagem no programa.

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

Moderador: Moderadores

 

Inserir imagem no programa.

Mensagempor vmolina » 18 Jan 2012 15:22

Boa tarde pessoal,

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

Att

Vitor
vmolina
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 13 Jan 2012 13:03
Cidade/Estado: BAHIA
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Inserir imagem no programa.

Mensagempor rochinha » 19 Jan 2012 20:44

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

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4209
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 499 vezes
Mens.Curtidas: 182 vezes

Inserir imagem no programa.

Mensagempor vmolina » 20 Jan 2012 08:52

Valeu Rochinha, obrigado pela dica.
vmolina
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 13 Jan 2012 13:03
Cidade/Estado: BAHIA
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


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
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro