Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Adobe Flex ::: Classes, Controles e Componentes ::: DataGrid

Entendendo a classe DataGrid

Quantidade de visualizações: 11218 vezes


A classe pública DataGrid é usada quando precisamos exibir dados em formato tabular, tal como uma tabela do Excel ou o componente JTable do Java. Algumas das características de um controle DataGrid são:

1) Colunas de diferentes larguras ou larguras idênticas e fixas;
2) Colunas podem ser redimensionadas em tempo de execução;
3) Colunas podem ser reordenadas em tempo de execução;
4) Os títulos das colunas podem ser customizados;
5) Renderizadores de itens customizados podem ser aplicados a cada coluna de forma a exibir outros dados que não sejam textos;
6) Possibilidade de ordenar os dados simplesmente clicando-se em uma determinada coluna.

O controle DataGrid foi idealizado para ser usado na visualização de dados e não como ferramenta de layout, como fazemos em HTML.

Esta classe pertence ao pacote mx.controls. Veja sua posição na hierarquia de classes do Flex 2.0:
Object
  EventDispatcher
    DisplayObject
      InteractiveObject
        DisplayObjectContainer
          Sprite
            FlexSprite
              UIComponent
                ScrollControlBase
                  ListBase
                    DataGridBase
                      DataGrid
Esta classe implementa a interface IIMESupport. Uma subclasse conhecida é PrintDataGrid.

Veja um trecho de código onde temos um DataGrid contendo três linhas e três colunas:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

  <mx:Panel id="painel" title="Estudos" status="Active" 
     height="300" width="200" paddingTop="10" 
     paddingLeft="10" paddingRight="10" 
     paddingBottom="10">

    <mx:DataGrid> 
      <mx:ArrayCollection>
        <mx:Object Cidade="Goiânia" Estado="GO" 
           Habitantes="1.543.224"/>
        <mx:Object Cidade="Brasília" Estado="DF" 
           Habitantes="1.854.002"/>
        <mx:Object Cidade="Cuiabá" Estado="MT" 
           Habitantes="922.832"/>
      </mx:ArrayCollection>
      <mx:columns>
        <mx:DataGridColumn dataField="Cidade"/>
        <mx:DataGridColumn dataField="Estado"/>
        <mx:DataGridColumn dataField="Habitantes"/>
      </mx:columns>
    </mx:DataGrid>

  </mx:Panel>

</mx:Application>


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Programação MIDI usando C++ - Como usar um vetor de chars para construir uma mensagem MIDI e passá-lo para a função midiOutShortMsg() da API do Windows

Quantidade de visualizações: 2041 vezes
Nas dicas dessa seção nós vimos como é possível enviar uma mensagem MIDI para o dispositivo de saída por meio da função midiOutShortMsg() da API do Windows. Essa função recebe um handle para o dispositivo de saída MIDI e um valor DWORD contendo a mensagem MIDI.

Se você revisitar essas dicas, verá que na maioria delas nós informamos a mensagem MIDI diretamente no parâmetro da função (como um valor hexadecimal). Nesta dica mostrarei como é possível construir as mensagens MIDI usando seus valores individuais e, o que é melhor, usando valores decimais.

Para isso nós vamos construir um vetor de char e informar os valores que compõem a mensagem. É importante observar que a função midiOutShortMsg() exige que a mensagem MIDI seja informada na ordem de bytes "little endian" ou seja, o status MIDI é informado no byte de ordem mais baixa. Isso é conseguido com um cast do vetor para um unsigned long.

Veja o trecho de código:

// vamos criar um vetor contendo os valores que compõem a mensagem MIDI
unsigned char vetor[4];
vetor[0] = 144; // Note-on no Canal 1
vetor[1] = 40; // Nota Mi na 4ª oitava
vetor[2] = 100; // Velocidade/volume da nota
vetor[3] = 0; // Não é usado
// e aqui é que acontece a mágica. Quando fazemos o cast do
// vetor para o tipo long sem sinal, os valores são colocados em
// little endian, justamente a ordem de bytes esperada pela
// função midiOutShortMsg()
unsigned long mensagem = *(unsigned long*)vetor;
// envia a mensagem MIDI
midiOutShortMsg(saida, mensagem);

Note que não coloquei o código todo. Para completá-lo, veja outras dicas dessa seção.


PHP ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Apostila PHP para iniciantes - Como usar constantes na linguagem PHP

Quantidade de visualizações: 11825 vezes
Como acontece na maioria das linguagens de programação, o PHP também permite o uso de constantes. Como o próprio nome diz, constantes são inicializadas uma vez e não podem ter seus valores alterados durante a execução do programa.

A definição de constantes em PHP segue as mesmas regras de nomeação de variáveis, com a exceção de que constantes não possuem o símbolo $ e são geralmente escritas em letras maiúsculas.

Diferente de variáveis, constantes, uma vez definidas, são acessadas globalmente. Não há a necessidade de redeclará-las em cada nova função ou arquivo.

A síntaxe de definição de uma constante é:

define("CONSTANT_NAME", value [, case_sensitivity])

onde:

a) CONSTANT_NAME é o nome da constante;

b) value é o valor atribuído à constante. Não é possível atribuir arrays nem objetos à constantes;

