Delphi 中 动态创建的Panel无法改变颜色的解决办法


刚开始代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
  Panel: TPanel;
begin
  Panel := TPanel.Create(Form1);
  Panel.Name := 'pnlPreVideo';
  Panel.Parent := Form1;
  Panel.OnClick := Panel1Click;
  MoveWindow(Panel.Handle, 10, 10, 100, 100, True);
end;

procedure TForm1.Panel1Click(Sender: TObject);
begin
  if  (Sender as TPanel).Name ='pnlPreVideo' then
    (Sender as TPanel).Color := clGreen;
end;

单击时,颜色不变,问网友,原来是一个BUG,更正后代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
  Panel: TPanel;
begin
  Panel := TPanel.Create(Form1);
  Panel.Name := 'pnlPreVideo';
  Panel.ParentBackground := False;
  Panel.Parent := Form1;
  Panel.OnClick := Panel1Click;
  MoveWindow(Panel.Handle, 10, 10, 100, 100, True);
end;

procedure TForm1.Panel1Click(Sender: TObject);
begin
  if  (Sender as TPanel).Name ='pnlPreVideo' then
    (Sender as TPanel).Color := clGreen;
end;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM