quarta-feira, 16 de setembro de 2015

Aprenda a usar o tipo de dados WORD da API do Windows em seus programas Delphi


Em várias ocasiões nós encontramos o tipo de dados WORD em códigos que interagem com a API do Windows. Desta forma, verificando a documentação do Windows descobrimos que este tipo está definido no header WinDef.h da seguinte forma:

typedef unsigned short WORD;

Em C/C++ um short possui 16 bits e o modificador unsigned informa que somente valores positivos são permitidos. Assim, sabemos que o tipo WORD pode guardar 16 bits (ou 2 bytes) de informação. Veja agora como podemos obter os valores máximo e mínimo de um WORD a partir de código Delphi:

procedure TForm3.Button2Click(Sender: TObject);
var
  maximo, minimo: WORD;
begin
  // vamos obter o valor máximo (65.535)
  maximo := High(WORD);

  // vamos obter o valor mínimo (0)
  minimo := Low(WORD);

  // vamos mostrar o resultado
  Memo1.Lines.Add('O valor máximo de um WORD é: ' +
    (IntToStr(maximo)));
  Memo1.Lines.Add('O valor mínimo de um WORD é: ' +
    (IntToStr(minimo)));
end;

Ao executar este código teremos o seguinte resultado:

O valor máximo de um WORD é: 65535
O valor mínimo de um WORD é: 0

Mas, o Delphi também possui um tipo Word. Qual a diferença entre o WORD (da API do Windows) e o Word do Delphi? Não há diferença. O tipo Word também é um inteiro de 16 bits não sinalizado cuja faixa de valores vai de 0 até 65.535. O fato de usarmos WORD em vez de Word em código que interage com a API do Windows é simplesmente para facilitar a tradução do código para outras linguagens que também possuem acesso direto à Win32 API.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Nenhum comentário:

Postar um comentário