c) case_sensitivity permite definir se o nome da constante será tratado igualmente se referenciado usando letras maiúsculas ou minúsculas. O valor padrão é true, o que quer dizer que "VALOR" e "Valor" serão tratados como uma única constante.

REVISÃO: Revisando este código no PHP 8 eu percebi que o terceiro argumento (case_sensitivity) não é mais suportado, e gera um aviso do tipo:

Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in...

Veja um exemplo de declaração e uso de constantes em PHP:

<?
  // declara uma constante com o nome MODO e valor 2
  define("MODO", 2);
  echo "O valor definido é: " . MODO; 
?>

Veja agora o que acontece quando tentamos modificar o valor de uma variável do tipo constante:

<?
  // declara uma constante com o nome MODO e valor 2
  define("MODO", 2);
  
  // vamos tentar alterar o valor da constante
  MODO = 10;
?>

Este código gera a seguinte mensagem de erro:

Parse error: syntax error, unexpected token "=" in...


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercício Resolvido de Python - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em Python

Quantidade de visualizações: 1043 vezes
Pergunta/Tarefa:

Escreva um programa Python para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

# função principal do programa
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro: "))
    
  # vamos calcular o sucessor do número informado
  sucessor = numero + 1
    
  # vamos calcular o antecessor do número informado
  antecessor = numero - 1
    
  # e agora mostramos os resultados
  print("O número informado foi: {0}".format(numero))
  print("O antecessor é {0}".format(antecessor))
  print("O sucessor é: {0}".format(sucessor))
  
if __name__== "__main__":
  main()



C++ ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular fatorial em C++ usando recursividade

Quantidade de visualizações: 9307 vezes
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma:

4 x 3 x 2 x 1 = 24

Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C++ que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.

#include <iostream>

using namespace std;

// função recursiva para calcular o fatorial
// de um determinado número
int fatorial(int n){
  if(n == 0)
    return 1;
  else
    return n * fatorial(n - 1);
}

int main(int argc, char *argv[]){
  // vamos calcular o fatorial de 5
  int res = fatorial(5);

  // exibe o resultado
  cout << "O fatorial de 5 é: " << res << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



C++ ::: Win32 API (Windows API) ::: Aplicativos e Outros

C++ Windows API GUI - Como criar sua primeira aplicação de interface gráfica usando C++ e WinAPI

Quantidade de visualizações: 47093 vezes
Esta dica mostra o código completo para uma aplicação de interface gráfica usando C++ e a Win32 (WinAPI - Windows Programming Interface). Trata-se de uma janela simples, mas com todas as características presentes em todas as janelas das aplicações Windows: uma barra de títulos, o ícone e os botões de maximizar, minimizar e fechar.

Antes de executar o exemplo observe que este código contém o ponto inicial para a criação de qualquer aplicação gráfica em C++/WinAPI, a saber: A função de entrada WinMain, o laço de mensagens Message Loop, a função de callback Window Procedure e as técnicas de registrar e criar a janela.

Neste momento não discutimos os detalhes do código. Em outras dicas você encontrará análises mais aprofundadas de cada parte.

Este código foi escrito e testado no Dev-C++, mas, deve funcionar sem problemas em outros compiladores C++ para Windows. Assim, abra o Dev-C++, vá em File -> New -> Projec. Na aba Basic, selecione Console Application, dê um nome ao projeto e deixe a opção C++ Project marcada. Salve o projeto e inclua o código abaixo no arquivo .cpp principal:

#include <windows.h>

// define o nome da classe de janela
const char nomeJanela[] = "aCodigos";

// esta é a Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM 
  wParam, LPARAM lParam){
    switch(msg){
      case WM_CLOSE:
        DestroyWindow(hwnd);
        break;
      case WM_DESTROY:
        PostQuitMessage(0);
        break;
      default:
        return DefWindowProc(hwnd, msg, wParam, 
          lParam);
    }

  return 0;
}

// função de entrada da aplicação
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE 
    hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
  WNDCLASSEX wc;
  HWND hwnd;
  MSG Msg;

  // vamos registrar a Window Class
  wc.cbSize = sizeof(WNDCLASSEX);
  wc.style = 0;
  wc.lpfnWndProc = WndProc;
  wc.cbClsExtra = 0;
  wc.cbWndExtra = 0;
  wc.hInstance = hInstance;
  wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  wc.lpszMenuName = NULL;
  wc.lpszClassName = nomeJanela;
  wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

  if(!RegisterClassEx(&wc)){
    MessageBox(NULL, "Erro ao registrar a janela!",
      "Erro!", MB_ICONEXCLAMATION | MB_OK);
    return 0;
  }

  // cria a janela
  hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, nomeJanela,
    "Minha primeira aplicação Win32",
    WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
    350, 200, NULL, NULL, hInstance, NULL);

  if(hwnd == NULL){
    MessageBox(NULL, "Erro ao criar a janela!",
      "Erro!", MB_ICONEXCLAMATION | MB_OK);
    return 0;
  }

  // mostra a janela
  ShowWindow(hwnd, nCmdShow);
  UpdateWindow(hwnd);

  // Este é o laço de mensagens (Message Loop)
  while(GetMessage(&Msg, NULL, 0, 0) > 0){
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
  }

  return Msg.wParam;
}

Pronto! Só compilar (geralmente F9 no Dev-C++), observar o resultado e estudar o código atentamente.


Desafios, Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 10 usuários muito felizes estudando em nosso site.