Pular para o conteúdo principal

Postagens

Palavra com a primeira letra em Maiúsculo (Delphi)

Para casos onde temos palavras que são armazenadas todas em maiúsculo, geralmente surge a necessidade de utiliza-la de uma maneira mais elegante, como o título sugere, então vamos lá: function Primeira_Letra_Maiuscula(p_texto: string): string; begin IF p_texto <> '' THEN result := UpperCase(Copy(p_texto,1,1))+LowerCase(Copy(p_texto,2,Length(p_texto))); end;

Consulta Top-N SQL Server

Esse tipo de consulta é útil em situações onde precisamos encontrar, por exemplo, os N maiores ou menores dentro de determinado grupo, os funcionários mais bem pagos, os que vendem mais, as mercadorias menos vendidas e assim por diante. No SQL Server utilizamos o predicado TOP para recuperar um determinado número de registros e ordenamos a consulta com o ORDER BY. Baixe aqui o script com a criação da tabela e os inserts para o teste. No exemplo abaixo desejamos encontrar os três funcionários que ganham mais: SELECT TOP 3 NOM_FUNC NOME, SAL_FUNC SALARIO FROM FUNCIONARIOS ORDER BY SAL_FUNC DESC Agora desejamos encontrar os três funcionários que possuem os menores salários: SELECT TOP 3 NOM_FUNC NOME, SAL_FUNC SALARIO FROM FUNCIONARIOS ORDER BY SAL_FUNC Podemos perceber que ambos os códigos são idênticos, precisamos apenas mudar a ordem na cláusula ORDER BY.

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit: procedure EditChange(Sender: TObject); var vl_label : TLabel; //variável do tipo Label begin vl_label := TLabel.Create(self); //criamos um label WITH vl_label DO BEGIN Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit Caption := TEdit(sender).Text; //pegamos o conteúdo do edit SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit END ; vl_label.Free; end ;