【问题标题】:Change color from a Rectangle using a TColorListBox使用 TColorListBox 从 Rectangle 更改颜色
【发布时间】:2015-03-02 19:03:35
【问题描述】:

我又来了。 我只是想了解如何使用 TColorListBox 更改矩形(形状)的颜色背景。 我知道这很容易,但是我一直在尝试为 Rectangle 设置新值时遇到异常。 我使用的命令如下:

Rectangle1->Fill->Color = ColorListBox1->Color;

功能:

void __fastcall TForm1::ColorListBox1Click(const TCustomListBox *Sender,
          const TListBoxItem *Item)
{
    Rectangle1->Fill->Color = ColorListBox1->Color;
}

现在我一直在尝试更改颜色时遇到的错误:

Access violation at address 00405628 in module 'Project1.exe'. Read of address 00000360.

调试器的另一个异常在这里:

First chance exception at $00405615. Exception class $C0000005 with message 'access violation at 0x00405615: read of address 0x00000360'. Process Ninterpres.exe (904)

有人可以帮帮我吗?从现在开始,非常感谢!

【问题讨论】:

    标签: c++ c++builder firemonkey shapes c++builder-xe6


    【解决方案1】:

    你第一次写

    ColorListBox1
    

    第二次你使用的名字没有'1'

    ColorListBox->Color;
    

    但看起来你还没有初始化一些对象(我记得这应该由表单编辑器自动完成)因此程序抛出异常。

    【讨论】:

    • 抱歉,我输入了错误的名称(它们使用的是葡萄牙语名称,但在两种情况下都相同)...我将尝试在 Embarcadero 的 docwiki 上找到的解决方法: ` if (Ellipse1->Fill->Kind == TBrushKind::Solid) Ellipse1->Fill->Color = ColorListBox1->Color; else Ellipse1->Fill->Gradient->Color = ColorListBox1->Color;`
    【解决方案2】:

    我找到了问题... 访问冲突代码是由于具有相同名称的多个指针。 在这种情况下,我使用 Rectangle1(实际上称为 Transp,我将名称更改为放在这里以便于理解)作为 int var 和对象... 谢谢你的答案XD。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 2017-10-05
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多