📄 unit9.pas
字号:
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TfmSticky = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ExtractRoom(str:string);
end;
var
fmSticky: TfmSticky;
implementation
{$R *.dfm}
Uses Unit1,Common;
function delete_space_in_string(str:string):string;
var i,k,len,new_len:integer;
tmp:string;
begin
len:=length(str);
new_len:=len;
for i:=1 to len do begin
if(str[i]=' ') then begin
for k:=i to len-1 do
str[k]:=str[k+1];
new_len:=new_len-1;
end;
end;
tmp:=Copy(str,1,new_len);
Result:=tmp;
end;
procedure TfmSticky.Button1Click(Sender: TObject);
var
i:integer;
str:string[250];
str2:string;
begin
str:='';
//重新设置当前叫班计划中的联叫房间号码
for i:=0 to StringGrid1.Cols[0].Count-1 do begin
if(not IsEmptyString(StringGrid1.Cols[0].Strings[i]))then begin
str2:=Copy(StringGrid1.Cols[0].Strings[i],1,Length(StringGrid1.Cols[0].Strings[i]));
str2:=delete_space_in_string(str2)+',';
str:=str+str2;
end;
end;
EnterCriticalSection(Critical1); //进入临界段
try
fmMain.tbPlan2.RecNo:=fmMain.tbPlan.RecNo;
fmMain.tbPlan2.Edit;
fmMain.tbPlan2.FieldByName('联叫房号').AsString:=str;
fmMain.tbPlan2.Post;
fmMain.tbPlan.Refresh;
except
end;
LeaveCriticalSection(Critical1);//退出临界段
end;
procedure TfmSticky.ExtractRoom(str:string);
var
i,k,len:integer;
temp:string;
seekNum:boolean;
index:integer;
begin
//先清除StringGrid1
for i:=0 to StringGrid1.Cols[0].Count-1 do
StringGrid1.Cols[0].Strings[i]:='';
//准备提取房间号码
temp:=' ';
len:=length(str);
i:=1; k:=1;
index:=0;
seekNum:=true;
while(i<=len)do begin
//寻找数字
if(seekNum) then begin
if(str[i]<>',') then begin
temp[k]:=str[i];
k:=k+1;
seekNum:=false;
end
end
//寻找空格
else begin
if(str[i]=',') then begin
//temp[k]:=#0;
SetLength(temp,k);
StringGrid1.Cols[0].Strings[index]:=Copy(temp,1,k);
k:=1;
index:=index+1;
//最多10项联叫房间,如果超出那么退出程序
if(index>=StringGrid1.Cols[0].Count)then
Exit;
end
else begin
temp[k]:=str[i];
k:=k+1;
end;
end;
i:=i+1;
end;
end;
procedure TfmSticky.FormShow(Sender: TObject);
begin
ExtractRoom(fmMain.tbPlan.fieldByName('联叫房号').AsString);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -