As gerações indígenas terminaram e as suas gravuras e pinturas foram abandonadas e esquecidas. Até que nós as encontramos. Hoje são patrimônio da humanidade e nossa responsabilidade.

Início / Vestuário e Equipamentos - Desporto Grandes Marcas / Molten® - Bolas Basquetebol - Andebol - Futebol

Imóvel p/ renda com 6 casas e um salão 46m² (ACEITA BITCOIN) Renda estimada em R$ 6.100,00. Casa 1) sala + cozinha + 2 quartos + banheiro + quintal privativo. Casa 2) sala + cozinh...
Casa térrea em lote inteiro de 355,00m², com 2 dorms, 2 WCs, cozinha, sala estar/jantar, área de serviço, 6 vagas de garagem (ou mais), amp...
Apartamento bem localizado na região do Panambi pronto para morar.3 suítes, lavado, banheiro de empreg, varanda com churrasqueira,repleto de armários,4 vagas, deposito. Lazer compl...
Apartamento de luxo mobiliado de um dormitório Algarve Portugal a venda / troca Moderno e o ambiente tranquilo um retiro acolhedor para fugir à agitação do dia-a-dia. A propriedade...
Vendo apto no Condomínio Mais Flora Morumbi em Andar alto (21 andar ) com 2 vagas escrituradas. Medidor de água e gás individualizado. iluminação toda em LED, closet no dormitório...

Eu já falei outras vezes que uma das maiores características que um programador precisa ter é a curiosidade. Praticamente todo e qualquer sistema que você fez ou fará, foi ou será baseado em algum outro sistema que você já tenha visto ou no comportamento de alguma "entidade" da vida real, para a qual você pretenda fazer alguma automação programática. Essa observação e esta tomada de decisão só são possíveis se você for uma pessoa curiosa. A curiosidade te motiva a tentar imitar fórmulas de sucesso, claro! Ninguém em sã consciência se espelha em maus hábitos e na programação, como tudo na vida, isso não é diferente.
Sempre que eu usava a rotina Format eu achava curioso o seu segundo parâmetro. Ele era passado como um Open Array, no entanto era possível passar valores de tipos diferentes, logo, um array heterogêneo! Depois de algum tempo eu descobri que esse parâmetro tinha um nome oficial. Tratava-se do Variant Open Array Parameter, ou V.O.A.P. para resumir.
Antes de falar a respeito do V.O.A.P. vou explicar rapidamente o que é um Open Array Parameter (O.A.P.). Um O.A.P. nada mais é do que um array homogêneo usado como parâmetro de uma rotina (procedure ou function) e tem a seguinte forma:
Um O.A.P. é bem semelhante a um array dinâmico, mas ele não é um array dinâmico. Observe o seguinte trecho de pseudocódigo (comentários no próprio código):
Como se pode observar, a diferença entre parâmetros Open Array e parâmetros que são arrays dinâmicos simples é bem mais evidente do que parece. Se nota também o porquê do nome ser "Open Array", é porque é possível passar qualquer tipo de representação de arrays, sejam eles estáticos, dinâmicos, aliases ou mesmo construídos on the fly.
Entendido o que são os O.A.P. chegou a hora de conhecer o próximo nível: como permitir a passagem de valores de tipos diversos. Já falei no início do artigo que isso é possível usando-se V.O.A.P. que nada mais são do que O.A.P. formados por elementos do tipo TVarRec. Sendo assim os V.O.A.P. podem ser definidos da seguinte forma: