关于以下一个结构:
  tagLOGPALETTE = packed record
    palVersion: Word;
    palNumEntries: Word;
    palPalEntry: array[0..0] of TPaletteEntry;
  end;
其中的palPalEntry数组长度怎么改变?
我用setLength(tatPal.palPalEntry,256) 不行,说类型不匹配

解决方案 »

  1.   

    palPalEntry: array of TPaletteEntry;
      

  2.   

    那个结构是系统定义的调色板的结构,我是想设置一个调色板后用
    createPalette(tagLogPalette)创建一个调色板。如果重新定义一个
    结构的话系统认为不是tagLogPalette类型,创建过程就无法执行
      

  3.   

    在windows单元先定义了这个:
    function CreatePalette(const LogPalette: TLogPalette): HPalette; stdcall;
    然后又定义了这个:
    function CreatePalette; external gdi32 name 'CreatePalette';TLogPalette是这样的:
      tagLOGPALETTE = packed record
        palVersion: Word;
        palNumEntries: Word;
        palPalEntry: array[0..0] of TPaletteEntry;
      end;
      TLogPalette = tagLOGPALETTE;
      {$EXTERNALSYM LOGPALETTE}
      
      PMaxLogPalette = ^TMaxLogPalette; // not in Windows Headers
      TMaxLogPalette = packed record
        palVersion: Word;
        palNumEntries: Word;
        palPalEntry: array [Byte] of TPaletteEntry;
      end;
    我在调用CreatePalette准备写参数的时候,
    系统提示参数是const LogPalette: tagLogPalette,与上面定义的根本不一样是怎么回事?
    按照系统定义的tagLOGPALETTE,根本无法改变palPalEntry的长度,
    那我到底该怎么样创建调色板?