Primero quiero recomendarte leer un poco de POO en Delphi, y en genral.
Cita:
Posteado originalmente por Giniromero
¿Sólo puede ponerse sender, cuando este procedure esté asociado a alguna acción relacionada con un objeto?
|
Tu puedes crear procedimientos con los parámetros que quieras, y dependerá de como lo llames con los valores que llegan. En delphi los eventos se manejan como "punteros a procedimentos" en concreto variables del tipo "procedure of object" y en su mayoría TNotifyEvent, que es el tipo de evento que solo tiene Sender: TObject como parámetro. La mayoría de los eventos son de este tipo, y dependen de como haya sido programado la clase, del valor que recibirás en el parámetro cuestionado. En los componentes que trae Delphi, siempre que tienes este parámetro en un evento, refiere a quien llamó a este evento.
Cita:
Posteado originalmente por Giniromero
De todos modos, ¿por que me da problemas si no pongo:
NombreForm := TNombreForm.Create(Self);
antes de llamar al NombreForm.showmodal ?
|
NombreForm es una variable del tipo TNombreForm que no contendrá nada hasta que se le asigne algo al igual que todas las variables de cualquier tipo, en este caso en particular lo que tienes que asignarle es un nuevo TNombreForm, que es lo que haces al hacer el create!
Código:
var
NombreForm: TNombreForm;
begin
NombreForm := TNombreForm.Create(Nil);
try
if NombreForm.ShowModal = mrOk Then
...
finally
NombreForm.Free;
end;
Como podés ver en este ejemplo, no le asigno Owner ya que libero este objeto en la línea NombreForm.Free. Las clases que tienen Owner son las clases Persistentes, heredadas de la clase TPersistent, y dependerá de la lógica del progama si utilizas o no el Owner, y quién será este.
Reitero que te recomiendo leer algun libro, pues los conceptos que me preguntas son mas que básicos, y afectarán directamante la calidad del código que escribas.
Saludos!