Uma instrução With (com) é uma abreviação para
referenciar os campos de um registro ou os campos, propriedades e
métodos de um objeto. A sintaxe de uma instrução With é:
with obj do declaração
Ou
with obj1, ..., objn do declaração
O obj é uma expressão que produz uma referência a um registro, instância
de objeto, ocorrência de classe, interface ou tipo de classe (metaclass) e
declaração é qualquer instrução simples ou estruturada. Dentro da instrução,
você pode se referir a campos, propriedades e métodos de obj
usando apenas seus identificadores, isto é, sem qualificadores.
Por exemplo, dadas as declarações:
type
TDate = record
Day: Integer;
Month: Integer;
Year: Integer;
end;
var
OrderDate: TDate;
Você poderia escrever o seguinte código usando
uma instrução with:
with OrderDate do
if Month = 12 then
begin
Month := 1;
Year := Year + 1;
end
else
Month := Month + 1;
ou você poderia escrever o seguinte código sem usar uma instrução with:
if OrderDate.Month = 12 then
begin
OrderDate.Month := 1;
OrderDate.Year := OrderDate.Year + 1;
end
else
OrderDate.Month := OrderDate.Month + 1;
Se a interpretação de obj envolve a indexação de matrizes ou
ponteiros de referência, essas ações são executadas uma vez,
antes que a instrução seja executada. Isso torna as instruções eficientes
e concisas. Isso também significa que as atribuições a uma variável dentro
da instrução não podem afetar a interpretação de obj durante a
execução atual da instrução with.
Cada referência de variável ou nome de método em uma instrução with é
interpretada, se possível, como um membro do objeto ou registro
especificado. Se houver outra variável ou método com o mesmo nome que
você deseja acessar a partir da instrução with, será necessário incluí-la
com um qualificador, como no exemplo a seguir:
with OrderDate do
begin
Year := Unit1.Year;
...
end;
18/04/2026 03:38
Delphi
2015
Política de privacidade
Utilizamos cookies e outras tecnologias semelhantes para melhorar a sua experiência no nosso site.
Ao continuar navegando, você declara que está de acordo com a nossa política de privacidade.