Você está aqui: Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como retornar a quantidade de registros em um TClientDataSet do Delphi usando a propriedade RecordCountQuantidade de visualizações: 11189 vezes |
Em algumas situações precisamos saber a quantidade de registros atualmente armazenados em um componente TClientDataSet. Para isso podemos usar a propriedade RecordCount, implementada originalmente na classe TDataSet e reimplementada na classe TClientDataSet. Veja um trecho de código no qual usamos o evento OnClick de um botão para exibir a quantidade de registros atualmento no TClientDataSet: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.Button3Click(Sender: TObject); var qRegistros: Integer; begin // obtém a quantidade de registros no TClientDataSet qRegistros := ClientDataSet1.RecordCount; // mostra o resultado ShowMessage('O ClientDataSet possui ' + IntToStr(qRegistros) + ' registros.'); end; Ao executar o código e clicar no botão você verá uma mensagem parecida com: "O ClientDataSet possui 20 registros.". Esta dica foi escrita e testada no Delphi 2009. |
Link para compartilhar na Internet ou com seus amigos: |
Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em DelphiQuantidade de visualizações: 1517 vezes |
Nesta dica mostrarei como podemos tirar proveito do Teorema de Pitágoras para obter a medida do cateto adjascente quando temos as medidas da hipotenusa e do cateto oposto. Este teorema diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos", o que torna a nossa tarefa, na linguagem Delphi, muito fácil. Comece observando a imagem a seguir: Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[b^2 = c^2 - a^2\] Veja que agora o quadrado do cateto adjascente é igual ao quadrado da hipotenusa menos o quadrado do cateto oposto. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem Delphi: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm2.Button1Click(Sender: TObject); var a, b, c: Real; begin c := 36.056; // medida da hipotenusa a := 20; // medida do cateto oposto // agora vamos calcular a medida da cateto adjascente b := sqrt(sqr(c) - sqr(a)); // e mostramos o resultado Edit1.Text := 'A medida do cateto adjascente é: ' + FloatToStr(b); end; Note que este cálculo foi feito a partir do evento Click de um botão Button1 e o resultado foi exibido na propriedade Text de uma caixa de texto Edit1. Ao executar este código Delphi nós teremos o seguinte resultado: A medida do cateto adjascente é: 30,0005855942847 Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada. |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor numérico inteiro em Delphi usando as funções StrToInt(), TryStrToInt() e StrToIntDef()Quantidade de visualizações: 33256 vezes |
Em algumas situações precisamos converter strings em valores numéricos do tipo inteiro. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos. Vamos começar com a função StrToInt() da unit SysUtils. Esta função recebe uma string representando um valor inteiro válido e retorna um valor inteiro. Veja o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var valor1, valor2, soma: Integer; begin // vamos receber as strings dos TEdits e converter // seus valores para inteiros valor1 := StrToInt(Edit1.Text); valor2 := StrToInt(Edit2.Text); // vamos obter a soma dos dois valores soma := valor1 + valor2; // vamos exibir o resultado. Note o uso de IntToStr() para // converter o valor inteiro em string ShowMessage('A soma é: ' + IntToStr(soma)); end; Note que, se a string sendo convertida possuir um valor inteiro inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToInt(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Integer que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var valor: Integer; begin // vamos tentar converter o valor da caixa de texto // em um inteiro if TryStrToInt(Edit1.Text, valor) then ShowMessage('Conversão efetuada com sucesso.') else ShowMessage('Erro na conversão'); end; Há ainda uma terceira possibilidade: usar a função StrToIntDef(). Esta função funciona exatamente da mesma forma que StrToInt(), exceto que agora, se houver um erro de conversão, um valor inteiro padrão será retornado. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var valor: Integer; begin // vamos converter o valor da caixa de texto // em um inteiro. Se a conversão não puder ser feita // o valor 10 será atribuído à varial valor valor := StrToIntDef(Edit1.Text, 10); // vamos exibir o resultado ShowMessage(IntToStr(valor)); end; Caso você precise trabalhar com inteiros de 64 bits, poderá usar as funções StrToInt64(), StrToInt64Def() e TryStrToInt64(). Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como aplicar cores alternadas às linhas de um TDBGrid do Delphi (efeito zebrinha)Quantidade de visualizações: 9534 vezes |
Em algumas situações gostaríamos de aplicar o efeito zebrinha, ou seja, aplicar cores alternadas às linhas de um controle TDBGrid. Esta técnica é muito útil quando temos grids com várias linhas e queremos facilitar a visualização dos dados por parte dos usuários. A forma mais comum de se aplicar cores alternadas às linhas do DBGrid é por meio do evento OnDrawColumnCell. Veja o trecho de código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var grid: TDBGrid; linha: Integer; begin // obtém um referência ao DBGrid grid := sender as TDBGrid; // obtém o número da linha atual usando a propriedade // RecNo da classe TDataSet linha := grid.DataSource.DataSet.RecNo; // o número da linha é par? if Odd(linha) then grid.Canvas.Brush.Color := clWhite else grid.Canvas.Brush.Color := clYellow; // vamos terminar de desenhar a célula grid.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; Execute este código e verá que a primeira linha é pintada de branco, a segunda de amarelo, a terceira de branco e assim por diante. Note que neste código eu não tratei a seleção de células, na qual a cor do texto se iguala ao branco do fundo da célula. Veja mais dicas nesta seção para saber como realizar esta tarefa você mesmo. Esta dica foi escrita e testada no Delphi 2009. |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Froude O número de Froude (Fr) é um coeficiente adimensional, frequentemente utilizado na hidráulica de condutos abertos para determinar a classificação do regime que o escoamento livre apresenta. Quando o Fr é igual a 1, o regime é classificado como crítico; com Fr > 1, o regime é supercrítico; e com Fr < 1, o regime é subcrítico. Sobre esta classificação afirma-se que: A) No regime crítico há equílibrio de forças e a velocidade é menor que a celeridade. B) No regime supercrítico, o escoamento é mais influenciado pelas forças gravitacionais. C) No regime supercrítico, o escoamento é regido pelas energias cinéticas e inerciais. D) No regime subcrítico ou torrencial, as forças gravitacionais regem o escoamento. E) No regime crítico não há equilíbrio entre as energias que influenciam o escoamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
Cálculo da vazão de dimensionamento de uma galeria de águas pluviais FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares, considerando-se uma chuva de projeto com intensidade de 60 mm/hora, duração igual ao tempo de concentração da bacia e coeficiente de escoamento superficial igual a 0,90, através do Método Racional, é: A) 150 m3/s B) 0,150 l/s C) 1,5 m3/s D) 150 l/s E) 15 m3/s Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O código de ética profissional: Concorrência A estrutura de mercado denominada "livre concorrência" tem como principal característica a competição empresarial de maneira correta, transparente e honesta. Nesse ambiente, é necessária a regulamentação da economia por parte do Estado, pois isso gera benefícios aos consumidores. Marque a alternativa que apresenta os benefícios decorrentes da regulamentação. A) A coletividade passa a contar com mais opções de produtos importados, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. B) A coletividade passa a contar com mais opções de produtos, preços e menos rigor na qualidade, além de oferecer às empresas um ambiente econômico saudável. C) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico monopolista. D) A coletividade passa a contar com mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. E) Os Estados menos desenvolvidos passam a contar com isenção de impostos, mais opções de produtos, preços e qualidade, além de oferecer às empresas um ambiente econômico saudável. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
A coleção Set da linguagem Python permite itens repetidos. A) Verdadeiro B) Falso Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual é a forma correta de se exibir um diálogo de alerta em JavaScript? A) msgBox("Texto do aviso"); B) alertBox("Texto do aviso"); C) alert("Texto do aviso"); D) msg("Texto do aviso"); Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi Delphi - Como selecionar um item de uma ListBox do Delphi em tempo de execução usando a propriedade ItemIndex |
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 |