📄 unit1.~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 + -