home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue158 / delphi / SelStart / ss.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1999-08-16  |  1.3 KB  |  54 lines

  1. unit ss;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ComCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     RichEdit1: TRichEdit;
  12.     Button1: TButton;
  13.     Button2: TButton;
  14.     Memo1: TMemo;
  15.     Button3: TButton;
  16.     procedure Button1Click(Sender: TObject);
  17.     procedure Button2Click(Sender: TObject);
  18.     procedure Button3Click(Sender: TObject);
  19.   private
  20.     { Private declarations }
  21.   public
  22.     { Public declarations }
  23.   end;
  24.  
  25. var
  26.   Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. {$R *.DFM}
  31.  
  32. procedure TForm1.Button1Click(Sender: TObject);
  33. begin
  34.    ShowMessage('"' + RichEdit1.Lines[4][10] +'"');
  35. end;
  36.  
  37. procedure TForm1.Button2Click(Sender: TObject);
  38. begin
  39.   ShowMessage(Format('Selected text "%s" is found at selection index %d.',
  40.              [RichEdit1.SelText,RichEdit1.SelStart] ));
  41. end;
  42.  
  43. procedure TForm1.Button3Click(Sender: TObject);
  44. var
  45.    linenum, charpos : integer;
  46. begin
  47.    linenum := SendMessage(RichEdit1.Handle, EM_LINEFROMCHAR, RichEdit1.SelStart,0);
  48.    charpos := RichEdit1.SelStart -(SendMessage(RichEdit1.Handle, EM_LINEINDEX, linenum, 0)) + 1;
  49.    ShowMessage(Format('Selected text "%s" is found at line %d, char %d.',
  50.              [RichEdit1.SelText,linenum,charpos] ));
  51. end;
  52.  
  53. end.
  54.