Uma das discussões mais antigas e recorrentes nos fóruns de Delphi e Pascal gira em torno de uma verificação simples: devemos usar Assigned(Variavel) ou Variavel <> nil?
À primeira vista, ambas parecem fazer exatamente a mesma coisa: verificar se um ponteiro ou referência de objeto contém um endereço válido de memória. Muitos desenvolvedores escolhem um ou outro baseando-se puramente em legibilidade ou hábito (“Assigned é mais elegante” vs “<> nil é mais explícito“).
No entanto, há uma razão técnica profunda para a existência da função Assigned, e ela remonta às origens do Delphi 1 e à arquitetura da VCL. Entender isso é crucial, especialmente se você desenvolve componentes.