delphi7怎么弹出子窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi7怎么弹出子窗口相关的知识,希望对你有一定的参考价值。

在Delphi7中 怎么触发子窗体的弹出?

uses unit2; //如果你的子窗体是unit2

在按钮里写上

Form2.show
就可以了。
参考技术A ShowModal是指在子窗口关闭前其他窗口不能动
在修改了ModalResult后(modalresult:=mrOK;||modalresult:=mrCancel;)自动返回主窗体
show只是单单开个子窗体,用form2.close关掉
参考技术B procedure TForm1.Button1Click(Sender: TObject)
var
sub_Frm: TForm2;
begin
sub_Frm := TForm2.Create(Application);
try
if sub_Frm.ShowModal = mrOk then
begin
//Do Something
end;
finally
sub_Frm.Free;
end;
end;
参考技术C form2.show;

form2.showmodal;

WPF:设置弹出子菜单的是否可用状态及效果

 

需求: 设置弹出子菜单(二级)项仅首项可用,其他项均不可用;不可用是呈灰色效果。

          注:

            菜单项都是依据层级数据模板。具体格式如下:

                 StackBlock{TextBlock{Image}、TextBlock}}

问题:

         1、窗体加载后,获取不到二级子菜单控件(二级菜单项弹出后,可获取所有二级子菜单)。

              注:仅能获取一级菜单控件,但能获取二级子菜单绑定的数据源。

    2、层级数据模板内StackBlock设置为不可用时(绑定数据源实现),弹出子菜单不可用,但恢复程序中恢复StackBlock设置为可用,后MenuItem内的Image仍不可用。

          3、样式中可设置MenuItem的不可用状态及效果,但若不将StackBlock设置为不可用则,Menuitem一致可用。

    注:即便是先将TextBlock设置为不可用,再设置为可用,其下的Image仍不可用。

解决方法:

    1、通过绑定数据源来设置可用不可用

    2、绑定的MenuItem内的对象:Image、TextBlock

    3、灰色效果也绑定到是否可用数据源。

        注:是否可用转换为灰色效果(Opacity)需要值转换。

参考代码:

  1、层级数据模板

 <!--工具数据源-->
        <XmlDataProvider x:Key="toolsDS" Source="Config\\Tools\\Tools_Classroom.xml" XPath="Tools/Tool"></XmlDataProvider>
        <!--Tool模板-->
        <HierarchicalDataTemplate DataType="Tool" ItemsSource="{Binding XPath=Tool}" >
            <StackPanel  Orientation="Vertical" VerticalAlignment="Center" Margin="0,10,0,0"   > <!--MouseEnter="MenuItemImage_MouseEnter"  MouseLeave="MenuItemImage_MouseLeave"-->
                <TextBlock Tag ="{Binding XPath=@Name}" Width="38" Height="38" Margin="0,0,0,0" VerticalAlignment="Center"  >
                    <Image  x:Name="img_menuIcon" MouseEnter="MenuItemImage_MouseEnter"  MouseLeave="MenuItemImage_MouseLeave"   Source="{Binding XPath=@ImagePath0}"  IsEnabled="{Binding XPath=@isEnable}" Opacity="{Binding XPath=@isEnable,Converter= {StaticResource  bto}}"><!--Width="38" Height="38"--></Image>
                </TextBlock>
                <TextBlock x:Name="img_Title" Text ="{Binding XPath=@Title}" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Margin="0,3,0,0" Foreground="#FFD1D1D1" FontSize="{Binding XPath=@FontSize}" MouseEnter="MenuItemText_MouseEnter"  MouseLeave="MenuItemText_MouseLeave" IsEnabled="{Binding XPath=@isEnable}" Opacity="{Binding XPath=@isEnable,Converter= {StaticResource  bto}}">
                </TextBlock>
            </StackPanel>
        </HierarchicalDataTemplate>
View Code

  2、菜单

<Menu x:Name="menuTools" ItemsSource="{Binding Source={StaticResource ResourceKey= toolsDS}}"  Background="Transparent" ></Menu>
View Code

  3、值转换

    public class OpacityValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string c = (string)value;

            switch (c)
            {
                case "true":
                    return 1;
                case "false":
                    return 0.5;
                default:
                    return 1;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)  
        {  
            throw new NotImplementedException();  
        }  

    
    }
View Code

 

   

 

以上是关于delphi7怎么弹出子窗口的主要内容,如果未能解决你的问题,请参考以下文章

Qt按钮点击弹出子对话框,然后父窗口不可点击怎么弄

WPF FileFolderDialog 和弹出子窗口的一些问题

提问:js如何弹出子窗口并父窗口不能操作

C#弹出子窗口后,父窗口就不能动

网页前端WeX5架构下,WinDialog子窗口1传递参数给主窗口关闭,再弹出子窗口2失败

QT开发_弹出窗口禁用父窗口并移动到父窗口中心位置