马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 半半半半半 于 2016-9-6 17:27 编辑
实现 mmo1向mmo2 每秒复制一个文字 暂不支持中文 (如果把copy 变量改为2可支持中文) 不支持中文英文混输入
经验总结在结尾
代码如下:
// 两个memo 控件 一个time控件 四个button
// 已改name 属性
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
pnl1: TPanel;
mmo1: TMemo;
mmo2: TMemo;
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn4: TButton;
tmr1: TTimer;
procedure tmr1Timer(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
nnum : array of string ;
i : Integer ;
j : BOOL = True ;
implementation
{$R *.dfm}
procedure TForm1.tmr1Timer(Sender: TObject);
begin
//载入判断机制,限制 i 的长度 否则 运行到最后报错
if j then
begin
if i < Length(mmo1.Lines.Text) then
begin
mmo2.Lines.Text := mmo2.Lines.Text+ nnum[i] ;
i := i +1 ;
end
else
tmr1.Enabled := False ;
end ;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin // 数组赋值 time 控件开始执行
if tmr1.Enabled = True then
MessageBox(Handle, '正在运行,请暂停或停止!', '提示' , MB_OK)
else
if mmo1.Lines.Text= '' then
MessageBox(Handle ,'请在左框内输入字符!', '提示' , MB_OK)
else
begin
btn2.Caption:= '暂停执行';
SetLength(nnum, Length(mmo1.Lines.Text)) ;
tmr1.Enabled:= True ;
for i := 1 to Length(mmo1.Lines.Text ) do
nnum[i-1]:= Copy(mmo1.Lines.Text , i , 1 );
end;
i := 0 ;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin // 可暂停程序
if tmr1.Enabled= True then
begin
btn2.Caption:= '暂停执行';
tmr1.Enabled := False ;
end
else
begin
btn2.Caption:= '继续执行';
tmr1.Enabled := True;
end ;
end;
procedure TForm1.btn4Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.btn3Click(Sender: TObject);
begin //恢复原始状态
tmr1.Enabled:= False;
j := False;
for i := 1 to Length(nnum) do
nnum[i-1]:= '';
mmo1.Text:= '';
mmo2.Text:= '';
end;
end.
数组问题纠结了好几天时间 对数组赋值一直报错
终于在今天下午想出问题所在
1、动态数组下标从0开始 要先对数组的首个值赋值 就是 nnum[0] 所以用到了 nnum[i-1]
2、在数组赋值前 必须先对数组界定大小 不然就报错~~~
暂时总结这两点 感觉总结的有问题 有没有高手指点一下
是不是可以不用从0开始赋值 或者 不用提前给数组界定大小 可以在运行当中对数组赋值??? |