点击不同按钮生成不同窗体到某个panel上面,类似Frame用法--不错

//点击不同按钮生成不同页面加载到某个panel上面。procedure TMainForm.DemoButtonClick(Sender: TObject);
var
  NewDemoClass: TFormClass;  // TFormClass = class of TForm; 涉及到类的类 知识点; NewDemoClass表示为窗体类的类,有待考证
NewDemo: TForm; begin case (Sender as TSpeedButton).Tag of 0: NewDemoClass := TSpeedForm; //type  TSpeedForm = class(TForm)
    1:
      NewDemoClass := TGeneralForm;
    2:
      NewDemoClass := TPropertiesForm;
    3:
      NewDemoClass := TVisibilityForm;
    5:
      NewDemoClass := TGridForm;
    6: NewDemoClass := TDrawTreeForm;
    7:  NewDemoClass := TAlignForm;
    8:  NewDemoClass := TWindowsXPForm;
    9: NewDemoClass := TNodeForm;
    10:  NewDemoClass := THeaderOwnerDrawForm;
  else
    NewDemoClass := nil;
  end;
  if (ContainerPanel.ControlCount = 0) or not (ContainerPanel.Controls[0] is NewDemoClass) then //panel上没有或不是当前类时才可能创建。
  begin
    if ContainerPanel.ControlCount > 0 then
      ContainerPanel.Controls[0].Free;
    if Assigned(NewDemoClass) then
    begin
      NewDemo := NewDemoClass.Create(Self);//所属为self 指主窗体
      NewDemo.Hide;
      NewDemo.BorderStyle := bsNone;
      NewDemo.Parent := ContainerPanel; //显示的位置
      NewDemo.Align := alClient;
      NewDemo.Show;
    end;
  end;
end;

  

时间: 2024-08-05 20:01:48

点击不同按钮生成不同窗体到某个panel上面,类似Frame用法--不错的相关文章

点击按钮生成新的按钮、表格,同时之前的按钮失去功能

今天做了两个小练习,还是记录一下吧 1.点击按钮生成一个按钮,点击新按钮,又生成一个按钮,同时原来的按钮失效:效果图 HTML部分久只创建了一个input,也没有用CSS样式 1 <!--产生按钮--> 2 <input type="button" id="button1" value="按钮源" onclick="Onclick()"/> 运用JS创建按钮,本来是想用removeAttribute移除

C#点击按钮关闭当前窗体 打开另一个窗体。

网上有很多是隐藏当前窗体,但是这样占用资源,效果不好,因此改进方法如下: private void button1_Click(object sender,EventArgs e) { this.hide(); Form1 form=new Form1(); form.ShowDialog(); this.Dispose();//释放所有资源 } C#点击按钮关闭当前窗体 打开另一个窗体.

QT点击&quot;X&quot;按钮,调用closeEvent()函数来实现调用特定事件

背景: QT在用户关闭窗口(直接点击"X"键)时,程序一般都需要做一些善后的事情,就我现在的程序来说,既关闭USB.如何实现? 正文: 首先,在对应窗体的".h"文件包含 #include <QCloseEvent>;的头文件. 其次,在该".h"文件中声明函数 void closeEvent( QCloseEvent * event); 注意:该函数已经在QT内部建立为点击"X"按钮的槽,不能更改其函数名: 最后

【ASP.NET】 【防止连续多次点击提交按钮 导致页面重复提交】

最近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手贱点多了几次,当提交完成后发现数据库语句执行异常. 两种验证方式: 第1种: aspx页面按钮: <asp:Button ID="btnSumbit" runat="server" Text="提交" onclick="btnSumbit_Click" /> Page_Load 事件: btnSumbit.A

盒子 收藏帖子 转移-实现向网页自动填写用户名密码并自动点击登录按钮 完成全自动凳录

//实现向网页自动填写用户名密码并自动点击登录按钮 完成全自动凳录 Function FillForm(WebBrowser: TWebBrowser2; FieldName: String; Value: String): Boolean; Var i, j: Integer; FormItem: Variant; Begin Result := False; //no form on document If WebBrowser.OleObject.Document.all.tags('FO

cocos2d-x:解决点击拖动按钮后,所在的layer监听不到触摸事件的问题

点击拖动按钮后,想让所在的layer监听到屏幕的触摸事件,可以把该按钮拖动开始的时候设置setTouchEnabled为false;例: #include "ui/UIButton.h" bool myDemo::init() { // 设置点击事件 EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = CC_CALLBACK_2(

解决win10点击开始按钮无反应

方法一:1:win+R输入命令“powershell”回车.2:粘贴命令Get-AppxPackage | % { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppxManifest.xml" -verbose 回车,执行完后重启.3:如果出现执行过程中出现红色:Add-AppxPackage:部署失败,原因是HRESULT:0X80073CF6,无法注册包.错误0X8000FFF:

解决基于JQ焦点图快速点击切换按钮图片显示错误的问题

之前用原生js做过焦点图,今天突然想用JQ做一下,但是遇到一个问题,当我不停点击切换按钮时,由于不停触发animate动画,导致图片显示错乱的问题,解决办法第一想到的就是点击切换后立刻解绑事件,然后动画函数运行完再添加事件,但是 ....用 $('.box').unbind('click'); 解绑后,再把原有事件添加回来却没有办法添加回来 $("button").bind("click",function(){ //函数体 }); 这样?可是函数体里没法写 ,可能

点击同一按钮实现div的隐藏与现实切换

点击同一按钮实现div的隐藏与现实切换:在很多应用中,都有这样的功能,点击同一个按钮可以实现div的隐藏或者现实,当然操作的并非必须是按钮或者div,不过原理是一样的,下面就通过代码实例介绍一下如何实现此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://ww