delphi 调用子窗体传值的问题?

有2个窗体调用一个子窗体,
第一个窗体传值给子窗体可以,第二个窗体传值有值的,跟踪到子窗体时值为空。
子窗体是动态创建的。
比如第一个窗体传值:
sName := '1';
子窗体SHOW时显示1;正确。
第二个窗体传值过去:
sName := '2';
子窗体SHOW时是空,问题就在这里了?
第一个窗体用的是全局变量sName,第二个窗体也是一个sName的全局变量。

4个回答

a814123
814123 知道了,谢谢!
接近 2 年之前 回复

图片说明

贴出代码看下,或者代码全部压缩放到网盘里,给链接。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复a814123: 你之前还有一个什么问题来着的,我找不到了。你要是没有解决,贴出那个问题的地址,我一起回答你
接近 2 年之前 回复
a814123
814123 就是这个例子,有一个窗体传值不成功?
接近 2 年之前 回复
a814123
814123 https://pan.baidu.com/s/1fLQqxcgKY0DrWP7gV1vK1g
接近 2 年之前 回复

不需要用全局变量,在子窗口里面定义一个成员变量

 unit udlg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  Tdlg = class(TForm)
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    val :String; //定义在这里
  end;

var
  dlg: Tdlg;

implementation

{$R *.dfm}

procedure Tdlg.FormShow(Sender: TObject);
begin
  Label1.Caption := val; //显示
end;

end.

调用:

 procedure TForm2.Button1Click(Sender: TObject);
var
  dlg: Tdlg;
begin
  dlg := Tdlg.Create(self);
  dlg.val := Edit1.Text; //传过去
  dlg.ShowModal();//显示子窗口
end;
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Q694584 delphi 调用子窗体传值的问题

Q694584 delphi 调用子窗体传值的问题 https://ask.csdn.net/questions/694584 代码解答

关于父窗口与子窗口传值的Demo

本Demo案例为父窗口打开具有分页功能的子窗口并选择需要的值为id和id对应的值传给父窗口并以二维数组进行暂时存储,等选好之后,二维数组再把其中的元素以字符串形式分开存储在对应的input中。

MDI父窗体和子窗体之间怎么传值?

主要的思想就是,通过成员变量和

delphi窗体之间的相互传值

效果图如下所示 Form1代码 //定义一个用户信息类 type   TUsersInfo=class     //声明三个全局变量     public        UserName: string;        UserPwd:string;        UserAge:Integer;   end; //引用form2 uses Unit2;

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体).

子窗体回传值给父窗体 C#(Winfrom)窗体传值问题(子窗体回传值给父窗体).txt

解决Delphi MDI 闪烁问题

解决Delphi MDI 闪烁问题

c# 主窗体传值给子窗体

