global inteira inicializada em -1 é incrementada
e estes valores serão utilizados para a chamada
de cada parte recortada de nosso bitmap,
e estas chamadas só ocorrem clicando neste mesmo botão,
onde preferimos usar um nome em inglês para encurtar
o seu tamanho.
O botão imagem, chama o bitmap principal,
mas o programa funciona muito bem sem ele,
na verdade está servindo como personalização,
e para que o usuário saiba de onde está sendo
desenhado o bitmap em tempo de execução.
Então sem entrar em detalhes da parte gráfica de bitmaps,
o que estamos fazendo aqui é recortando partes
do bitmap, estrategicamente e desenhando num destino
escolhido preferivelmente por nós mesmos.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <memory>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int a = -1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1 ( TComponent* Owner )
: TForm ( Owner )
{
}
Graphics::TBitmap* bitimap;
//---------------------------------------------------------------------------
void __fastcall TForm1::Informe ( TObject *Sender ) {
Canvas -> Font -> Name = "Garamond";
Canvas -> Font -> Size = 14;
Canvas -> Font -> Color = clBlack;
Canvas -> TextOut ( 200, 240, "Por: " );
Canvas -> Font -> Color = clRed;
Canvas -> TextOut ( 240, 240, "Samuel Lima" );
Canvas -> Font -> Color = clBlue;
Canvas -> TextOut ( 196, 260, "sa_sp10@hotmail.com" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click ( TObject *Sender )
{
//Coordenadas do primeiro bitmap
Canvas -> Draw ( 30, 40, bitimap );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click ( TObject *Sender )
{
String str;
int x;
int y;
int largura;
int altura;
int x_1;
int y_1;
int largura_1;
int altura_1;
a++;
if ( a < 10 ) {
str = "0";
}
str += a;
Label1 -> Caption = str;
/*====================================================================*/
if ( a == 0 ) {
//Posição do recorte a ser capturado
x = 68;
y = 134;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 1 ) {
//Posição do recorte a ser capturado
x = 0;
y = 0;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 2 ) {
//Posição do recorte a ser capturado
x = 68;
y = 0;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 3 ) {
//Posição do recorte a ser capturado
x = 133;
y = 0;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 4 ) {
//Posição do recorte a ser capturado
x = 199;
y = 0;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 5 ) {
//Posição do recorte a ser capturado
x = 0;
y = 67;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 6 ) {
//Posição do recorte a ser capturado
x = 68;
y = 67;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 7 ) {
//Posição do recorte a ser capturado
x = 133;
y = 67;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 8 ) {
//Posição do recorte a ser capturado
x = 199;
y = 67;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 9 ) {
//Posição do recorte a ser capturado
x = 0;
y = 134;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 10 ) {
//Posição do recorte a ser capturado
x = 133;
y = 134;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
if ( a == 11 ) {
//Posição do recorte a ser capturado
x = 199;
y = 134;
//Tamanho do recorte a ser capturado
largura = 60;
altura = 60;
// imprimindo a região cortada
//Posicionamento do recorte capturado da imagem
x_1 = 403;
y_1 = 50;
//Tamanho do recorte destino
largura_1 = 60;
altura_1 = 60;
}
/*====================================================================*/
Canvas -> CopyRect (
//o primeiro ret é o destino
TRect ( x_1, y_1, x_1 + largura_1, y_1 + altura_1 )
//segundo é a tela da fonte
,bitimap -> Canvas
//terceiro é o retângulo da fonte que desejamos copiar
,TRect ( x, y, x + largura, y + altura )
);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnPaint(TObject *Sender)
{
bitimap = new Graphics::TBitmap ( );
bitimap -> Width = 200;
bitimap -> Height = 200;
bitimap -> LoadFromFile ("C:\\Users\\ManMachine\\Downloads\\"
"\\Contador personalizado manual\\números.bmp" );
Canvas -> Pen -> Width = 10;
Canvas -> Pen -> Color = clRed;
Canvas -> Rectangle ( 05, 05, 595, 295 );
Canvas -> Font -> Size = 14;
Canvas -> Font -> Name = "arial";
Canvas -> Font -> Color = clRed;
Canvas -> Font-> Style = TFontStyles ( ) << fsBold << fsItalic << fsUnderline;
Canvas -> TextOut ( 110, 12, "DESENHANDO PARTES DE UMA IMAGEM" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnTimer(TObject *Sender)
{
if ( a == 12 ) {
Informe ( Sender );
}
if ( a == 13 ) {
Form1 -> Close ( );
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
TLabel *Label1;
TTimer *Timer1;
void __fastcall Informe ( TObject *Sender );
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall OnPaint(TObject *Sender);
void __fastcall OnTimer(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
object Form1: TForm1
Left = 455
Top = 89
Caption = 'DESENHANDO PARTES DE UMA IMAGEM'
ClientHeight = 300
ClientWidth = 600
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesigned
OnPaint = OnPaint
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 376
Top = 144
Width = 46
Height = 81
Caption = ' '
Font.Charset = ANSI_CHARSET
Font.Color = clRed
Font.Height = -77
Font.Name = 'alarm clock'
Font.Style = [fsBold]
ParentFont = False
end
object Button1: TButton
Left = 104
Top = 259
Width = 75
Height = 25
Caption = 'Imagem'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 440
Top = 259
Width = 75
Height = 25
Caption = 'Draw'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 1
OnClick = Button2Click
end
object Timer1: TTimer
Interval = 2000
OnTimer = OnTimer
Left = 536
Top = 24
end
end
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.