DBImage不以编程方式刷新

时间:2012-04-16 00:14:58

标签: delphi delphi-5

我很难过! D5ent。 我有一个表格,上面有十几个设计时间的SpeedButtons。 我有一个带有标题,提示和所有十二个按钮的字形的数据集。 当我运行数据库时,我可以为标题分配标题,提示,选择并存储位图。

当我使用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等......

由于

1 个答案:

答案 0 :(得分:4)

如果您正在使用DisableControls,则在循环遍历数据集时不会更新数据库感知控件。如果您从这样的控件中分配字形,则这就是为什么所有按钮都具有第一个记录的字形的原因。