我创建了一个简单的项目来向您展示 TImage 组件的问题。例如,我添加了 TCategoryPanelGroup,TCategoryPanel,TImage 和两个标准按钮,用于隐藏和显示 TImage copomonent中的Picture。您可以在下面看到这些按钮的代码:
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons,
Vcl.Imaging.jpeg, Vcl.ExtCtrls;
type
TForm3 = class(TForm)
CategoryPanelGroup1: TCategoryPanelGroup;
CategoryPanel1: TCategoryPanel;
imgTest: TImage;
btnShow: TBitBtn;
btnHide: TBitBtn;
procedure btnHideClick(Sender: TObject);
procedure btnShowClick(Sender: TObject);
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.btnHideClick(Sender: TObject);
begin
imgTest.Visible := False;
imgTest.Refresh;
CategoryPanel1.Refresh;
CategoryPanelGroup1.Refresh; // Refreshing TCategoryPanel Parent
CategoryPanelGroup1.Invalidate;
CategoryPanelGroup1.Repaint;
{ Just one way which I found to 'refresh'- hide image dynamically
CategoryPanel1.Visible := False;
CategoryPanel1.Visible := True;
}
end;
procedure TForm3.btnShowClick(Sender: TObject);
begin
imgTest.Visible := True;
imgTest.Refresh;
CategoryPanel1.Refresh;
CategoryPanelGroup1.Refresh;
end;
end.
如果我们点击隐藏按钮图片卡在同一个地方,那将是不幸的。如果我们想要刷新它,我们必须折叠并展开 CategoryPanel1 (或取消注释代码行)。你知道我们如何在点击按钮后动态地做到这一点吗?