- Sempre em um quadrado de lado impar, distribua os números (sem passar ou repetir) na quantidade igual à multiplicação dos dois lados
(ex: 3 x 3 = 9). - Inicie com o numero 1 na coluna central da ultima linha (você pode encontrar esta posição calculando:
X = Ceil( largura / 2) + 1 e Y = Altura) - Os números são preenchidos em cascata (para baixo e para p lado 1 casa)
- Caso a próxima casa esteja ocupada, vá para 1 casa a cima da posição atual.
Uma linguagem robusta com uma interface agradável e intuitiva rompendo as barreiras entre plataformas sem precisar de maquina virtual. Aplicações desktop, consoles, serviços e event driven em código nativo para Windows, MAC e Linux.
14/09/2009
Numeros Magicos
21/05/2009
Gifs Animadas
Para quem não quiser comprar um Plugin para colocar uma animação no seu programa, vou mostrar como exibir uma Gif animada.
Sem muita dor de cabeça, você pode construir uma classe derivada da classe canvas e posteriormente apenas inseri-la aonde achar conveniente.
Vamos a ela em um passo a passo.
- 1 Crie uma Classe nova.
- 1.1 Dê um nome a ela (A minha se chamou CanvasGif)
- 1.2 Atribua “Canvas” como sua super Classe. Assim tudo que um Canvas possui, ela também possuirá.
- 1.3 Adicione a interface “actionNotificationReceiver”, será criado no momento da adição, o método PerformAction. Isso permite q notificações de eventos estejam disponíveis na sua classe (eventos dentro de classes são muito úteis, e essa é a uma boa forma de executá-los).
2 Abra sua nova classe. - 2.1 Crie estas propriedades:Pic() As Picture // Esta conterá os quadros da sua Guif
Index As Integer // Esta, a posição dos quadros exibidos
Relogio As Timer // Esta é derivada da classe time, e será seu temporizador de exibição. - 2.2 No Evento open da sua classe, insira:Relogio = New Timer //Nova instância do relógio
Relogio.Mode = 0 //coloca-o no modo de espera
Relogio.Period = 75 //ajusta os intervalos para 0.75ms - 2.3 Agora crie o seguinte método:Sub Add(Arquivo As String)
Dim f As FolderItem //para manipular arquivos
Dim m As EditableMovie //para ler arquivos de vídeo
//Recebe Arquivo animado
f = GetFolderItem(Arquivo)
//Encerra se o arquivo não existe
if f = nil Then Return
//Abre o arquivo de vídeo no modo de edição
m = f.OpenEditableMovie
Redim Pic(-1) //Zera a lista de imagem
Do until m.EOF 'loop até o fim do arquivo
//adiciona o quadro atual a lista de imagens
Pic.Append m.Picture
//aqui passa para o próximo quadro,
//que está dividido em milissegundos,
//voce pde variar para ver os resultados
m.Position = m.Position + 0.1
loop
//adiciona a notificação de eventos ao relógio
//isso fará com que o relógio dispare o método
//PerformAction a cada pulso
Relogio.addActionNotificationReceiver me
Relogio.Mode = 2 'inicia o Relógio
End sub - 2.4 Agora, no metodo PerformAction, insira://Desenha a imagem na posição 0, 0
me.Graphics.DrawPicture Pic(index),0,0
//volta Index para o inicio quando chegar ao fim
if index = Pic.Ubound then index = -1
index = index + 1 //próximo quadro - 3 Terminamos. Agora é só inserir a sua nova CanvasGif em um Windows e atribuir um caminho de imagem ao método Add
CanvasGif1.Add “d:\felix.gif”
Passos ilustrados:
é isso ai.
15/05/2009
Tray icon
Colocar um icone na barra do Windos ao lado do relogio
Vou dar logo a má noticia antes que você tente executar este código.
Isto só vai funcionar no Windows!
Dim p AS Picture
'Nova imagem 32 x 32
p = NewPicture(32,32,32)
'Desenha um icone critico
'Mas poderia ter cido qualquer imagem
p.Graphics.DrawCautionIcon(0,0)
tr.Icon = p
'texto q aparece ao passar o mouse
tr.HelpTag = "Isso e um icone!"
APP.AddTrayItem tr
Pronto, ele ja está lá!
E se você olhar um pouco mais a fundo pode descobrir inúmeras aplicações para estas linhas. O DoubleClick, LeftMouseButton, RightMouseButton, juntamente com o System.MouseX ou .MouseY, pode ampliar bem o leque de utilização, permitindo posicionar menús popups ou algo do gênero.
O Código de Barras 39
Este padrão possui algumas limitações, como por exemplo: imprime apenas 43 tipos de caracteres (0 a 9, de A a Z e alguns poucos símbolos), e seu comprimento aumenta muito rápido, deixando algumas leitoras impossibilitadas de ler.
Mas como vantagens, é um código simples (dá para escrever até a lápis :D ), tem, opcionalmente, código verificador e (creio eu) todas as leitoras ópticas o entende. Para saber mais sobre códigos de barra você pode ler este artigo na Wikipedia ou no Blog do DQSoft
Com base em pesquisa nestes 2 links montei a Class Code39. Esta classe destina-se a desenhar codigos de barras no padrão 3 de 9, retornando uma imagem que pode ser impressa.
imagem = CodeBar(valor,Checksum,Pontas) Onde:
- Height- - Integer - Altura da imagem de retorno
Privadas