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

📄 unit9.pas

📁 这是一个火车站公寓的自动叫班程序源码
💻 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 + -