求:C++ 结构体嵌套联合体嵌套结构体 代码翻译为 PAS:40分

求高手指点:C++ 结构体嵌套联合体嵌套结构体 代码翻译为 PAS:40分
.h 文件中有一段结构体嵌套联合体嵌套结构体的定义,应该如何转换为PAS中的结构体?

/* 控制网络文件回放 */
typedef struct 
{
DWORD dwSize;
char sDecoderIP[16]; /* DVR IP地址 */
WORD wDecoderPort; /* 端口号 */
WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
union
{
BYTE byFile[100]; /* 回放的文件名 */
struct
{
DWORD dwChannel;
BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
BYTE sPassword[PASSWD_LEN]; /* 密码 */
NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
}bytime;
}mode_size;
}NET_DVR_PLAYREMOTEFILE, *LPNET_DVR_PLAYREMOTEFILE;

对这种多级嵌套的结构体,联合体 应该怎样翻译为DELPHI pas语句? 请高手帮忙翻译一下。

看过这个帖子:http://bbs.****.net/topics/100137483 也没看出个事情来。 小弟混地不好,40分送上。
C++ Structure UNION 记录

------解决方案--------------------
用变体记录就可以了。

const
  NAME_LEN = ...  // 需要你自己定义
  PASSWD_LEN = ...  // 需要你自己定义

type
  dword = cardinal;  // dword类型定义在windows单元
  NET_DVR_TIME = ...  // // 需要你自己定义

  tbytime = record
    dwChannel: dword;
    sUserName: array[0..NAME_LEN - 1] of ansichar; //*请求视频用户名*/
    sPassword: array[0..PASSWD_LEN - 1] of ansichar; //* 密码 */
    struStartTime: NET_DVR_TIME; //* 按时间回放的开始时间 */
    struStopTime: NET_DVR_TIME; //* 按时间回放的结束时间 */
  end;

  tmode_size = record
  case integer of
    0: (byFile: array[0..99] of ansichar);
    1: (bytime: tbytime);
  end;

  LPNET_DVR_PLAYREMOTEFILE = ^NET_DVR_PLAYREMOTEFILE;
  NET_DVR_PLAYREMOTEFILE = record