2

我难住了!D5ent。我有一个表格,上面有十几个设计时 SpeedButton。我有一个包含所有十二个按钮的标题、提示和字形的数据集。当我运行数据库时,我可以分配标题、提示、选择和存储字形的位图。

当我使用 DBNavigator 单步执行时,它会正确显示每个按钮的每个位图的单个 DBImage。但是在运行时,并非如此。

我有这段代码可以遍历数据集,当我在 ShowModal 表单中时,所有按钮都有正确的单独标题和提示,但它们都具有与第一个按钮相同的字形。

procedure LoadButtons;
  procedure SetButton(var aBtn : TSpeedButton);
  begin
    aBtn.Hint:=tblButtons.FieldByName('Hint').AsString;
    aBtn.Caption:=tblButtons.FieldByName('Caption').AsString;
    aBtn.Glyph.Assign(dbimgButton.Picture.Bitmap);
  end;
begin
  tblButtons.First;
  BtnCtr:=1;
  repeat
    case BtnCtr of
      1  : SetButton(btn1);
      2  : SetButton(btn2);
      3  : SetButton(btn3);
      // ... to twelve
    end;
    tblButtons.Next;
    Inc(BtnCtr);
  until tblButtons.EOF;
end;

结尾;

我哪里错了?我搞砸了 Update、AutoDisplay、LoadPicture 等...

谢谢

4

1 回答 1

4

如果您正在使用,DisableControls则在循环通过数据集时不会更新 db-aware 控件。如果您从这样的控件中分配字形,那么这就是为什么所有按钮都具有第一条记录的字形的原因。

于 2012-04-16T00:38:45.553 回答