![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Python |
||
|
||
|
|
||
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como usar a propriedade Items da classe TListBox do DelphiQuantidade de visualizações: 11683 vezes |
|
A propriedade Items da classe TListBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item na ListBox:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos adicionar um novo item na ListBox
listBox1.Items.Add('Arquivo de Códigos');
end;
É possível obter um referência à propriedade Items para manipular os itens da ListBox indiretamente. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
begin
// vamos obter a lista de itens da ListBox
lista := listBox1.Items;
// vamos adicionar um novo item à lista
lista.Add('Arquivo de Códigos');
end;
Esta técnica é útil quando queremos inserir itens em uma TListBox a partir de uma função ou procedure. Veja:
// procedure personalizada para inserir itens em uma TListBox
procedure inserirItensListBox(lista: TStrings);
begin
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos chamar a procedure que adiciona os itens na ListBox
inserirItensListBox(listBox1.Items);
end;
Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher a ListBox:
// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
lista: TStringList;
begin
lista := TStringList.Create;
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
Result := lista;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos obter a lista de strings
ListBox1.Items := obterLista;
end;
Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução break da linguagem C para interromper a execução de um laçoQuantidade de visualizações: 16078 vezes |
Laços for, while, do...while e switch podem ter suas iterações (repetições) interrompidas com o uso da instrução break. Quando isso acontece, o fluxo de execução salta para a primeira instrução após o laço. Veja um exemplo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
for(i = 0; i <= 10; i++){
printf("%d ", i);
if(i == 6)
break; // sai do laço
}
printf("\n\n");
system("PAUSE");
return 0;
}
Este código exibirá os valores de 0 à 6. Veja que execução do laço é interrompida exatamente no ponto em que a instrução break é encontrada. Se houver mais instruções dentro do laço mas logo após o break, estas instruções não serão executadas. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como converter todo o conteúdo de uma string para letras minúsculas usando a função AnsiLowerCase() do DelphiQuantidade de visualizações: 13255 vezes |
Algumas vezes precisamos converter todo o conteúdo de uma string para letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função AnsiLowerCase(). Esta função recebe uma string e retorna outra string com todos os caracteres minúsculos. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var nome: string; begin nome := 'OSMAR'; // vamos converter a string para letras minúsculas nome := AnsiLowerCase(nome); // exibe o resultado ShowMessage(nome); end; Note que esta função suporta caracteres de mais de um byte e com acentuações. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como retornar uma lista dos dispositivos de saída MIDI no sistema usando DelphiQuantidade de visualizações: 11538 vezes |
|
Em algumas ocasiões nós precisamos obter uma lista dos dispositivos de saída MIDI no sistema, talvez com o propósito de selecionar um determinado dispositivo em uma ListBox ou ComboBox. O trecho de código abaixo mostra como isso pode ser feito. O primeiro passo é declarar uma variável do tipo TMidiOutCaps. Este registro está declarado na unit MMSystem.pas e é uma tradução da estrutura MIDIOUTCAPS da API do Windows. Entre outros tipos de dados, esta estrutura possui um membro szPname que retorna o nome do dispositivo. Na unit MMSystem.pas este membro está declarado como array[0..MAXPNAMELEN-1] of AnsiChar, ou seja, uma matriz de AnsiChar que será preenchida pela API do Windows e terá seu final marcado com o caractere null (NULL terminated string). Note a conversão deste valor para o tipo String no momento de inserí-lo no ComboBox. Em versões anteriores do Delphi (estou escrevendo este código no Delphi 2009) podíamos usar a função StrPas() para esta finalidade. O passo seguinte é obter a quantidade de dispositivos de saída MIDI. Isso é feito com uma chamada à função midiOutGetNumDevs da API do Windows. Uma vez obtida a quantidade de dispositivos nós usamos um laço for e, no corpo deste laço, usamos o valor da variável de controle i para efetuar uma chamada à função midiOutGetDevCaps(), também da API do Windows: midiOutGetDevCaps(i, @MidiOutCaps, sizeof(TMidiOutCaps)); Esta função recebe o identificador do dispositivo (um valor inteiro começando em 0 e indo até a quantidade de dispositivos - 1), um ponteiro para um registro MidiOutCaps e o tamanho em bytes do registro. Se a função for executada com sucesso, o registro MidiOutCaps será preenchido com várias informações úteis, tais como o nome do dispositivo, o ID do fabricante, o ID do produto, versão do driver, tipo do dispositivo MIDI, número de vozes suportadas, número máximo de notas que podem ser tocadas simultaneamente, etc. Para finalizar, nós acessamos o campo szPname do registro MidiOutCaps e o adicionamos no ComboBox. Veja o código completo a seguir:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
MidiOutCaps: TMidiOutCaps; // este registro (record) está definido em MMSystem.pas
erro: Word;
begin
// uses MMSystem
ComboBox2.Clear;
// midiOutGetNumDevs retorna a quantidade de dispositivos de saída MIDI no sistema
for i := 0 to midiOutGetNumDevs - 1 do
begin
// vamos obter o dispositivo identificado pela variável i (uDeviceID)
erro := midiOutGetDevCaps(i, @MidiOutCaps, sizeof(TMidiOutCaps));
if erro <> MMSYSERR_NOERROR then
raise Exception.Create('Não foi possível obter a lista de dispositivos ' +
'de saída MIDI');
// vamos adicionar o nome do dispositivo no ComboBox
ComboBox2.Items.Add(StrPas(MidiOutCaps.szPname));
end;
end;
Ao executar este código o ComboBox será preenchido com valores semelhantes à: Microsoft GS Wavetable SW Synth MPU-401 Nas demais dicas relacionadas a este assunto você deverá sempre indicar o dispositivo de saída MIDI. Geralmente você poderá fornecer os valores 0 ou 1 para as funções MIDI que pedem o ID do dispositivo de saída. Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009. |
Python ::: Tkinter GUI Toolkit ::: Círculos, Ovais e Elípses |
Como desenhar círculos no Tkinter usando a função create_oval() do componente CanvasQuantidade de visualizações: 1472 vezes |
|
Em várias situações nós precisamos desenhar círculos não preenchidos e preenchidos em Tkinter. Para isso nós podemos usar a função create_oval() do componente Canvas. Em sua forma mais simples, a função create_oval() requer as coordenadas x e y a partir das quais o círculo ou elípse será desenhada e a largura e a altura do retângulo dentro do qual o círculo estará contido. Para desenhar uma oval ou elípse, basta manipular a largura ou altura desse retângulo. Veja um trecho de código no qual usamos a função create_oval() para desenhar um círculo com 5 pixels de largura da linha de desenho:
# vamos importar o módulo Tkinter
from tkinter import *
from tkinter.ttk import *
# método principal
def main():
# cria a janela principal da aplicação
janela_principal = Tk()
# define as dimensões da janela
janela_principal.geometry("400x350")
# define o título da janela
janela_principal.title("Uso do controle Canvas")
# vamos criar o objeto Canvas
canvas = Canvas(janela_principal, bg="white", width=400, height=350)
# colocamos o Canvas na janela principal
canvas.grid(row=0, column=0)
# agora vamos desenhar um círculo no Canvas começando nas
# coordenadas x=20 e y=30 centro de um retângulo de largura
# 150 pixels por uma altura de 150 pixels e largura da linha
# de 5 pixels
canvas.create_oval(20, 30, 150, 150, width="5")
# entramos no loop de eventos
janela_principal.mainloop()
if __name__== "__main__":
main()
Note que a largura da linha de desenho foi informada por meio do parâmetro width. Se quisermos definir também a cor da linha do desenho, basta usarmos o parâmetro outline e fornecer a cor desejada. |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




