枚举为整数,反之亦然(使用combobox itemindex)

Jak*_*ays 0 delphi combobox

不知道我在这里做错了什么

//update controls from main form Tshape
 form2.cbxShape.ItemIndex:= ord(Shape1.Shape);
 form2.cbxColor.Selected:= Shape1.Brush.Color;
 form2.cbxStyle.ItemIndex:= Ord(Shape1.Brush.Style);
 if form2.ShowModal = mrOK then
 begin
  //update main form Tshape from controls
   Shape1.Shape:= TShapeType(form2.cbxShape.ItemIndex);
   Shape1.Brush.Color:= form2.cbxColor.Selected;
   Shape1.Brush.Style:= TBrushStyle(form2.cbxStyle.ItemIndex);
 end;
Run Code Online (Sandbox Code Playgroud)

我没有得到正确的形状或画笔样式(颜色工作正常)

列表框项目如下:

Circle
Ellipse
Rectangle
RoundRect
RoundSquare
Square
Run Code Online (Sandbox Code Playgroud)

BDiagonal
Clear
Cross
DiagCross
FDiagonal
Horizontal
Solid
Run Code Online (Sandbox Code Playgroud)

LU *_* RD 5

看的声明TShapeTypeTBrushStyle:

TShapeType =(stRectangle,stSquare,stRoundRect,stRoundSquare,stEllipse,stCircle);

TBrushStyle =(bsSolid,bsClear,bsHorizo​​ntal,bsVertical,bsFDiagonal,bsBDiagonal,bsCross,bsDiagCross);

列表框中的项目必须采用相同的顺序,并包含相同的相应枚举.