⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 通过一个界面实例
💻 ~PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Memo1: TMemo;
    Panel4: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    CheckBox1: TCheckBox;
    BitBtn4: TBitBtn;
    Panel5: TPanel;
    Panel6: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    procedure FormShow(Sender: TObject);
    procedure mymemochange(Sender:TObject);
    procedure mymemochangeas(Sender:TObject);
    procedure mypanelchangeas(Sender:TObject);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    //memoline:integer;
    mymemo:Tmemo;
    mymemoas:array of Tmemo;
    mypanelas:array of Tpanel;
    mycheckas:array of Tcheckbox;
    L,i,wid:integer;
    countas:integer;//答案数量
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
  mypanel:Tpanel;
  j:Integer;
begin
  //动态生成试题面板
  countas:=2;
  SetLength(mycheckas,5);
  setLength(mymemoas,5);
  setlength(mypanelas,5);
  mypanel:=Tpanel.Create(form1.Panel5);
  mypanel.Parent:=form1.Panel5;
  mypanel.Align:=altop;
  mypanel.AutoSize:=true;
  mypanel.Ctl3D:=false;
  mypanel.BevelInner:=bvnone;
  mypanel.BevelOuter:=bvnone;
  mypanel.BorderStyle:=bsnone;
  //动态生成试题memo
  mymemo:=Tmemo.Create(mypanel);
  mymemo.Parent:=mypanel;
  mymemo.Align:=alnone;
  mymemo.Ctl3D:=false;
  mymemo.BevelInner:=bvnone;
  mymemo.BevelOuter:=bvnone;
  mymemo.Width:=form1.Panel5.Width;
  mymemo.OnChange:=form1.mymemochange;
  //生成答案面板
  mypanelas[1]:=Tpanel.Create(form1.Panel6);
  with mypanelas[1] do
  begin
    Parent:=form1.Panel6;
    Align:=altop;
    AutoSize:=true;
    Width:=form1.Panel5.Width;
    Ctl3D:=false;
    FullRepaint:=false;
    BevelInner:=bvnone;
    BevelOuter:=bvnone;
  end;
  wid:=0;
  for j:=0 to 1 do
  begin
  mymemoas[j]:=Tmemo.Create(mypanelas[1]);
  with mymemoas[j] do
  begin
    Parent:=mypanelas[1];
    Align:=alnone;
    Ctl3D:=false;
    Left:=60;
    BevelInner:=bvnone;
    BevelOuter:=bvnone;
    Width:=form1.Panel5.Width-left;
    Name:='m'+inttostr(j);
    top:=wid+2;
    OnChange:=form1.mymemochangeas;
    wid:=round(height);
  end;
  mycheckas[j]:=Tcheckbox.Create(mypanelas[1]);
  with mycheckas[j] do
  begin
    Parent:=mypanelas[1];
    Caption:=inttostr(j);
    Left:=15;
    Ctl3D:=false;
    Width:=10;
    top:=mymemoas[j].Top;
  end;
  end;
end;

procedure TForm1.mymemochange(Sender: TObject);
begin
    mymemo.Height:=mymemo.Lines.Count*16;
    mymemo.Repaint;
end;

procedure TForm1.mymemochangeas(Sender: TObject);    //动态答案的格式变动控制
var q,m:integer;
begin
  L:=0;
//  v:=0;
  m:=strtoint(copy(Tmemo(sender).Name,2,1));
  q:=Tmemo(sender).Height;
  l:=Tmemo(sender).Lines.Count*16+2;
  Tmemo(sender).Height:=l;
  i:=m;
 // v:=round(l-q);
  mycheckas[m].Top:=round(mymemoas[m].top);
  if m+1<countas then
  begin
    mymemoas[m+1].Top:=mymemoas[m+1].Top+round(l-q);
    mycheckas[m+1].Top:=round(mymemoas[m+1].top);
  end;
  Form1.mypanelchangeas(mypanelas[1]);  
end;

procedure TForm1.mypanelchangeas(Sender: TObject);
begin
    mypanelas[1].Height:=L;
    mypanelas[1].Realign;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
  form3.Show;
  form1.Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -