Hi,

Recently I learned that you can have writeable typed constants. That
sounds rather like an oxymoron to my. Writeable constants make no sense,
is that then simply a variable? What is the use of a writeable typed
constant?

Below is two examples of how they can be used, and support for them are
toggled with the compiler directive $J.

In both these cases I would think a variable would make a lot more
sense. For the Singleton implementation, you simply need to specify a
unit wide AppSingleton variable in the implementation section (so that
it's not completely global or visible to other units.

Can anybody explain the point of writeable typed constants?

const
   foo: Integer = 12;
begin
   foo := 14;
end.

===============================

// Singleton implementation using typed constants
function gAppManager: TApplicationManager;
const
  {$IFDEF DELPHI}{$J+}{$ENDIF}
  AppSingleton: TApplicationManager = nil;
  {$IFDEF DELPHI}{$J-}{$ENDIF}
begin
  if not Assigned(AppSingleton) then
    AppSingleton := TApplicationManager.Create;
  Result := AppSingleton;
end;


Regards,
  - Graeme -

_______________________________________________________
fpGUI - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to