谁知道,spcomm的参数的数据类型怎样写/。?
我这样直接写是对的
  Comm1.CommName :=  ComName;
  Comm1.BaudRate :=  9600;
  Comm1.ByteSize := _8;
  Comm1.StopBits := _1;
  Comm1.Parity := NONE;
可是把参数值换成全局变量(类型用String)就不行了,
提示
Incompatible types: 'Cardinal' and 'String'
[Error] uLedWeight.pas(37): Incompatible types: 'TByteSize' and 'String'

解决方案 »

  1.   

    TByteSize是一个枚举类型。
    可以这样使用:
    procedure TForm1.Button2Click(Sender: TObject);
    var
      aa:TByteSize;
    begin
      Case self.ComboBox1.ItemIndex of
        0:aa:=_5;
        1:aa:=_6;
        2:aa:=_7;
        3:aa:=_8;
      end;
      Comm1.CommName :=  ComName;
      Comm1.BaudRate :=  9600;
      Comm1.ByteSize :=aa;
      Comm1.StopBits := _1;
      Comm1.Parity := NONE;
    end;end;
      

  2.   

    全用string当然当然不行了,不同的参数,数据类型也不一样啊,看那个参数是什么类型的,就用什么类型的全局变量就好了啊,有些是枚举类型,不要乱赋值啊
      

  3.   

    Case  Query.FieldValues['StopBit'] of
          1:  StopBit := _1;
          2:  StopBit := _2;
        end;
    提示:[Error] uMain.pas(144): Undeclared identifier: '_1'    Case Query.FieldValues['CheckBit'] of
          'EVEN':  CheckBit := EVEN;
          'NONE':  CheckBit := NONE;
          'ODD':  CheckBit := ODD;
        end;
    提示:
    [Error] uMain.pas(136): Incompatible types: 'Integer' and 'String'
    [Error] uMain.pas(136): Undeclared identifier: 'EVEN'