unit tpTrialPegInputFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TTrialPegInputForm = class(TForm) lblHint: TLabel; lePeg: TLabeledEdit; btnOk: TButton; btnCancel: TButton; procedure btnOkClick(Sender: TObject); private function GetPeg: string; public property Peg: string read GetPeg; end; function InputTrialPeg(var APeg: string): Boolean; implementation uses UtilMethods, mPegFilter; function InputTrialPeg(var APeg: string): Boolean; var vInputForm: TTrialPegInputForm; begin vInputForm := TTrialPegInputForm.Create(nil); try Result := vInputForm.ShowModal = mrOk; if Result then APeg := vInputForm.Peg; finally vInputForm.Free; end; end; {$R *.dfm} procedure TTrialPegInputForm.btnOkClick(Sender: TObject); begin if (lePeg.Text = '') then TipMessage('请输入起点桩号。') else if PegFilter.Filter(lePeg.Text) then ModalResult := mrOk else TipMessage('请按格式“K###+###~K###+###”输入桩号'); end; function TTrialPegInputForm.GetPeg: string; begin Result := lePeg.Text; end; end.