Códigos de versões do Delphi e Diretivas de compilação

Sabe aqueles componentes feitos para múltiplas versões do Delphi que tem várias diretivas para saber qual é a versão do Delphi e assim mudar o código em tempo de compilação?

Segue abaixo uma lista das diretivas de compilação/comnplicação :)

São mais ou menos assim:
{$IFDEF VER210}
//algum código aqui compatível com essa versão
{$ELSE}
//outro código genérico
{$ENDIF}

Seguem abaixo os códigos das versões:


VER80 - Delphi 1
VER90 - Delphi 2
VER100 - Delphi 3
VER120 - Delphi 4
VER130 - Delphi 5
VER140 - Delphi 6
VER150 - Delphi 7
VER160 - Delphi 8
VER170 - Delphi 2005
VER180 - Delphi 2006
VER180 - Delphi 2007
VER185 - Delphi 2007
VER200 - Delphi 2009
VER210 - Delphi 2010
VER220 - Delphi XE

É útil para você criar bibliotecas que compilem tanto em Delphi como em Lazarus, pois você pode usar um {$IFDEF FPC}.

Tente rodar o exemplo abaixo nos Delphis 2010, XE e 7.


procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF VER210}
  ShowMessage('Delphi 2010');
{$ELSE}
  {$IFDEF VER220}
    ShowMessage('Delphi XE');
  {$ELSE}
    ShowMessage('Whatever Version');
  {$ENDIF}
{$ENDIF}
end;

Happy Coding ;)

Comentários

  1. Em que arquivo do Delphi consigo saber qual a versão do mesmo? Em outras palavras, onde consigo descobrir no Delphi a sua versão ?

    ResponderExcluir
  2. Se desejar apenas saber a versão do seu Delphi use o help --> about.

    Se desejar saber a versão do compilador em tempo de compilação eu não sei se tem algum arquivo específico para isso. A melhor saída é montar um arquivo como esse do exemplo, com um monte de ifdefs e usando as versões de ver80 até ver220. Você também pode usar informações obtidas do executável do Delphi. Para ter essas informações em design-time você precisa desenvolver um expert para a IDE ou um componente.

    para obter informações de versão dos arquivos do Delphi: http://delphi.about.com/cs/adptips2001/a/bltip0701_4.htm

    ResponderExcluir
  3. Existe alguma diretiva de compilação para a versão do Windows?

    ResponderExcluir
  4. Tem diretiva para ver se é windows ou linux, agora diretiva para versão do windows eu não conheço.
    Você pode usar a api do windows para saber a versão, veja:
    http://www.planetadelphi.com.br/artigo/50/verificando-a-versao-do-windows

    e

    http://support.microsoft.com/kb/189249/

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Detectar o encoding de um arquivo para não corromper ao transformá-lo

erro "ora-12154: tns: não foi possível resolver o identificador de conexão especificado"

Quebras de linha no Delphi 2010