实现 mmo1向mmo2 每秒复制一个文字 终于解决了数组问题~~~
本帖最后由 半半半半半 于 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 +1 ;
end
else
tmr1.Enabled := False ;
end ;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin // 数组赋值 time 控件开始执行
iftmr1.Enabled = Truethen
MessageBox(Handle, '正在运行,请暂停或停止!', '提示' , MB_OK)
else
ifmmo1.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:= 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:= '';
mmo1.Text:= '';
mmo2.Text:= '';
end;
end.
数组问题纠结了好几天时间对数组赋值一直报错
终于在今天下午想出问题所在
1、动态数组下标从0开始要先对数组的首个值赋值就是 nnum所以用到了 nnum
2、在数组赋值前 必须先对数组界定大小不然就报错~~~
暂时总结这两点感觉总结的有问题有没有高手指点一下
是不是可以不用从0开始赋值 或者 不用提前给数组界定大小可以在运行当中对数组赋值???
页:
[1]