3

今日は Delphi との最初の日です。

次のような記録があります。

type 
  FT_Device_Info_Node = record
    Flags         : DWord;
    DeviceType    : Dword;
    ID            : DWord;
    LocID         : DWord;
    SerialNumber  : array [0..15] of Char;
    Description   : array [0..63] of Char;
    DeviceHandle  : DWord;
  end;

後で、配列のみを読み取ることができます。たとえば、機能します。FT_DeviceInfoList[0].SerialNumber しかし、DWord アイテムのいずれにもアクセスできません。たとえばFT_DeviceInfoList[0].ID、不可能です。

明確にしていただけますか?

編集:レコードから情報を取得するボタンクリック手順は次のとおりです。

procedure TForm1.checkFTDIClick(Sender: TObject);
var
  i : integer;
begin
  ftStatus := FT_CreateDeviceInfoList(@dwNumDevs);
  SetLength(FT_DeviceInfoList,dwNumDevs);
  ftStatus :=  FT_GetDeviceInfoList(FT_DeviceInfoList, @dwNumDevs);
  If ftStatus <> FT_OK then ShowMessage('Error '+IntToStr(ftStatus));

  Form1.ComboBox1.Items.Clear;
  for i:=0 to dwNumDevs-1 do
  begin
    Form1.ComboBox1.Items.Add(FT_DeviceInfoList[i].Description);//works
    //Form1.ComboBox1.Items.Add(FT_DeviceInfoList[i].ID);//compilation error
  end;
  Form1.ComboBox1.ItemIndex := 0;

end;

FT のものは FTDI ライブラリからのもので、返されたステータスは OK です。

4

1 に答える 1

2

意図したコードは次のとおりです。

Form1.ComboBox1.Items.Add(FT_DeviceInfoList[i].ID);

これにより、コンパイル エラーが発生します。これAddは、 type のパラメーターが必要だからですstringDWORDしかし、整数パラメータであるを渡しています。

を呼び出して、整数データ型から文字列に変換しますIntToStr

Form1.ComboBox1.Items.Add(IntToStr(FT_DeviceInfoList[i].ID));
于 2012-11-08T09:42:08.587 に答える