我想在鼠标悬停时改变Lazarus面板的颜色。
我试着在Lazarus上运行这段代码:
unit test;
{$mode objfpc}{$H+}
interface
uses
[...]
type
{ Tvendas_menu }
Tvendas_menu = class(TForm)
[...]
procedure StartMouseEnter(Sender: TObject);
[...]
private
{ private declarations }
public
{ public declarations }
end;
var
[...]
implementation
[...]
procedure Tvendas_menu.StartMouseEnter(Sender: TObject);
begin
Start.Color := $00E7E7E7;
end;
[...]
但是在编译程序时显示以下错误代码:
错误:标识符未找到"Start"
我确定"开始"是对象检查器和。lfm文件面板的名称。
我尝试将"开始"更改为另一个名称,但错误仍然发生。
谢谢!
当您向表单添加控件时,它们会自动添加到表单类下,在您的情况下,它们会出现在Tvendas_menu = class(TForm)
下。
错误的一种可能是由于Start
行缺失,您应该有如下内容:
type
Tvendas_menu = class(TForm)
Start: TPanel;
private
{ Private declarations }
public
{ Public declarations }
end;
要解决这个问题,请尝试像上面那样添加Start: TPanel;
行,如果它不存在的话。
另一个选项是在文本视图中查看表单(Lazarus的.lfm
和Delphi的.dfm
),并找到Start
的参考块,它可能看起来像:
object Start: TPanel
Left = 152
Top = 248
Width = 185
Height = 41
Caption = 'Start'
TabOrder = 1
end
删除它,然后返回到表单视图
然后你可以尝试添加一个新的面板到窗体,并命名为Start
,然后你只需要链接你的事件处理程序回到新的控件。
作为一个提示,将控件命名为Start
并不是很有用,也许可以考虑一个更好的命名标识符,如panStart
。