Ante todo debes diferenciar algunos conceptos importantes.
En Delphi no existen las propiedades por defecto (No del todo, algo así existe con las array properties), entonces cuando escribes
Label1 := Algo, te estas refiriendo al objeto label1 y no a la propiedad text, sería como en VB hacer
SET Label1 = Algo
Delphi es un lenguaje fuertemente tipado, y exige integridad entre los tipos de datos, en VB es muy común asignar diferentes tipos de datos sin hacer casts de los mismos, en Delphi son muy pocos los casos, que podemos mezclar peras con batatas. (Solo cuando a la larga se trata del mismo tipo de dato)
En Delphi cada ves que creas un objeto, tienes que destruirlo, en VB nunca queda claro cuando se destruye un recordset, el proceso normal es asignarle nothing, si en Delphi le asignas nil a la variable, el objeto seguirá existiendo en memoria pero no se ha destruido..
Código:
var
MiQuery: TQuery;
begin
MiQuery := TQuery.Create(Self);
try
MiQuery.DatabaseName := 'MiBase';
MiQuery.SQL.Text := 'select * from Tabla where campo like ''A%''';
MiQuery.Open;
Label1.Caption := MiQuery.FieldByName('NOMBRE').AsString;
finally
MiQuery.Free;
end;