[DUG] Stupid /easy question

Roger Kingaby roger at kingaby.net
Thu Oct 15 11:22:42 NZDT 2009


It's years since I saw anybody use the "absolute" keyword. The number  
of times I've had to explain what it does and why you'd use it:-) What  
better example could you find.

Regards

Roger

On 15/10/2009, at 11:11 AM, Robert martin wrote:

> That worked a charm :)
>
> Cheers
>
>
>
>
>
> Jolyon Smith wrote:
>>
>> As has been mentioned you can use the “built in” enumerator, but  
>> that will only yield Pointer values, so you would then have to  
>> typecast the results, or you should be able to use “absolute” to  
>> achieve the typecast “declaratively” in the var declarations:
>>
>> var
>>   addrFormatEnum: Pointer;
>>   addrFormat: TCountryAddressFormat absolute addrFormatEnum;
>> begin
>>   for addrFormatEnum in Self do
>>   begin
>>     Strings.AddObject(addrFormat.CountryName,
>>                       TObject(addrFormat.CountryRefAsInteger));
>>   end;
>> end;
>>
>> But note that the above code is untested either for compilation or  
>> behaviour.  J
>>
>>
>> From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz 
>> ] On Behalf Of Robert martin
>> Sent: Thursday, 15 October 2009 10:45 a.m.
>> To: NZ Borland Developers Group - Delphi List
>> Subject: Re: [DUG] Stupid /easy question
>>
>> Hi
>>
>> Yeah I read examples of how to add enumerators but since  
>> TObjectList already has one I didn't think I needed to.  Guess I  
>> do.  Seems like it is a bit too much work for basic (small) classes  
>> not frequently used (such as the one im working on).  Will give it  
>> a go anyway :)
>>
>> Thanks
>> Rob
>>
>>
>>
>>
>>
>> Jolyon Smith wrote:
>> You will have to implement an enumerator for your  
>> TCountryAddressFormats
>> class that returns TCountryAddressFormat references.
>>
>> This isn't a language feature that "just works" - you have to put  
>> some
>> infrastructure in place to support it.
>>
>> The feature appears to "just work" for a bunch of VCL types  
>> (TStringList
>> etc) because the VCL already contains the necessary infrastructure  
>> additions
>> (and which should provide the examplar implementations on which you  
>> could
>> base your own).
>>
>>
>> -----Original Message-----
>> From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz 
>> ] On
>> Behalf Of Robert martin
>> Sent: Thursday, 15 October 2009 10:06 a.m.
>> To: NZ Borland Developers Group - Delphi List
>> Subject: [DUG] Stupid /easy question
>>
>> Hi
>>
>> After the D2010 presentation yesterday I decided I should actually  
>> use
>> some of the D2007 features I had not gotten around to using.
>> Specifically the For .. in construct.
>>
>> I am sure I am missing something but here iss what I want to do
>>
>>
>> I have the following 'old school code'  (note the base class here
>> inherits from TObjectList)
>>
>> procedure TCountryAddressFormats.LoadStringListWithCompanies(Strings:
>> TStrings);
>> var
>>     Counter     : Integer;
>> begin
>>
>>     for Counter := 0 to Self.Count - 1 do begin
>>         Strings.AddObject(
>> TCountryAddressFormat(Self.Items[Counter]).CountryName,
>> Tobject 
>> (TCountryAddressFormat(Self.Items[Counter]).CountryRefAsInteger) );
>>     end;
>> end;
>>
>> I wanted to replace it with
>>
>> procedure TCountryAddressFormats.LoadStringListWithCompanies(Strings:
>> TStrings);
>> var
>>     CountryAddressFormat  : TCountryAddressFormat;
>> begin
>>     for CountryAddressFormat in Self do begin
>>         Strings.AddObject( CountryAddressFormat.CountryName,
>> TObject(CountryAddressFormat.CountryRefAsInteger) );
>>     end;
>> end;
>>
>> but I get the following error
>>
>> [DCC Error] AddressFormat.pas(157): E2010 Incompatible types:
>> 'TCountryAddressFormat' and 'Pointer'
>>
>> what am I missing ?
>>
>>
>> Cheers
>> Rob
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at delphi.org.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at delphi.org.nz with  
>> Subject:
>> unsubscribe
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at delphi.org.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at delphi.org.nz with  
>> Subject: unsubscribe
>>
>>
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at delphi.org.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at delphi.org.nz with  
>> Subject: unsubscribe
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with  
> Subject: unsubscribe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20091015/e2869b7a/attachment-0001.html 


More information about the Delphi mailing list