在Form1中 public static Form1 f=null; public Form1() { InitializeComponent(); f = this; } public string IP() {

DELPHI中MDI子窗口的关闭 和打开

Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭。解决办法是在子窗口的OnClose事件处理过程中加入如下代码,示例: procedure ChildForm.OnClose(Sender: TObject; var Action: TCloseAction); begin    Acti

C# 子窗体与父窗体之间几种传值的方式

做了很多项目,很多项目都用到子父窗体之间的传值。。 父窗体传入子窗体都比较简单,而子窗体传入父窗体因为有很多不通道的需求,所以·搞起来有点头大。 先说父窗体传入子窗体: 将父窗体控件上的值传入子窗体的控件上: Form1为父窗体 Form2为子窗体 Form1 单击按钮打开Form2,Form2关闭的时候把值传到Form1的控件上 代码: using System; usi

子窗体和父窗体双向传值——C#窗体传值方法总结

简介  在很多场景下,我们的程序需要完成窗体间的传值功能,有时候是父窗体→子窗体单向传值、子窗体→父窗体传值甚至是,也有时候我们需要父窗体⇆子窗体双向传值。   在本文中主要介绍一些能够实现双向传值的方法,能够双向传值的方法也能够实现单向传值。   本文的所有源码都可以在GitHub上下载。      本文介绍的方法仅限于我自己知道并且实现过的,我相信还有很多我并不知道的方法,因此也许在很多

Python3.x+Pyqt5实现主窗体与子窗体相互传数据、传字符、传值;主要使用了信号与槽的方法

1、代码下载地址:https://download.csdn.net/download/higher80/10594405 2、主要用到的工具:Pyqt 或者 Qt 的 pyqtSignal 工具,即信号与槽的方法。 3、主要实现的功能: (1)主窗体与子窗体之间相互传数据、传字符、传值,见下图1-2。                                          ...

pyqt父子窗口相互传值

pyqt父子窗口相互传值,网上都是简单的介绍,同类的demo基本没有找到。 希望该demo能帮到需要的朋友。

在DockPanel 的子窗体打开另一子窗体使其停靠在主窗体的方法

1、新建主窗体frmMain,并在其类增加一属性   public DockPanel DockPanel        {            get            {                return this.dockPanel;            }        } 2、增加子窗体frmSysMenu,并增加一方法      private Contr

delphi 刷新子窗体,导致父窗体闪烁

父窗体上的按钮都有背景图片,窗体本身也有背景图片,貌似都是这些图片在闪烁,不做去图片测试了。。 转载:http://blog.csdn.net/dd_zhouqian/article/details/6759876 任何一个继承自TWinControl的类都有DoubleBuffered这个属性,如果你的IMAGE放在PANEL 上,你就将Panel的DoubleBuffered设为TRUE

C# Winform 窗体传值 利用委托 子窗体传值给父窗体

利用委托进行窗体传值。     父窗体:Form1   子窗体:Form2   点击Form1,弹出Form2,点击按钮返回值给Form1 首先在Form2中定义委托和事件: //声明委托 和 事件 public delegate void TransfDelegate(String value); public partial class Form

winform委托窗口传值实例

主窗体和子窗体互相传值 使用委托传值 简单demo

【C#】winform子窗体与父窗体传值,子窗体与子窗体传值

【1】子窗体与父窗体传值,见:http://www.cnblogs.com/xugang/archive/2010/06/29/1767465.html 【2】子窗体与子窗体传值: 前提:Form1座位父窗体,然后它new出来了两个个子窗体分别为Form2与Form3; 要求:可以及时把Form2中产生的数据,传递给Form3,更新Form3;如果Form3没有被打开,则不传递。 窗体设计

Delphi MDI 子窗体的创建和销毁 [zhuan]

文章来源: Delphi MDI 子窗体的创建和销毁 1.如果要创建一个mdi child,先看是否有这个child 存在,如果有,则用它,如果没有再创建 //该函数判断MDI 子窗体是否存在,再进行创建和显示 function isInclude(formclass: TFormClass): boolean; var   i: Integer;   form: TObjec

Winform窗体之间传值(子窗体传给父窗体)代码实例

Winform窗体之间传值(子窗体传给父窗体)代码实例; 通过构造函数、公开窗体中的控件,引用类型进行窗体之间的传值!

C# winform 弹出窗体传值

C# winform 弹出窗体传值 父窗体传给子窗体,子窗体传给父窗体。 弹出窗体相互传值

layer父子窗体传值

今天开发遇到一个layer子窗体关闭的问题,纠结了很久在这里做一下记录。 需求描述 在父窗体中弹出子窗体,双击子窗体内容之后关闭子窗体(双击区域后关闭子窗体,并且父窗体获取子窗体选择的值)。界面如下: 刚开始的思路是在子窗体中调用“关闭”按钮事件,但是无论怎么调用都获取不到()。 代码 top.layer.open({ type: 2, ...

VC++6.0创建子窗体DLL的方法总结

VC++6.0 和 Delphi之间相互创建以及调用子窗体的一些总结

利用模态对话框实现父窗体、子窗体间传值

利用模态对话框实现父窗体、子窗体间传值。 服务器showModalDialog 打开子窗体,子窗体使用客户端脚本和服务器端方法向父窗体传值

Winform子窗体关闭给父窗体传值

//父窗体  private void pictureBox_Add_position_Click(object sender, EventArgs e) { //职务 PositionManage m_positionManage = new PositionManage(); m_positionMana...

ShowModalDialog父窗体向子窗体传值

ShowModalDialog父窗体向子窗体传值

iframe父子传值

对于Iframe的父窗体与子窗体互相传值

子窗子显示在MDI主窗体panel控件之上

机房收费系统中,需要将子窗子显示在MDI主窗体panel容器控件之上。查了资料。大概网上有两种方法。一种是是可以将子窗体上的控件直接内嵌到panel控件之上,还有一种是子窗子显示在MDI主窗体panel控件之上。 通过这个需求的实现,感觉到知识学习是无穷尽,因为对于panel容器控件,自己也是第一次使用,所以这个知识对于自己而言是新的东西,面对这样无穷尽的新知识的学习,我要学会的站到一个高的位置上去抽象出这些学习这种新知识的方法,自己总结了一下方法: 1.学会去网上查询。 去网上查自己想要的东西,不

C# 子窗体向父窗体的控件传值

C# 子窗体向父窗体的控件传值

C# 子窗体传值给父窗体

C# 子窗体传值给父窗体

Delphi 让子窗体显示在任务栏上的几种方法

重载 CreateParams 方法

Delphi中直接关闭子窗体

        在Delphi中,直接关闭MDI窗体中的子窗体是不可以的,在点击关闭按钮时,Delphi默认会将该子窗体进行最小化处理,所以在关闭MDI子窗体时应在MDI子窗体中的OnClose事件中写入如下代码:        Action:=CaFree;        Action参数共有四个值,会别为:        Action:=CaNone;//此参数表示系统什么也不做。

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

Form1 -------------------------------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; usin

wpf利用委托实现窗体之间的传值

vs2010 wpf 子窗体向父窗体传值

Delphi实现非模态主窗口最小化子窗口不最小化

重载窗口CreateParams过程 TForm2= class(TForm) protected   procedure CreateParams(var Params: TCreateParams); override; end; procedure TForm2.CreateParams(var Params: TCreateParams); begin   inherit

判断MDI窗体的子窗体是否存在

//***************************************************************************//函 数名: CreateForm //返 回值: boolean //参 数: TForm //功 能: 判断MDI窗体的子窗体是否存在 //************************************************

Winform利用委托实现子窗体传值给父窗体

首先,新建两个窗体,父窗体Form1和子窗体Form2,添加控件如下。实现在子窗体的textBox中输入字符,实时显示在父窗体的textBox中的功能。 子窗体中代码: using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { //声明一个委托,该委托有个string类型的参数

delphi的DLL封装MDI子窗体

转自http://www.cnblogs.com/kfarvid/archive/2010/06/23/1763753.html 前天遇到一个疑问:主窗体是fsMDIForm时,调用DLL的窗体不可以嵌入在主窗体中。于是就这个问题,我在网上找了相关资料,并找到答案:DLL封装子窗体。 了解后,使用相同方法在DLL的子窗体再调用另一个DLL窗体也可以。如果需要回传参数,可以通过函数获得。 实例

传值调用 传值调用 传值调用

传值调用 传值调用 传值调用传值调用 传值调用 传值调用

Qt中子窗体控件向父窗体控件传值

今天学习Qt中控件相互传值的方法。其中参考了一些网上的意见。今天学习了两种方法。其中一种是利用全局变量;另一种是利用了Qt中的信号和槽机制。当学习signals和slot机制的时候,有一些疑问,在介绍利用signals和slot进行值传递的时候,再说。练习是这样子,如下两图所示。 第一幅图是主窗体,在画笔宽度文本框和画笔颜色文本框中可以填入宽度和样色值,决定画笔宽度和颜色,然后选择右边的画椭圆,画

delphi 从外部Dll中调用子窗体

delphi 从外部Dll中调用子窗体. 关于DLL文件 的调用

java中jframe子亲窗口向父窗口传值

java中swing编程想实现一个功能,父窗口打开一个子窗口,子窗口输完值后能把值返回给父窗口,思路是吧父窗口当作参数传给子窗口,子窗口提交事件发生之后改变父窗口的值 做了一个小例子 父窗口代码 import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import

Delphi动态创建子窗口例子

Delphi动态创建子窗口例子procedure TForm1.mlskntlbr2ItemDown(Sender: TObject; const ItemIndex: Integer); begin case ItemIndex of 0: ShowSubForm(Form2, TForm2); 1: ShowSubForm(Form3, TForm3...

c# 父窗口向子窗口传值

首先定义两个Form,一个为Form1,一个为Form2,其中Form1作为父窗口,Form2作为子窗口 1、父窗口传值给子窗口        Form1中代码:         public Form1()         {             InitializeComponent();         }         private void butt

在MDI窗体调用子窗体时怎样使不被MDI窗体上的图片挡住

最近大家都在忙着敲机房收费系统,我也一样。前几天发现了一个问题,在点击主窗体上的按钮调用子窗体时,子窗体不显示。开始时以为是我把子窗体的名字敲错了导致无法调用,后来在仔细核对下排除了这种可能。那么为什么和敲学生时一样的步骤现在却出现了这个问题呢?通过在网上查和问同学发现很多同学都遇到了这个问题,也有同学已经解决了。这里就在来说说如何解决,权当强调了吧。 首先出现这个问题是因为我们的MDI

delphi 子窗体最大化

  procedure TForm2.FormCreate(Sender: TObject);begin perform(WM_SIZE,SIZE_MAXIMIZED,0);end;

WinForm子窗体嵌入在父窗体的panel上

现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下: private void Parent_Load(object sender, System.EventArgs e)   {    this.IsMdiContainer=true;//设置父窗体是容器    Son mySon=new Son();//

DELPHI 让子窗体显示在任务栏上

重载 CreateParams 方法 procedure CreateParams(var Params: TCreateParams);override; procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited; Params.WndParent := 0; end;

窗体与对话框子窗体之间传值,关闭子窗体返回值

以下为主窗体某事件代码(单击事件) this.dataGridView1.EndEdit();//首先结果dataGridView1控件的编辑状态 CustomerForm frm2 = new Custom

子窗体传值给父窗体传值

在父窗体中点击按钮弹出子窗体,然后在关闭子窗体的时候把子窗体中的相关值回传给父窗体。

解决DEV皮肤 主窗体与子窗体皮肤风格不一致问题

在Main()函数中注册: DevExpress.UserSkins.BonusSkins.Register(); DevExpress.UserSkins.OfficeSkins.Register(); DevExpress.Skins.SkinManager.EnableFormSkins();

立即提问
相关内容推荐