Resource strings

Top  Previous  Next

What is translated > Variables > Resource strings

 

Delphi compiler has built-in support for resource strings. In Delphi there is a complex management of modules  Delphi2C# makes resource strings to normal string constants

 

resourcestring

SIndexError  = 'Index out of bounds: %d';

 

gets translated to:

 

public static string SIndexError = "Index out of bounds: %d";

 

 

In the code for Delphi2C# there is an additional makeshift. TResStringRec is rewritten as:

 

public struct TResStringRec

{

  //public Pointer<HMODULE> Module;

  //public Pointer<uint> Module;

  //public uint Identifier;

 

  public static implicit operator TResStringRec(string s)

  {

    return new TResStringRec() { FMessage = s }; 

  }

 

  public string FMessage {get; set;}

};

 

The implicit operator lets compile calls like:

 

ConvertError(new Pointer<TResStringRec>(SFormatTooLong));

 

In a constructor of an Exception the message is fetched by:

 

  public Exception(Pointer<TResStringRec> ResStringRec)

   : base(ResStringRec.Deref().FMessage)

  {

  }

 



This page belongs to the Delphi2C# Documentation

Delphi2C# home  Content