MergeTextFrm.pas 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. unit MergeTextFrm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ExtCtrls;
  6. type
  7. TMergeTextForm = class(TForm)
  8. lePreText: TLabeledEdit;
  9. lePhaseIndex: TLabeledEdit;
  10. leNumber: TLabeledEdit;
  11. btnOk: TButton;
  12. btnCancel: TButton;
  13. private
  14. function GetMergeText: string;
  15. procedure SetMergeText(const Value: string);
  16. public
  17. property MergeText: string read GetMergeText write SetMergeText;
  18. end;
  19. function GetMergeText(const ATitle: string; var AText: string): Boolean;
  20. implementation
  21. {$R *.dfm}
  22. function GetMergeText(const ATitle: string; var AText: string): Boolean;
  23. var
  24. MergeTextForm: TMergeTextForm;
  25. begin
  26. MergeTextForm := TMergeTextForm.Create(nil);
  27. try
  28. MergeTextForm.MergeText := AText;
  29. if MergeTextForm.ShowModal = mrOk then
  30. begin
  31. Result := True;
  32. AText := MergeTextForm.MergeText;
  33. end
  34. else Result := False;
  35. finally
  36. MergeTextForm.Free;
  37. end;
  38. end;
  39. { TMergeTextForm }
  40. function TMergeTextForm.GetMergeText: string;
  41. begin
  42. Result := lePreText.Text + '-' + lePhaseIndex.Text + '-' + leNumber.Text;
  43. end;
  44. procedure TMergeTextForm.SetMergeText(const Value: string);
  45. var
  46. sgs: TStringList;
  47. begin
  48. sgs := TStringList.Create;
  49. try
  50. sgs.Delimiter := '-';
  51. sgs.DelimitedText := Value;
  52. lePreText.Text := sgs.Strings[0];
  53. lePhaseIndex.Text := sgs.Strings[1];
  54. leNumber.Text := sgs.Strings[2];
  55. finally
  56. sgs.Free;
  57. end;
  58. end;
  59. end.