![]() |
|
||||
Código-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimentoDiga 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 |
|||||
Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Revit C# ::: Dicas & Truques ::: Tratamento de Erros |
Como corrigir o erro OperationCanceledException em macros e add-ins do Revit C# APIQuantidade de visualizações: 527 vezes |
|
Nesta dica mostrarei como podemos tratar a exceção OperationCanceledException em macros e plug-ins feitos para o Revit usando a Revit C# API. Esta exceção está no namespace Autodesk.Revit.Exceptions e deve ser declarada por seu nome completo, para não ser confundida com System.OperationCanceledException. O erro OperationCanceledException ocorre quando uma operação é cancelada de forma inesperada. Por exemplo, no código abaixo nós pedimos para o usuário selecionar um grupo e, em seguida, informar um ponto na área de desenho do Revit para que o grupo seja copiado e colocado no ponto indicado. Se o usuário clicar com o botão direito ou pressionar Esc, a operação é cancelada automaticamente. O tratamento da exceção OperationCanceledException nos permite reagir a isso, indicando ao usuário o melhor caminho a ser seguido. O código apresentado aqui já foi visto em dicas e truques sobre a criação e manipulação de grupos de elementos no Revit usando a Revit C# API. No entanto, no código apresentado eu não fiz o tratamento de exceções. Veja o código Revit C# API completo para o exemplo:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
namespace Estudos {
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
public partial class ThisApplication {
private void Module_Startup(object sender, EventArgs e) {
// vamos obter uma referência ao Document ativo
Document doc = this.ActiveUIDocument.Document;
// Vamos definir um objeto Reference para guardar
// o elemento selecionado pelo usuário
Reference ref_selecionado = null;
// pedimos para o usuário selecionar um grupo
Selection selecao = this.ActiveUIDocument.Selection;
try {
ref_selecionado = selecao.PickObject(ObjectType.Element,
"Selecione um grupo");
Element elem = doc.GetElement(ref_selecionado);
Group group = elem as Group;
// vamos pedir para o usuário selecionar um ponto na área de
// desenho do Revit
XYZ ponto = selecao.PickPoint(
"Selecione um ponto para posicionar o grupo");
// criamos uma nova transação e posicionamos a cópia do
// grupo nas coordenadas indicadas pelo usuário
Transaction transacao = new Transaction(doc);
transacao.Start("Copiar Grupo no Revit");
doc.Create.PlaceGroup(ponto, group.GroupType);
transacao.Commit();
// mostramos o resultado
TaskDialog.Show("Aviso", "O grupo foi copiado com sucesso.");
}
// Se o usuário clicar com o botão direito ou pressionar Esc
catch (Autodesk.Revit.Exceptions.OperationCanceledException ex) {
TaskDialog.Show("Aviso", "Erro: Operação cancelada pelo usuário");
}
catch (Exception ex) {
TaskDialog.Show("Aviso", "Erro: " + ex.Message);
}
}
private void Module_Shutdown(object sender, EventArgs e) {
// para fazer alguma limpeza de memória ou algo assim
}
#region Revit Macros generated code
private void InternalStartup() {
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
}
}
Se o usuário cancelar a operação, ou seja, não selecionar nenhum grupo (talvez pressionando a tecla Esc), o código reagirá e mostrará a mensagem: Erro: The user aborted the pick operation. Se, em vez de selecionar um grupo, o usuário selecionar um outro elemento, então a mensagem de erro será: Erro: Referência de objeto não definida para uma instância de um objeto. |
C# ::: Windows Forms ::: TextBox |
Como retornar o tamanho do texto de um TextBox em C# Windows Forms usando a propriedade TextLengthQuantidade de visualizações: 9704 vezes |
|
A propriedade TextLength da classe TextBox do C# Windows Forms nos permite obter a quantidade de caracteres digitadas na caixa de texto, o seja, o tamanho da string presente no controle. Veja um exemplo C# Windows Forms no qual temos um botão button1 e uma caixa de texto textbox1. Ao digitar algum conteúdo e clicar no botão, uma mensagem MessageBox exibirá a quantidade de caracteres digitados:
private void button1_Click(object sender, EventArgs e) {
// vamos obter o tamanho do texto do TextBox
int tamanho = textBox1.TextLength;
MessageBox.Show("A caixa de texto contém " +
tamanho + " caracteres.");
}
Ao executar este código C# Windows Forms nós teremos um resultado parecido com: A caixa de texto contém 10 caracteres. |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como acessar os caracteres individuais de uma palavra ou frase em Portugol usando a função obter_caracter() da biblioteca TextoQuantidade de visualizações: 864 vezes |
|
Em algumas situações nós precisamos acessar os caracteres individuais de uma palavra ou frase no Portugol Studio ou Portugol Web Studio. Para isso nós podemos usar a função obter_caracter() da biblioteca Texto. Esta função pede, como primeiro argumento, a palavra ou frase a partir da qual o caractere será extraído e, como segundo argumento, o índice do caractere (sempre começando em 0 para o primeiro caractere). Veja um programa Portugol completo no qual obtemos o primeiro caractere de uma palavra:
programa {
// vamos importar a biblioteca Texto
inclua biblioteca Texto --> tx
funcao inicio() {
cadeia palavra = "PORTUGOL"
caracter letra = tx.obter_caracter(palavra, 0)
escreva("A letra retornada é: ", letra)
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: A letra retornada é: P Veja agora como podemos usar o laço PARA para percorrer e exibir todos os caracteres individuais da palavra ou frase:
programa {
// vamos importar a biblioteca Texto
inclua biblioteca Texto --> tx
funcao inicio() {
cadeia palavra = "PORTUGOL"
para (inteiro i = 0; i <= tx.numero_caracteres(palavra) - 1; i++) {
caracter letra = tx.obter_caracter(palavra, i)
escreva("A letra é: ", letra, "\n")
}
}
}
Ao executar o código novamente nós teremos o seguinte resultado: A letra é: P A letra é: O A letra é: R A letra é: T A letra é: U A letra é: G A letra é: O A letra é: L |
Python ::: Dicas & Truques ::: Lista (List) |
Curso completo de Python - Como obter a quantidade de itens em uma lista PythonQuantidade de visualizações: 8999 vezes |
|
Nesta dica mostrarei como podemos usar a função len() da linguagem Python para obtermos a quantidade de itens em um objeto List. Não deixe de ver outros exemplos de List nesta mesma seção. Veja o código Python completo para o exemplo:
def main():
# cria uma lista de nomes
nomes = ['Carlos', 'Ricardo', 'Osmar']
# obtém a quantidade de elementos na lista
print("A lista contém %d itens" % len(nomes))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: A lista contém 3 itens |
LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em LispQuantidade de visualizações: 1387 vezes |
|
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em Common Lisp usando-se a função REM, que retorna o resto de uma divisão por inteiros. Veja o exemplo a seguir:
; variáveis que vamos usar no programa
(let ((num))
; Vamos ler um número inteiro
(princ "Informe um valor inteiro: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num
(setq num (read))
; vamos testar se o número informado é par ou ímpar
(cond
((= 0 (rem num 2))
(princ "Você informou um número par"))
(T (princ "Você informou um número ímpar"))
)
)
Ao executar este programa Common Lisp nós teremos o seguinte resultado: Informe um valor inteiro: 8 Você informou um numero par É importante observar que a maioria das implementações Lisp fornecem as funções EVENP e ODDP que permitem testar se um número é par ou ímpar. O objetivo dessa dica foi fazer uma comparação entre a Common Lisp e outras linguagens de programação na realização desta tarefa. |
Veja mais Dicas e truques de LISP |
Dicas e truques de outras linguagens |
|
C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






