quinta-feira, 17 de janeiro de 2008

Criando TGLHudText em tempo de execução no GLSCene

Um pequeno exemplo de como criar uma TGLHudText em run time e posicionar a mesma.

Primeiro abra ou crie uma aplicação que contenha o cenário que desejar GLSceneViewer1, TGLCamera,etc...
Adicione um GLStoredBitmapFont e selecione a configuração de fonte que desejar.
Adicione uma HUDlabel, configure da forma que achar melhor, nesse exemplo alterei as seguintes configurações:

Bitmapfont : GLStoredBitmapFont; ///configuração de fonte escolhida
ModulateColor : clrBlack; ///cord a fonte
Visible : false; ///essa será a fonte padrão, as criadas em run time serão iguais a essa

Agora crie um vetor de labels e uma variável de controle.

Vlabel_Temp : array [1..100]of TGLHudText;//armazena as label criadas em run time...
Numlabelcriada : integer; //armazena quantas labels foram criadas pra destruir as mesmas

No evento que vc quiser, onkeypress, onclick de um button, etc vamos criar as labels....

if Numlabelcriada < 100 then ////testamos o numero Maximo de labels
begin
Numlabelcriada := Numlabelcriada+1; // Numlabelcriada inicia = 0 e Vlabel_Temp =1
Vlabel_Temp[Numlabelcriada]:= TGLHudText.Create(Self); //Criamos a label
Vlabel_Temp[Numlabelcriada].SetSubComponent(True);
GLCylinder1.AddChild(Vlabel_Temp[Numlabelcriada]);// de addchild de algum ///componente do plano q vc quizer, lembre q dependendo do plano q vc colocar a label ///pode ficar atrz de outros objetos da Scene....

Vlabel_Temp[Numlabelcriada].FreeNotification(Self);
///posicionando a label na Scene....
Vlabel_Temp[Numlabelcriada].Position.Y := y+15;
Vlabel_Temp[Numlabelcriada].Position.X := x+15;
///pegando as propriedades da label padrão, caso um dia deseja alterar a fonte fica mais fácil
Vlabel_Temp[Numlabelcriada].BitmapFont := lbl_Temp.BitmapFont;
Vlabel_Temp[Numlabelcriada].ModulateColor := lbl_Temp.ModulateColor;
/////texto q ira aparecer nas labels
Vlabel_Temp[Numlabelcriada].Text := ‘tessssssste';
Vlabel_Temp[Numlabelcriada].Visible := true;
end;


Seria isso.

No próximo post irei fazer elas se movimentarem de acordo com o mouse.

segunda-feira, 14 de janeiro de 2008

Códigos em JAVA

Olha pessoal nos próximos posts vou tentar fazer em forma de artigo, mas como eu somente vou postar aqui alguns códigos que eu utilizei em Java,não há necessidade de explicar cada um.... já vou falando desde agora que sou iniciante em Java e esses códigos foram todos testados, todos eles eu utilizei em alguns testes que eu fiz.....espero q ajude um pouco....


Este post sempre será atualizado com pequenos códigos que eu utilizo, claro q por enquanto estou parado na programação Java, mas logo retomarei meus testes.


DECLARAÇÕES

int tabela[] = {0x0000,0xC0C1,0xC181};///vetor hexadecimal

javax.swing.JCheckBox[] meuArray; ///vetor de componente checkbox

int[] dados = new int[1344];//vetor de inteiros


Limpa Vetor

Arrays.fill(dados,0);///limpa vetor...

Mensagens

JOptionPane.showMessageDialog(this,"A opção escolhida foi: "+”o q mais vc colocar”);

Necessita a biblioteca

import javax.swing.JOptionPane;

String opcao[] = {"Sim","Não"};

int resposta = JOptionPane.showOptionDialog(null,

"Os seguintes dados não poderão ser carregados da memória:\n DEMANDA CONTRATADA,\n MULTIPLICADORES, \n COEFICIENTE.\n\n Deseja limpar os campos de texto?",

"LIMPAR CAMPOS?",

JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE,

null,

opcao,

opcao[0]);

if (resposta == JOptionPane.YES_OPTION){

jTextField2.setText("");

jTextField3.setText("");

jTextField4.setText("");

jTextField5.setText("");

jTextField6.setText("");

}

jComboBox

jComboBox3.setSelectedIndex(1); - seleciona o item da lista

jComboBox3.addItem("teste1"); - adicionando novos itens ao combobox

(String)jComboBox3.getSelectedItem(); - retorna o texto do item selecionado no combobox

jComboBox3.getSelectedIndex(); - retorna o index selecionado c nenhum selecionado retorna -1

Cursor

Cursor cursor = Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR );

component.setCursor( cursor );

////////////////////////////////////////////////////////////////////////////////////////////////

cursor = Cursor.getDefaultCursor();

component.setCursor( cursor );

Bordas e Background

jButton1.setBorder(BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255),1));

jButton1.setBackground(new java.awt.Color(255, 255, 255));

Hint

buttonAlterar.setToolTipText("Texto");

Converter STRING to INT

String.valueOf(teste); //escreve string e coloca o . ai da ctrl espaço e v as opções de converção...

Arredondando/truncando Float

Math.round (0.5);

hi = Math.trunc(1.5);

hi = (int)(aux/256);

Formatando float

DecimalFormat decimal = new DecimalFormat( "0.00" );
System.out.println( decimal.format( 3.7691231233 ) );
 
Math.rint();


ICONE

Image icon =Toolkit.getDefaultToolkit().getImage(getClass().getResource("/imagens/ico.gif"));

setIconImage(icon);

CENTRALIZAR FRAME NO MEIO DA TELA

“nome do frame criado” .setLocationRelativeTo(null);

Trabalhando com ARQUIVOS

Escrevendo

FileWriter out = new FileWriter("dados.cew");

PrintWriter saida = new PrintWriter(out,true);

saida.println(“teste”);

saida.close();

out.close();

Lendo

FileReader reader = new FileReader("dados.cew");

BufferedReader leitor = new BufferedReader(reader);

jTextField1.setText(leitor.readLine());

leitor.close();

reader.close();

Testando ERROS (TRY)

Passando erro para a classe mãe

public insereNome(String nome)  throws SQLException {
    Statatement stmt = conn.createStatement();
    stmt.executeUpdate("INSERT INTO Nomes(nome) VALUES('" + nome + "')");
    stmt.close();
 }

Passando erro para a classe mãe JÁ TRATADO.

public insereNome(String nome)  throws FalhaAoInserirNomeException {
    try {
         Statatement stmt = conn.createStatement();
         stmt.executeUpdate("INSERT INTO Nomes(nome) VALUES('" + nome + " ')");
         stmt.close();
    } catch (SQLException e) {
      throw new FalhaAoInserirNomeException("Não foi possível inserir o nome " + nome, e);
      //Note que o segundo parâmetro é a exceção lançada. 
      //É uma boa prática anexar a causa na exceção reescrita.
    }
 }

sexta-feira, 11 de janeiro de 2008

Finalmente online!!!

Pra começar bem vou colocar algumas imagens das minhas férias, foi na virada de ano em Bombinhas-SC. Férias são férias, sempre são ótimas!!!