delphi 如何改变主窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何改变主窗体相关的知识,希望对你有一定的参考价值。

也就是我想用代码使一个非主窗体变为主窗体
mdi父窗体需要为主窗体才能用 现在我有两个mdi父窗体 我想根据需要启用一个 就要把那个启用的设为主窗体
application.creatform()只是创建窗体 不是设置主窗体。
我需要的是能够使一个非主窗体变为主窗体 使原来的主窗体变为非主窗体
是在代码中进行变更的方法
假设3个窗体 form1,form2,form3 form2和form3是mdi父窗体
我现在在form1中进行判断 if a情况 then application.creatform(tform2,form2) else application.creatform(tform3,form3) 但这样的主窗体是form1 而不是我想要的form2或form3 而且就算在main form中设置一个窗体(form2或form3)为主窗体,也不能达到我想要的效果 我需要的是 if a情况 则form2为主窗体 else form3为主窗体

在工程选项里设置就可以了
工程->选项->FORMS->Main Forms设置一下就可以了
你可以在工程文件里修改下,工程->查看工程源
rogram Project1;

uses
Forms,
Unit1 in 'Unit1.pas' Form1,
Unit2 in 'Unit2.pas' Form2;

$R *.res

begin
Application.Initialize;
if 情况A then //这里设置你自己的条件
begin
Application.CreateForm(TForm1, Form1);
end
else ;
Application.CreateForm(TForm2, Form2);

Application.Run;
end.
参考技术A 举个ScaleBy的例子吧,这个例子会使窗口中的控件随窗口宽度的大小而变化。

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
private
Private declarations
OldWidth:Integer;
public
Public declarations
end;
var
Form1: TForm1;
implementation
$R *.dfm
procedure TForm1.Button1Click(Sender: TObject);
begin
Pos('dke',Richedit1.Lines.Text);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
form1.ScaleBy(Self.Width,OldWidth);
OldWidth:=Self.width;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
OldWidth:=Self.width;
end;
end.
参考技术B Application.CreateForm这个是创建主窗体的

DELPHI 怎么加载模版 在窗体内打开网页 网页随窗体的大小而自动改变 窗体随屏幕的大小而自动改变

怎么加载模版 在窗体内打开网页 网页随窗体的大小而自动改变
窗体随屏幕的大小而自动改变

VB 源代码

Private Sub Form_Load()
Me.Width = 0.8 * VB.Screen.Width
Me.Height = 0.8 * VB.Screen.Height WebBrowser1.Navigate "URL"
Skin1.ApplySkin Me.hWnd
End Sub Private Sub Form_Resize()
WebBrowser1.Top = 0
WebBrowser1.Left = 0
WebBrowser1.Height = Me.Height - 80
WebBrowser1.Width = Me.Width - 80
End Sub

Delphi一样的。帮你改成Delphi了,你参考下。

procedure TForm1.FormCreate(Sender: TObject);
begin
self.Width := round(0.8 * screen.Width);
self.Height := round(0.8 * screen.Height);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
WebBrowser1.Top := 0;
WebBrowser1.Left := 0;
WebBrowser1.Height := self.Height - 80;
WebBrowser1.Width := self.Width - 80;
end;
参考技术A Width := 0.8 * Screen.Width;
Height := 0.8 * Screen.Height ;
WebBrowser1.Navigate:=‘url’;

WebBrowser1.Top := 0;
WebBrowser1.Left := 0;
WebBrowser1.Height := Height - 80;
WebBrowser1.Width ;= Width - 80;
参考技术B procedure TForm1.FormCreate(Sender: TObject);
begin
self.Width := round(0.8 * screen.Width);
self.Height := round(0.8 * screen.Height);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
WebBrowser1.Top := 0;
WebBrowser1.Left := 0;
WebBrowser1.Height := self.Height - 80;
WebBrowser1.Width := self.Width - 80;
end;

以上是关于delphi 如何改变主窗体的主要内容,如果未能解决你的问题,请参考以下文章

有空delphi子窗体关闭触发父窗体做出一系列改变的操作,主要就是子窗体关闭时能改变父窗体组件状态

有空delphi子窗体关闭触发父窗体做出一系列改变的操作,主要就是子窗体关闭时能改变父窗体组件状态

delphi 让子窗体在主窗体内,其在主窗体内最大化,但又不遮盖主窗体的菜单栏

delphi平台,在一个主窗体上打开两个子窗体,也就是:打开一个子窗体之后,再打开第二个窗体第一个窗体不关闭

delphi如何关闭启动窗体

delphi实现窗体组建随窗体大小改变而改变