首页 > 其他分享 >Delphi主窗体打开窗体及调用其他单元中的方法

Delphi主窗体打开窗体及调用其他单元中的方法

时间:2024-01-15 09:12:22浏览次数:30  
标签:调用 end Sender Delphi Vcl System TObject 窗体

Delphi主窗体打开窗体及调用其他单元中的方法

1、建立窗体
父窗体
实现父窗体点击 “打开子窗体” 按钮打开子窗体。
点击“调用单元函数”按钮将单元方法返回信息填充到MEMO控件中。

子窗体

2、父窗体代码

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn3: TButton;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
 uses
   Unit2,Unit3;

procedure TForm1.btn1Click(Sender: TObject);
var
 AForm2 : TForm2;//子窗体
begin
     AForm2 := TForm2.Create(Self);
     try
          AForm2.ShowModal;
     finally
       AForm2.Free;
     end;
end;

procedure TForm1.btn3Click(Sender: TObject);
var
 ATestClass : TTestClass;//unit3单元
 AResultStr : string;//返回字符串
begin
   ATestClass :=  TTestClass.Create;
   try
      AResultStr := ATestClass.TestResult;
      mmo1.text := AResultStr;
   finally
     ATestClass.Free;
   end;
end;

end.

3、子窗体代码

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
  TForm2 = class(TForm)
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form2: TForm2;
  
implementation
{$R *.dfm}

procedure TForm2.btn1Click(Sender: TObject);
begin
  ShowMessage('这是子窗体');
end;

end.

4、unit3单元代码

unit Unit3;

interface
uses
  System.SysUtils, System.Variants, System.Classes;
type
  TTestClass = class(TObject)
     public
      function TestResult() : string;
  end;
implementation
{ TTestClass }
function TTestClass.TestResult: string;
begin
   Result := 'Unit3中TTestClass类中的TestResult()方法。';
end;
end.

5、最后效果

标签:调用,end,Sender,Delphi,Vcl,System,TObject,窗体
From: https://www.cnblogs.com/pleaseGo/p/17964623

相关文章

  • delphi firemonkey使用 TListbox 自定义列表数据(二StyleBook方式实现)
    上一篇用设计好界面后用代码添加稍微有些麻烦,所以改为用StyleBook设计好后添加Item界面上添加ListBox后改Item高度为100右键添加一条空白记录,观察高度,并且方便自定义编辑style样式默认添加一条ListBoxItem1Style1的样式,添加Layout布局到这个样式下,并且添加需要的控件进去la......
  • 【小记】BITMAP To BMP 调用 GetDIBits 引发栈内存损坏问题
    BITMAPbitmap;if(!GetObject(hBitmap,sizeof(bitmap),&bitmap)){//外部传入hBitmapreturnfalse;}//创建位图信息头BITMAPINFObitInfo;BITMAPINFOHEADER&bi=bitInfo.bmiHeader;bi.biWidth=bitmap.bmWidth;bi.biHeight=bitmap.bmHeight;bi.biPlane......
  • GDB调试之函数调用栈管理(八)
    栈帧:当程序进行函数调用的时候,比如说在哪里调用,这些信息我们称之为栈帧。每一个栈帧的内容包括调用的参数,局部变量,寄存器等这些信息,这就是一个栈帧。调用栈:所有栈帧组成的信息称之为调用栈,或者我们也可以称之为调用堆栈。栈的特性是后进先出,函数调用也是这样,如果函数1里面调用了......
  • C#调用webapi发送带json参数的post请求
    嗯。。很久不更新,因为跳槽新公司了,要学的东西太多太忙了。也没时间记录,今天又写了一个C#调用webapi发送带json参数的post请求拿数据的方法,所以来到这里记录一下///<paramname="url">请求地址</param>///<paramname="jsonParas">请求体</param>///<paramnam......
  • 回顾方法的调用
    概述方法的调用:递归静态方法非静态方法形参和实参值传递和引用传递this关键字:疑问,后面讲解快捷键点击SplitRight 可以分成两个页面 输入new加类名,使用alt+enter 会自动补充实例化类的语句 输入非void方法名称,使用alt+enter 会自动添加变......
  • 解决 DELPHI 中执行外部命令出现屏幕一闪的问题的方法
    解决DELPHI中执行外部命令出现屏幕一闪的问题的方法有的时候我们在DELPHI中使用ShellExecuteEx(exInfo:TShellExecuteInfo)函数执行一些外部命令,但会出现,屏幕一闪的问题,解决方法如下:设置exinfo.nShow:=SW_HIDE;//隐藏命令执行的窗口,不会出现屏幕一闪的情况在exinfo......
  • delphi Panel和PageControl中加载窗体
    Panel和PageControl中加载窗体代码Panel中载入窗体procedureTForm1.Button1Click(Sender:TObject);beginForm2.Parent:=Panel1;Form2.Align:=alClient;Form2.BorderStyle:=bsNone;Form2.Show;end;TPageControl中载入窗体procedureTForm1.Button1Clic......
  • delphi redisclient测试
    unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Vcl.Buttons;typeTForm1=class(TForm)Memo1:TMemo;BitBtn1:......
  • 开发篇1:使用原生api和Langchain调用大模型
    对大模型的调用通常有以下几种方式:方式一、大模型厂商都会定义http风格的请求接口,在代码中可以直接发起http请求调用;方式二、在开发环境中使用大模型厂商提供的api;方式三、使用开发框架Langchain调用,这个就像java对数据库的调用一样,可以直接用jdbc也可以使用第三方框架,第三方框架......
  • 【C语言】函数的声明、定义、调用
    函数要先声明后调用!函数的声明和定义函数的声明:把函数的名字、函数类型及形参类型、个数和顺序通知编译系统,以便在调用该函数时编译系统能正确识别函数并检查调用是否合法。函数的定义:对函数功能的确立,包括指定函数名、函数值类型、形参及其类型、函数体等,它是一个完整的、独......