Software 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 |
Você está aqui: C# ::: Windows Forms ::: Formulários e Janelas |
|
Usando a propriedade DialogResult para retornar o resultado do fechamento de uma janela de diálogoQuantidade de visualizações: 14194 vezes |
|
Caixas de diálogos são, em geral, formulários normais que sofrem algumas modificações de forma a alterar seu comportamento e a forma com a qual o usuário lidará com os mesmos. Imaginemos, inicialmente, um formulário para a digitação de um nome de usuário e senha. Aqui o comportamento padrão da aplicação é parar quaisquer outros procedimentos e concentrar apenas no resultado do formulário de usuário e senha. Se o usuário informar os dados corretamente e pressionar o botão OK, o processamento do formulário principal continua. Do contrário qualquer outra ação pode ser iniciada. Assim, caixas de diálogos são formulários ou janelas secundários que exibimos com o propósito de obter alguma informação necessária para continuar uma determinada tarefa. Por serem exibidas de forma modal, a execução do código da janela principal é interrompida até que a caixa de diálogo seja fechada. É comum, na programação Windows, o formulário principal querer saber o resultado do fechamento da janela de diálogo, ou seja, o usuário pressionou o botão OK? Ou foi o botão Cancelar? Para isso podemos usar a propriedade DialogResult. a) Comece criando uma janela secundária para a aplicação. Vá em Project -> Add Windows Form. Marque Windows Form e dê um nome a ele, por exemplo, "Dialogo.cs". Clique o botão Add; b) Já temos o novo formulário. Agora vamos transformá-lo em uma caixa de diálogo modal. Altere as propriedades abaixo para seus novos valores: FormBorderStyle = FixedDialog MaximizeBox = False MinimizeBox = False ShowInTaskBar = False StartPosition = CenterParent c) Coloque dois botões no formulário secundário. Dê o nome btnOK para o primeiro botão. Altere sua propriedade Text para "OK" e defina o valor "OK" para sua propriedade DialogResult. Dê o nome btnCancelar para o segundo botão. Altere sua propriedade Text para "Cancelar" e defina o valor "Cancel" para sua propriedade DialogResult. d) Agora vamos abrir a janela secundária a partir da primeira janela. Coloque o código abaixo no evento Click de um botão: private void button1_Click(object sender, EventArgs e){ // vamos criar a caixa de diálogo e exibí-la Dialogo dialogo = new Dialogo(); // vamos exibir de forma modal dialogo.ShowDialog(); // o código abaixo é executado depois que a janela de diálogo // é fechada if(dialogo.DialogResult == DialogResult.OK){ MessageBox.Show("O botão OK foi pressionado"); } else if(dialogo.DialogResult == DialogResult.Cancel){ MessageBox.Show("O botão Cancelar foi pressionado"); } else{ MessageBox.Show("A janela foi fechada de outra forma"); } } Execute a aplicação e clique no botão. A janela de diálogo será exibida. Clique no botão OK ou Cancelar e veja o resultado. Note que a janela é fechada imediatamente e o resultado do fechamento é fornecido à janela pai. Há muita coisa acontecendo aqui, mas o mais importante é perceber que quando atribuímos valores para a propriedade DialogResult dos botões de uma janela de diálogo, não há a necessidade de chamar o método Close() da janela quando os botões forem pressionados. Além disso, fechar a janela clicando no X do canto superior direito causa o mesmo efeito de DialogResult.Cancel. Os valores disponíveis na enumeração DialogResult são: Abort - O valor de retorno da caixa de diálogo é Abort (geralmente enviado a partir de um botão com o texto "Abortar"; Cancel - O valor de retorno da caixa de diálogo é Cancel (geralmente enviado a partir de um botão com o texto "Cancelar"; Ignore - O valor de retorno da caixa de diálogo é Ignore (geralmente enviado a partir de um botão com o texto "Ignorar"; No - O valor de retorno da caixa de diálogo é No (geralmente enviado a partir de um botão com o texto "Não"; None - Não há retorno da caixa de diálogo, o que significa que a janela modal continua executando; OK - O valor de retorno da caixa de diálogo é OK (geralmente enviado a partir de um botão com o texto "OK"; Retry - O valor de retorno da caixa de diálogo é Retry (geralmente enviado a partir de um botão com o texto "Repetir"; Yes - O valor de retorno da caixa de diálogo é Yes (geralmente enviado a partir de um botão com o texto "Sim". |
|
Link para compartilhar na Internet ou com seus amigos: | |
Python ::: wxPython ::: wxFrame |
Como usar a classe wx.Frame para criar um objeto window top-level (janelas top-level) em aplicações wxPythonQuantidade de visualizações: 8566 vezes |
Um objeto window top-level é um widget (geralmente um frame) que não está contido em nenhum outro widget na aplicação. É o que o usuário geralmente aponta e diz "Este é o programa". O objeto window top-level é geralmente a janela principal de sua aplicação e contém widgets (controles) e objetos de interface com os quais o usuário interage. Desta forma, a aplicação é encerrada quando todas as janelas top-level são fechadas. Sua aplicação deve ter no mínimo um objeto window top-level. O objeto window top-level geralmente é uma subclasse de wx.Frame, embora ele possa também ser uma subclasse de wx.Dialog. Na maioria das vezes, definiremos subclasses customizadas de wx.Frame para usar em nossas aplicações. Contudo, há um grande número de subclasses pré-definidas de wx.Dialog que fornecem muitos dos diálogos típicos que poderíamos encontrar em uma aplicação. A classe wx.Frame é derivada de: wx.TopLevelWindow, wx.Window, wx.EvtHandler e wx.Object. |
Java ::: Java para Engenharia ::: Unidades de Medida |
Como converter Centímetros Cúbicos em Metros Cúbicos em Java - Java para Física e EngenhariaQuantidade de visualizações: 176 vezes |
Em muitas situações nós temos uma medida de volume em cm3 e queremos transformá-la em m3, que é a medida de volume do Sistema Internacional (SI). Para isso só precisamos dividir os centímetros cúbicos por 1.000.000. Veja a fórmula: \[\text{Metros Cúbicos} = \frac{\text{Centímetros Cúbidos}}{1.000.000} \] Agora veja o código Java que pede para o usuário informar a medida de volume em centímetros cúbicos e a converte para metros cúbicos. Note que mostrei como exibir o resultado em notação científica e sem notação científica: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler a medida em centímetros cúbicos System.out.print("Informe os centímetros cúbicos: "); double cent_cubicos = Double.parseDouble(entrada.nextLine()); // agora calculamos os metros cúbicos double met_cubicos = cent_cubicos / 1000000.00; // e mostramos o resultado System.out.println("Você informou " + cent_cubicos + " centímetros cúbicos."); System.out.println("Isso equivale a " + met_cubicos + " metros cúbicos."); System.out.printf("Sem notação científica: %f\n", met_cubicos); } } Ao executar este código Java nós teremos o seguinte resultado: Informe os centímetros cúbicos: 35 Você informou 35.0 centímetros cúbicos. Isso equivale a 3.5E-5 metros cúbicos. Sem notação científica: 0,000035 |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como obter a quantidade de dias para um determinado ano usando a função DaysInAYear() do DelphiQuantidade de visualizações: 11227 vezes |
Quando estamos trabalhando com datas, geralmente precisamos saber a quantidade de dias que um determinado ano possui, ou seja, alguns anos possuem 365 dias, outros possuem 366. A unit DateUtils possui uma função chamada DaysInAYear() que serve para este propósito. Ela aceita um inteiro representando o ano desejado e retorna um inteiro representando a quantidade de dias que tal ano possui. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var ano, dias_ano: Integer; begin ano := 2010; // vamos obter a quantidade de dias para o // ano de 2010 dias_ano := DaysInAYear(ano); // exibe o resultado ShowMessage('O ano informado contém ' + IntToStr(dias_ano) + ' dias'); end; Este trecho de código nos informará que o ano de 2010 possui 365 dias. Note que o argumento para a função DaysInAYear() deve estar entre 1 e 9999 (inclusive). Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporárioQuantidade de visualizações: 381 vezes |
Pergunta/Tarefa: Dado o vetor: // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor no passo 1 do primeiro laço: 8 0 0 0 0 0 0 0 Rotação do vetor no passo 2 do primeiro laço: 8 5 0 0 0 0 0 0 Rotação do vetor no passo 3 do primeiro laço: 8 5 2 0 0 0 0 0 Rotação do vetor no passo 1 do segundo laço: 8 5 2 1 0 0 0 0 Rotação do vetor no passo 2 do segundo laço: 8 5 2 1 6 0 0 0 Rotação do vetor no passo 3 do segundo laço: 8 5 2 1 6 9 0 0 Rotação do vetor no passo 4 do segundo laço: 8 5 2 1 6 9 3 0 Rotação do vetor no passo 5 do segundo laço: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java: package estudos; public class Estudos { public static void main(String[] args) { // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; // mostramos o array na ordem original System.out.println("Array na ordem original:"); exibirVetor(valores); // vamos rotacionar o array 3 casas para a direita valores = rotacionarArray(valores, 3); // e mostramos o resultado System.out.println("Array depois de rotacionar 3 vezes:"); exibirVetor(valores); } // método usado para exibir o array public static void exibirVetor(int []vetor){ // percorremos cada elemento do vetor for (int i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " "); } System.out.println("\n"); } // método que recebe um vetor de inteiros e o rotaciona um // determinado número de vezes public static int[] rotacionarArray(int[] vetor, int n) { // vamos obter a quantidade de elementos no vetor int quant = vetor.length; // o número de rotações é maior que a quantidade de // elementos no vetor? Se for nós ajustamos o número // de rotações usando o operador de módulo if(n > quant){ n = n % quant; } // criamos um vetor temporário int[] resultado = new int[quant]; // o primeiro laço movimenta os elementos a partir // do valor de n for(int i = 0; i < n; i++){ resultado[i] = vetor[quant - n + i]; // mostramos o progresso System.out.println("Rotação do vetor no passo " + (i + 1) + " do primeiro laço:"); exibirVetor(resultado); } // ajustamos o índice para o primeiro elemento do vetor int indice = 0; for(int i = n; i < quant; i++){ resultado[i] = vetor[indice]; // mostramos o progresso System.out.println("Rotação do vetor no passo " + (indice + 1) + " do segundo laço:"); exibirVetor(resultado); indice++; // incrementa o índice } // retorna o vetor rotacionado return resultado; } } A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de VB.NET - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VB.NETQuantidade de visualizações: 127 vezes |
Pergunta/Tarefa: Escreva um programa VB.NET que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: ' declara, constrói e inicializa um vetor de 10 inteiros Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10} Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando VB.NET: Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' declara, constrói e inicializa um vetor de 10 inteiros Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10} ' vamos ler um valor inteiro Console.Write("Informe um valor: ") Dim pesquisa As Integer = Int32.Parse(Console.ReadLine()) ' vamos verificar quantas vezes o valor informado está ' contido no vetor Dim repeticoes As Integer = 0 For i As Integer = 0 To valores.Length - 1 If valores(i) = pesquisa Then ' encontrou? vamos contar esta ocorrência repeticoes = repeticoes + 1 End If Next ' vamos mostrar o resultado Console.WriteLine("O valor foi encontrado: " & repeticoes & " vezes") Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de VB.NET |
Veja mais Dicas e truques de VB.NET |
Códigos Fonte |
Software 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 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 |