Leslyn Fernandes wrote: > é... parece que não tem jeito mesmo... Como não tem jeito? A resposta que eu passei _é_ o jeito.
Se você não quer se preocupar com criar e destruir instância, então deveria usar tipo objeto ao invés de classe: type TMyObj = object ... var VMyObj: TMyObj; begin VMyObj.Valor := 1; Mas é muito menos flexível. -- Joao Morais > > On 11/5/07, Joao Morais <[EMAIL PROTECTED]> wrote: >> Leslyn Fernandes wrote: >>> Eu gostaria de saber se há alguma forma de fazer com que, quando eu >> declare >>> uma variável "X : TMyClass", e tente fazer "X.Valor := 1", por exemplo, >> eu >>> consiga uma forma de implementar o create da classe automaticamente... >> Desta forma, não, de alguma forma você tem que dizer a X qual é o >> endereço do objeto, e quem faz isto é o resultado do Create: >> >> X := TMyClass.Create; >> X.Valor := 1; >> >> Você pode construir um método de classe ou outro construtor na sua >> classe, a fim de associar um valor à propriedade e retornar o endereço >> do objeto: >> >> public >> constructor CreateComValor(Value: Integer); >> >> ou >> >> public >> class function CreateComValor(Value: Integer): TMyClass; >> >> O construtor cria a instância de TMyClass sozinho; o class function é >> mais "propósito geral", você tem que criar a instância manualmente e >> depois associar o valor. >> >> constructor TMyClass.CreateComValor(Value: Integer); >> begin >> inherited Create; >> Valor := Value; >> end; >> >> ou >> >> class function TMyClass.CreateComValor(Value: Integer): TMyClass; >> begin >> Result := Create; >> Result.Valor := Value; >> end; >> >> -- >> Joao Morais >> >> >> >