delphi如何实现像excel中那样,有多个窗口,窗口可以最大化。但是只能在父窗口移动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi如何实现像excel中那样,有多个窗口,窗口可以最大化。但是只能在父窗口移动相关的知识,希望对你有一定的参考价值。

delphi如何实现像excel中那样,有多个窗口,窗口可以最大化。但是只能在父窗口移动,最大化之后,子窗口的关闭按钮紧挨着父窗口的关闭按钮。就像截图一样。

参考技术A MDI 多文档界面

用向导 新建个 mdi 看看代码

delphi7上 file ,new ,other, project ,MDI Application

type
TMDIChild = class(TForm)//看看 是从TForm类派生
Memo1: TMemo;//包装了个Memo
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
Private declarations
public
Public declarations
end;

//主文件中的一个过程 创建子窗体.....
procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;// 实例化 派生类
begin
create a new MDI child window
Child := TMDIChild.Create(Application);
Child.Caption := Name;
if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
end;
...............
参考技术B 使用MDI窗口。
具体做法有视频教学。
http://v.youku.com/v_show/id_XNDM1MjY3MzA4.html本回答被提问者采纳

Android:创建一个具有多个选择选项的弹出窗口

我一直在寻找如何创建弹出窗口或有4个选项可供选择的对话框。

我在Android开发者网站上看到了这张图片:

有谁知道如何编码像右边那样的东西?我的文本旁边不需要任何图标,我只需要能够从4个选项中进行选择。

答案

您可以使用要在其中显示的选项创建一个CharSequence数组,然后使用AlertDialog.Builder方法将数组传递给setItems(CharSequence[], DialogInterface.OnClickListener)

一个例子:

String[] colors = "red", "green", "blue", "black";

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() 
    @Override
    public void onClick(DialogInterface dialog, int which) 
        // the user clicked on colors[which]
    
);
builder.show();

输出(在Android 4.0.3上):

(不包括背景地图。;))

另一答案

弹出窗口只是AlertDialog。所以你只需要创建AlertDialog,然后使用LayoutInflater膨胀你想要的视图并使用setView()AlertDialog方法设置膨胀的视图

另一答案

试试这个 :

public void onClick(查看v)

            final String[] fonts = "Small", "Medium", "Large", "Huge";

            AlertDialog.Builder builder = new AlertDialog.Builder(TopicDetails.this);
            builder.setTitle("Select a text size");
            builder.setItems(fonts, new DialogInterface.OnClickListener() 
                @Override
                public void onClick(DialogInterface dialog, int which) 
                    if ("Small".equals(fonts[which]))
                        Toast.makeText(TopicDetails.this,"you nailed it", Toast.LENGTH_SHORT).show();
                    
                    else if ("Medium".equals(fonts[which]))
                        Toast.makeText(TopicDetails.this,"you cracked it", Toast.LENGTH_SHORT).show();
                    
                    else if ("Large".equals(fonts[which]))
                        Toast.makeText(TopicDetails.this,"you hacked it", Toast.LENGTH_SHORT).show();
                    
                    else if ("Huge".equals(fonts[which]))
                        Toast.makeText(TopicDetails.this,"you digged it", Toast.LENGTH_SHORT).show();
                    
                    // the user clicked on colors[which]

                
            );
            builder.show();

另一答案

替代选择

这是我的第一篇文章,所以我很高兴分享我的代码!这对我有用:

将这两行放在OnCreate事件上方

final String[] Options = "Red", "Blue";
AlertDialog.Builder window;

将此代码放在将触发此事件的事件上

window = new AlertDialog.Builder(this);
window.setTitle("Pick a color");
window.setItems(Options, new DialogInterface.OnClickListener() 
    @Override
    public void onClick(DialogInterface dialog, int which) 
        if(which == 0)
           //first option clicked, do this...

        else if(which == 1)
           //second option clicked, do this...

        else
        //theres an error in what was selected
            Toast.makeText(getApplicationContext(), "Hmmm I messed up. I detected that you clicked on : " + which + "?", Toast.LENGTH_LONG).show();
        
    
);

window.show();

以上是关于delphi如何实现像excel中那样,有多个窗口,窗口可以最大化。但是只能在父窗口移动的主要内容,如果未能解决你的问题,请参考以下文章

delphi 如何做成带有阴影的窗体,像QQ那样

Delphi如何实现选中文件或文件夹

Delphi 编写的程序中,如何让程序实现像Windows7一样的毛玻璃效果?

WPF中,做一个Button实现,窗口的最大化及其Normal(就像自带的那样)。如何实现?怎么判断当前是不是为窗口

打开2003excel,如何分显示两个表格

Delphi 实现EXCEL表中数据导出至TXT中。 EXCEL表格式如下: