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
>>
>>
>>
> 

Responder a