home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / CODEAPP.ZIP / TEXTCLIP.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-12-20  |  3.0 KB  |  130 lines

  1. unit Textclip;
  2. (*-----
  3.     File: TEXTCLIP.PAS for Project CODEAPP.DPR
  4. -----*)
  5.  
  6. interface
  7.  
  8. uses
  9.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  10.   Forms, Dialogs, StdCtrls, ExtCtrls, Grids, Buttons;
  11.  
  12. type
  13.   TTextClips = class(TForm)
  14.     Panel1: TPanel;
  15.     Panel2: TPanel;
  16.     Memo1: TMemo;
  17.     Label1: TLabel;
  18.     CopyButton: TButton;
  19.     AllBtn: TButton;
  20.     ClearBtn: TButton;
  21.     BtnHelp: TBitBtn;
  22.     CloseBtn: TBitBtn;
  23.     procedure CopyButtonClick(Sender: TObject);
  24.     procedure AllBtnClick(Sender: TObject);
  25.     procedure Memo1KeyUp(Sender: TObject; var Key: Word;
  26.       Shift: TShiftState);
  27.     procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton;
  28.       Shift: TShiftState; X, Y: Integer);
  29.     procedure FormCreate(Sender: TObject);
  30.     procedure Memo1Change(Sender: TObject);
  31.     procedure ClearBtnClick(Sender: TObject);
  32.     procedure BtnHelpClick(Sender: TObject);
  33.     procedure CloseBtnClick(Sender: TObject);
  34.   private
  35.     { Private declarations }
  36.     HasSelection: boolean;
  37.     procedure CheckEnableCopy;
  38.   public
  39.     { Public declarations }
  40.     LinesCopied: integer; {the Total}
  41.   end;
  42.  
  43. var
  44.   TextClips: TTextClips;
  45.  
  46. implementation
  47.  
  48. {$R *.DFM}
  49.  
  50. procedure TTextClips.CheckEnableCopy;
  51. begin
  52.   with Memo1 do
  53.   begin
  54.     AllBtn.Enabled := True;
  55.     HasSelection := SelLength <> 0;
  56.     if HasSelection then
  57.     begin
  58.       CopyButton.Enabled := True;
  59.       ClearBtn.Enabled := True;
  60.     end
  61.     else
  62.       CopyButton.Enabled := False;
  63.   end;
  64. end;
  65.  
  66. procedure TTextClips.Memo1Change(Sender: TObject);
  67. begin
  68.   CheckEnableCopy;
  69. end;
  70.  
  71. procedure TTextClips.Memo1KeyUp(Sender: TObject; var Key: Word;
  72.   Shift: TShiftState);
  73. begin
  74.   CheckEnableCopy;
  75. end;
  76.  
  77. procedure TTextClips.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
  78.   Shift: TShiftState; X, Y: Integer);
  79. begin
  80.   CheckEnableCopy;
  81. end;
  82.  
  83. procedure TTextClips.CopyButtonClick(Sender: TObject);
  84. {-Copies contents of memo to ClipBoard}
  85. begin
  86.   Memo1.CopyToClipboard;
  87. end;
  88.  
  89. procedure TTextClips.AllBtnClick(Sender: TObject);
  90. {-Selects all text in memo}
  91. begin
  92.   Memo1.SelectAll;
  93.   CheckEnableCopy;
  94. end;
  95.  
  96. procedure TTextClips.FormCreate(Sender: TObject);
  97. {-Readies this TMemo window}
  98. begin
  99.   HasSelection := False;
  100.   Left := 0;
  101.   Top := Screen.Height - Height;
  102.   LinesCopied := 0;
  103.   Memo1.SelStart := 0;
  104. end;
  105.  
  106. procedure TTextClips.ClearBtnClick(Sender: TObject);
  107. {-User probably wants to start over}
  108. begin
  109.   Memo1.ClearSelection;
  110.   ClearBtn.Enabled := False;
  111.   AllBtn.Enabled := False;
  112.   LinesCopied := 0;
  113.   Label1.Caption := Format('%d Lines total', [LinesCopied]);
  114. end;
  115.  
  116. procedure TTextClips.BtnHelpClick(Sender: TObject);
  117. begin
  118.   MessageDlg('Whenever text is placed in this buffer'+#13+
  119.   'the entire contents is copied to the Windows ClipBoard.'+#13+
  120.   'The contents can be edited, then Copy To ClipBoard used.',
  121.   mtInformation, [mbCancel], 0);
  122. end;
  123.  
  124. procedure TTextClips.CloseBtnClick(Sender: TObject);
  125. begin
  126.   Close
  127. end;
  128.  
  129. end.
  130.