Ver Mensaje Individual
  #4  
Antiguo 26-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cuando pones

Código Delphi [-]
MiComponente1.MiBmp := Image1.picture.Bitmap;

estás asignando un valor a la propiedad MiBmp. Como en la declaración de esta propiedad tienes puesto un método de acceso para escritura (write), entonces la asignación es equivalente a:

Código Delphi [-]
MiComponente1.SetMiBmp(Image1.picture.Bitmap);

En el segundo caso:

Código Delphi [-]
MiComponente1.MiBmp.Assign(Image1.picture.Bitmap);

No estás asignando un valor a la propiedad, no hay una sentencia de la forma

Código:
objeto.propiedad := valor;
Lo que estás haciendo es usar el método Assign del objeto

Código:
MiComponente1.MiBmp
Piensa lo que tendría que hacer el compilador cuando encuentra:

Código:
MiComponente1.MiBmp.Assign(Image1.picture.Bitmap);
Como ha de usar el método Assign de MiBmp, primero debe saber quién es MiBmp, es decir, debe leer la propiedad. En la declaración de la propiedad ve que no hay método deacceso de lectura (read) sino una referencia directa a FMiBmp, entonces usa el método Assign de este objeto FMiBmp.

Que no te confunda el hecho de estar usando un método que porcasualidad se llama Assign, con el hecho de estar asignando un valor a una propiedad como en el primer caso que planteas.

// Saludos
Responder Con Cita