![]() |
|
||||
![]() 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 |
Você está aqui: Delphi ::: Win32 API (Windows API) ::: Tipos de Dados |
||||||||||||||||
Algumas funções da API do Windows mostram o tipo de dados LPTSTR. Qual o tipo compatível em Delphi?Quantidade de visualizações: 11753 vezes |
||||||||||||||||
Muitas vezes encontramos funções na API do Windows que possuem parâmetros do tipo LPTSTR. Veja um exemplo:
Esta função é usada para obter o nome do usuário atualmente logado no sistema. Note que ela possui dois parâmetros: lpBuffer - Um ponteiro para um buffer de caracteres que receberá o nome do usuário; lpnSize - Este parâmetro informa, na entrada, o tamanho do buffer de caracteres e, na saída, informa a quantidade de caracteres copiados para o buffer. Mas, como podemos usar esta função a partir do Delphi se não temos este tipo de dados (LPTSTR) em Delphi? Para o tipo LPTSTR nós podemos fornecer uma string terminada em null (#0). E a melhor de forma de se fazer isso é declarando uma matriz de Char. Veja:
Um cuidado que devemos ter é nunca fornecer um buffer muito pequeno para as funções da API do Windows que esperam um ponteiro para strings do tipo LPTSTR. Experimente, por exemplo, fornecer uma matriz de apenas dois caracteres para a função GetUserName(). A menos que o nome de usuário no seu computador tenha apenas uma letra, a chamada à função falhará. Em Delphi o tipo PChar é um ponteiro para uma string terminada em null. Podemos usá-la também, mas, neste caso, somos responsáveis por alocar memória para a string usando a procedure GetMem() e liberá-la explicitamente usando FreeMem(). Veja;
Finalmente podemos declarar o buffer como String, usar a procedure SetLength() para ajustar seu tamanho e convertê-la para PChar antes de enviá-la à função GetUserName(). Veja como isso pode ser feito:
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
||||||||||||||||
![]() |
||||||||||||||||
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
||||
Como centralizar os títulos das colunas (ou o conteúdo de qualquer célula) de um TStringGrid do DelphiQuantidade de visualizações: 13584 vezes |
||||
Em algumas situações nós precisamos centralizar os títulos das colunas de um TStringGrid. Em geral os títulos das colunas são exibidos nas células da primeira linha fixa do TStringGrid. Nesta dica eu mostrarei a forma mais comum de alcançar este efeito. Note que a técnica pode ser usada para centraliar o conteúdo de qualquer célula da grid:
Aqui nós temos duas chamadas à função SetTextAlign() da API do Windows. Na primeira vez nós obtemos o alinhamento atual e definimos o novo alinhamento como TA_CENTER. Na segunda chamada nós voltamos o alinhamento anterior. Se não fizermos este procedimento, todas as demais células da grid terão seus conteúdos também alinhados ao centro. | ||||
Delphi ::: Dicas & Truques ::: Aplicativos e Outros |
||||
Como calcular a distância entre dois pontos na terra em DelphiQuantidade de visualizações: 1315 vezes |
||||
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Delphi completo:
Ao executar este código Delphi nós teremos o seguinte resultado: Informe a primeira latitude: -16,674551 Informe a primeira longitude: -49,303598 Informe a segunda latitude: -15,579321 Informe a segunda longitude: -56,10009 A distância entre os dois pontos é: 736,9 kms Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton. Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. | ||||
Delphi ::: VCL - Visual Component Library ::: TListBox |
||||||||
Como adicionar itens em uma ListBox do Delphi usando a função Add()Quantidade de visualizações: 14186 vezes |
||||||||
Itens em uma TListBox podem ser adicionados usando-se o método Add() da propriedade Items, um objeto da classe TString. Este método aceita uma string representando o novo ítem e retorna um inteiro cujo valor é o índice do novo ítem. Veja o seguinte trecho de código:
Note que neste exemplo não fizemos uso do valor inteiro retornado pelo método Add(). Caso isso seja necessário, podemos usar código parecido com:
É importante notar que, em uma TListBox não ordenada, ou seja, o valor de sua propriedade Sorted é false, o método Add() sempre adicionará o novo item no final da lista. Em uma lista ordenada, o item é inserido em uma posição determinada pela ordenação alfabética dos demais itens. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. | ||||||||
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |