fclineseditor.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit fcLinesEditor;
  2. {
  3. //
  4. // Property editor for line editing
  5. //
  6. // Copyright (c) 1999 by Woll2Woll Software
  7. }
  8. interface
  9. uses
  10.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  11.   StdCtrls, fcCommon, ComCtrls;
  12. type
  13.   TLinesEditorForm = class(TForm)
  14.     OKButton: TButton;
  15.     CancelButton: TButton;
  16.     GroupBox1: TGroupBox;
  17.     LinesMemo: TMemo;
  18.     LinesLabel: TLabel;
  19.     procedure LinesMemoChange(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25. function fcExecuteLinesEditor(Lines: TStringList): Boolean;
  26. function fcExecuteTextEditor(Component: TPersistent; PropName: string;
  27.   ACaption: string): Boolean;
  28. var
  29.   LinesEditorForm: TLinesEditorForm;
  30. implementation
  31. {$R *.DFM}
  32. function fcExecuteLinesEditor(Lines: TStringList): Boolean;
  33. begin
  34.   result := False;
  35.   with TLinesEditorForm.Create(nil) do
  36.   begin
  37.     LinesMemo.Lines.Assign(Lines);
  38.     if ShowModal = mrOK then
  39.     begin
  40.       Lines.Assign(LinesMemo.Lines);
  41.       result := True;
  42.     end;
  43.     Free;
  44.   end;
  45. end;
  46. function fcExecuteTextEditor(Component: TPersistent; PropName: string;
  47.   ACaption: string): Boolean;
  48. begin
  49.   result := False;
  50.   with TLinesEditorForm.Create(nil) do
  51.   begin
  52.     Caption := ACaption;
  53.     LinesMemo.Text := fcGetStrProp(Component, PropName);
  54.     if ShowModal = mrOK then
  55.     begin
  56.       fcSetStrProp(Component, PropName, LinesMemo.Text);
  57.       result := True;
  58.     end;
  59.     Free;
  60.   end;
  61. end;
  62. procedure TLinesEditorForm.LinesMemoChange(Sender: TObject);
  63. begin
  64.   LinesLabel.Caption := 'Lines: ' + InttoStr(LinesMemo.Lines.Count);
  65. end;
  66. end.